[libvirt] [PATCH] build: fix gitignore sorting

Eric Blake eblake at redhat.com
Tue Apr 5 22:51:38 UTC 2011


Make it so we don't have to 'git add -f' particular files like
po/POTFILES.in all the time (tested by fixing one of our
special-case files as part of the patch).

* .gnulib: Update to latest.
* bootstrap: Resync from coreutils.
* .gitignore: Sort whitelist entries correctly, including ignoring
files rather than directories.
* m4/virt-compile-warnings.m4: Convert tabs to space.
---

* .gnulib dec3475...f796520 (7):
  > bootstrap: compute gnulib_extra_files after updating build_aux
  > bootstrap: preserve git whitelist item sorting
  > maint.mk: Don't trigger sc_space_tab check.
  > areadlink, areadlinkat: rewrite in terms of careadlinkat
  > autoupdate
  > wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr: Avoid errors in C++ mode.
  > wcpcpy, wcpncpy: Ensure declaration on glibc >= 2.13 systems.

I'm also trying to patch 'man gitignore' with things I've learned
from this exercise: http://marc.info/?t=130203248100003&r=1&w=2

 .gitignore                  |   12 +++++-----
 .gnulib                     |    2 +-
 bootstrap                   |   46 +++++++++++++++++++++++++++++--------------
 m4/virt-compile-warnings.m4 |    8 +++---
 4 files changed, 42 insertions(+), 26 deletions(-)

diff --git a/.gitignore b/.gitignore
index 24c96b5..35dbdde 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,3 @@
-!/m4/virt-*.m4
-!/po/*.po
-!/po/POTFILES.in
-!/po/libvirt.pot
 *#*#
 *.#*#
 *.a
@@ -46,11 +42,11 @@
 /libvirt.spec
 /ltconfig
 /ltmain.sh
-/m4/
+/m4/*
 /maint.mk
 /mingw32-libvirt.spec
 /mkinstalldirs
-/po/
+/po/*
 /proxy/
 /src/libvirt_iohelper
 /tests/*.log
@@ -67,3 +63,7 @@ results.log
 stamp-h
 stamp-h.in
 stamp-h1
+!/m4/virt-*.m4
+!/po/*.po
+!/po/POTFILES.in
+!/po/libvirt.pot
diff --git a/.gnulib b/.gnulib
index dec3475..f796520 160000
--- a/.gnulib
+++ b/.gnulib
@@ -1 +1 @@
-Subproject commit dec3475763be252103922a887920012eeb32dc26
+Subproject commit f79652003534e496bca1e49922ca521f12ca8051
diff --git a/bootstrap b/bootstrap
index f004ad3..7cbb5dc 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2011-03-03.12; # UTC
+scriptversion=2011-04-05.18; # UTC

 # Bootstrap this package from checked-out sources.

@@ -130,18 +130,7 @@ source_base=lib
 m4_base=m4
 doc_base=doc
 tests_base=tests
-
-# Extra files from gnulib, which override files from other sources.
-gnulib_extra_files="
-        $build_aux/install-sh
-        $build_aux/missing
-        $build_aux/mdate-sh
-        $build_aux/texinfo.tex
-        $build_aux/depcomp
-        $build_aux/config.guess
-        $build_aux/config.sub
-        doc/INSTALL
-"
+gnulib_extra_files=''

 # Additional gnulib-tool options to use.  Use "\newline" to break lines.
 gnulib_tool_option_extras=
@@ -229,6 +218,18 @@ case "$0" in
   *) test -r "$0.conf" && . ./"$0.conf" ;;
 esac

+# Extra files from gnulib, which override files from other sources.
+test -z "${gnulib_extra_files}" && \
+  gnulib_extra_files="
+        $build_aux/install-sh
+        $build_aux/missing
+        $build_aux/mdate-sh
+        $build_aux/texinfo.tex
+        $build_aux/depcomp
+        $build_aux/config.guess
+        $build_aux/config.sub
+        doc/INSTALL
+"

 if test "$vc_ignore" = auto; then
   vc_ignore=
@@ -278,14 +279,29 @@ if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then
   exit 1
 fi

+# Ensure that lines starting with ! sort last, per gitignore conventions
+# for whitelisting exceptions after a more generic blacklist pattern.
+sort_patterns() {
+  sort -u "$@" | sed '/^!/ {
+    H
+    d
+  }
+  $ {
+    P
+    x
+    s/^\n//
+  }'
+}
+
 # If $STR is not already on a line by itself in $FILE, insert it,
 # sorting the new contents of the file and replacing $FILE with the result.
 insert_sorted_if_absent() {
   file=$1
   str=$2
   test -f $file || touch $file
-  echo "$str" | sort -u - $file | cmp - $file > /dev/null \
-    || echo "$str" | sort -u - $file -o $file \
+  echo "$str" | sort_patterns - $file | cmp - $file > /dev/null \
+    || { echo "$str" | sort_patterns - $file > $file.bak \
+      && mv $file.bak $file; } \
     || exit 1
 }

diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index 819da8f..3ca0346 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -15,7 +15,7 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
     case "$enable_compile_warnings" in
     no)
         try_compiler_flags=""
-	;;
+        ;;
     yes|minimum|maximum|error)

         # List of warnings that are not relevant / wanted
@@ -117,10 +117,10 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
         then
           gl_WARN_ADD([-Werror])
         fi
-	;;
+        ;;
     *)
-	AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
-	;;
+        AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
+        ;;
     esac

     WARN_LDFLAGS=$WARN_CFLAGS
-- 
1.7.4




More information about the libvir-list mailing list