[libvirt] [PATCH] Add a rule for generating .hgignore

# HG changeset patch # User john.levon@sun.com # Date 1232576262 28800 # Node ID c58822f94b2b5e87a363128a4bd36ec2846054fe # Parent c109dd0801246b82aed8d5f9b1fa4196432868d0 Add a rule for generating .hgignore Signed-off-by: John Levon <john.levon@sun.com> diff --git a/Makefile.maint b/Makefile.maint --- a/Makefile.maint +++ b/Makefile.maint @@ -717,3 +717,5 @@ sync-vcs-ignore-files: mv $(c2g)-t $(c2g) perl $(c2g) rm -f $(c2g) + find $(srcdir) -name .gitignore | xargs cat \ + | sort -u | sed 's+\*+.*+' >.hgignore

john.levon@sun.com wrote:
Add a rule for generating .hgignore
diff --git a/Makefile.maint b/Makefile.maint --- a/Makefile.maint +++ b/Makefile.maint @@ -717,3 +717,5 @@ sync-vcs-ignore-files: mv $(c2g)-t $(c2g) perl $(c2g) rm -f $(c2g) + find $(srcdir) -name .gitignore | xargs cat \ + | sort -u | sed 's+\*+.*+' >.hgignore
There are a couple of problems when doing it that way: .gitignore uses glob syntax, while .hgignore uses regexps by default. You can use the "syntax: glob" directive to tell hg what to do. hoisting subdir-specific ignore directives all into a top-level .hgignore file is risky. What if a generated (hence ignored) file in a subdirectory is also the name of something that must not be ignored at some other point in the tree? The latter risk is why I made that rule generate one .gitignore file alongside each .cvsignore file.

On Thu, Jan 22, 2009 at 08:31:46AM +0100, Jim Meyering wrote:
john.levon@sun.com wrote:
Add a rule for generating .hgignore
diff --git a/Makefile.maint b/Makefile.maint --- a/Makefile.maint +++ b/Makefile.maint @@ -717,3 +717,5 @@ sync-vcs-ignore-files: mv $(c2g)-t $(c2g) perl $(c2g) rm -f $(c2g) + find $(srcdir) -name .gitignore | xargs cat \ + | sort -u | sed 's+\*+.*+' >.hgignore
There are a couple of problems when doing it that way:
.gitignore uses glob syntax, while .hgignore uses regexps by default. You can use the "syntax: glob" directive to tell hg what to do.
hoisting subdir-specific ignore directives all into a top-level .hgignore file is risky. What if a generated (hence ignored) file in a subdirectory is also the name of something that must not be ignored at some other point in the tree?
I'd expect to just prepend the directory path for the rules from subdirs Perhaps with echo "syntax: glob" > .hgignore for ignore in `find $(srcdir) -name .gitignore do dir=`dirname $ignore` for rule in `cat $ignore` do echo "$dir/$rule" >> .hgignore done done Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

On Thu, Jan 22, 2009 at 08:31:46AM +0100, Jim Meyering wrote:
There are a couple of problems when doing it that way:
OK, try this version. regards, john Add a rule for generating .hgignore Also regenerate, and fix a missing entry. Signed-off-by: John Levon <john.levon@sun.com> diff --git a/.hgignore b/.hgignore --- a/.hgignore +++ b/.hgignore @@ -1,6 +1,245 @@ -(^|/)CVS($|/) -(^|/)\.hg($|/) -(^|/)\.hgtags($|/) -^state$ -^state.old$ -^state.journal$ +syntax: glob +./proxy/Makefile +./proxy/Makefile.in +./proxy/.deps +./proxy/.libs +./proxy/libvirt_proxy +./build-aux/compile +./build-aux/config.guess +./build-aux/config.rpath +./build-aux/config.sub +./build-aux/depcomp +./build-aux/install-sh +./build-aux/ltmain.sh +./build-aux/missing +./build-aux/mkinstalldirs +./build-aux/mktempd +./qemud/*.gcda +./qemud/*.gcno +./qemud/*.la +./qemud/*.lo +./qemud/.deps +./qemud/.libs +./qemud/Makefile +./qemud/Makefile.in +./qemud/libvirt_qemud +./qemud/libvirtd +./qemud/libvirtd.init +./qemud/libvirtd.logrotate +./m4/acinclude.m4 +./m4/aclocal.m4 +./m4/Makefile +./m4/Makefile.in +./docs/devhelp/Makefile +./docs/devhelp/Makefile.in +./docs/devhelp/libvirt.devhelp +./docs/examples/.memdump +./docs/examples/Makefile.in +./docs/examples/Makefile +./docs/examples/.deps +./docs/examples/.libs +./docs/examples/info1 +./docs/examples/suspend +./docs/examples/python/Makefile +./docs/examples/python/Makefile.in +./docs/Makefile +./docs/Makefile.in +./docs/.memdump +./docs/apibuild.pyc +./po/stamp-po +./po/remove-potcdate.sin +./po/quot.sed +./po/insert-header.sin +./po/*.gmo +./po/en@quot.header +./po/en@boldquot.header +./po/boldquot.sed +./po/Rules-quot +./po/POTFILES +./po/Makevars.template +./po/Makefile.in.in +./po/Makefile.in +./po/Makefile +./po/remove-potcdate.sed +./gnulib/lib/arpa/inet.h +./gnulib/lib/sys/select.h +./gnulib/lib/sys/socket.h +./gnulib/lib/sys/stat.h +./gnulib/lib/sys/time.h +./gnulib/lib/alloca.h +./gnulib/lib/arpa_inet.h +./gnulib/lib/.deps +./gnulib/lib/errno.h +./gnulib/lib/float.h +./gnulib/lib/*.la +./gnulib/lib/.libs +./gnulib/lib/*.lo +./gnulib/lib/Makefile +./gnulib/lib/Makefile.in +./gnulib/lib/netdb.h +./gnulib/lib/netinet_in.h +./gnulib/lib/poll.h +./gnulib/lib/stdbool.h +./gnulib/lib/stdint.h +./gnulib/lib/stdio.h +./gnulib/lib/stdlib.h +./gnulib/lib/string.h +./gnulib/lib/sys_ioctl.h +./gnulib/lib/sys_select.h +./gnulib/lib/sys_socket.h +./gnulib/lib/sys_stat.h +./gnulib/lib/sys_time.h +./gnulib/lib/time.h +./gnulib/lib/unistd.h +./gnulib/lib/wchar.h +./gnulib/lib/netinet/in.h +./gnulib/tests/.deps +./gnulib/tests/.libs +./gnulib/tests/Makefile +./gnulib/tests/Makefile.in +./gnulib/tests/sys +./gnulib/tests/test-EOVERFLOW +./gnulib/tests/test-alloca-opt +./gnulib/tests/test-arpa_inet +./gnulib/tests/test-c-ctype +./gnulib/tests/test-errno +./gnulib/tests/test-fseeko +./gnulib/tests/test-getaddrinfo +./gnulib/tests/test-getdelim +./gnulib/tests/test-gethostname +./gnulib/tests/test-getline +./gnulib/tests/test-gettimeofday +./gnulib/tests/test-lseek +./gnulib/tests/test-lstat +./gnulib/tests/test-netdb +./gnulib/tests/test-netinet_in +./gnulib/tests/test-perror +./gnulib/tests/test-poll +./gnulib/tests/test-random_r +./gnulib/tests/test-snprintf +./gnulib/tests/test-sockets +./gnulib/tests/test-stdbool +./gnulib/tests/test-stdint +./gnulib/tests/test-stdio +./gnulib/tests/test-stdlib +./gnulib/tests/test-strerror +./gnulib/tests/test-string +./gnulib/tests/test-sys_select +./gnulib/tests/test-sys_socket +./gnulib/tests/test-sys_stat +./gnulib/tests/test-sys_time +./gnulib/tests/test-unistd +./gnulib/tests/test-vasnprintf +./gnulib/tests/test-vasprintf +./gnulib/tests/test-wchar +./gnulib/tests/test-time +./examples/domain-events/events-c/Makefile +./examples/domain-events/events-c/Makefile.in +./examples/domain-events/events-c/*.exe +./examples/domain-events/events-c/.deps +./examples/domain-events/events-c/.libs +./examples/domain-events/events-c/event-test +./src/Makefile +./src/Makefile.in +./src/.deps +./src/.libs +./src/*.lo +./src/*.loT +./src/*.la +./src/virsh +./src/*.exe +./src/*.gcda +./src/*.gcno +./src/*.gcov +./src/*.cov +./src/libvirt_parthelper +./src/libvirt_lxc +./src/virsh-net-edit.c +./src/virsh-pool-edit.c +./src/libvirt.syms +./*.a +./*.o +./*.orig +./*.rej +./config.h.in~ +./.git +./ABOUT-NLS +./COPYING +./INSTALL +./Makefile +./Makefile.in +./aclocal.m4 +./autom4te.cache +./config.cache +./config.guess +./config.h +./config.h.in +./config.log +./config.rpath +./config.status +./config.sub +./configure +./coverage +./libtool +./libvirt-*.tar.gz +./libvirt.pc +./libvirt.spec +./ltconfig +./ltmain.sh +./m4 +./mingw32-libvirt.spec +./mkinstalldirs +./results.log +./stamp-h +./stamp-h.in +./stamp-h1 +./update.log +./python/Makefile +./python/Makefile.in +./python/.deps +./python/.libs +./python/*.lo +./python/*.la +./python/*.loT +./python/libvirt.py +./python/libvirt-export.c +./python/libvirtclass.txt +./python/libvirt-py.[ch] +./python/libvirtclass.py +./python/gen_prog +./python/*.pyc +./python/tests/Makefile +./python/tests/Makefile.in +./tests/xml2sexprdata/Makefile +./tests/xml2sexprdata/Makefile.in +./tests/sexpr2xmldata/Makefile +./tests/sexpr2xmldata/Makefile.in +./tests/confdata/Makefile +./tests/confdata/Makefile.in +./tests/xmconfigdata/Makefile +./tests/xmconfigdata/Makefile.in +./tests/Makefile +./tests/Makefile.in +./tests/.deps +./tests/.libs +./tests/sexpr2xmltest +./tests/xml2sexprtest +./tests/virshtest +./tests/conftest +./tests/reconnect +./tests/xmconfigtest +./tests/xencapstest +./tests/qemuxml2xmltest +./tests/qemuxml2argvtest +./tests/nodeinfotest +./tests/statstest +./tests/qparamtest +./tests/*.gcda +./tests/*.gcno +./tests/*.exe +./tests/xencapsdata/Makefile +./tests/xencapsdata/Makefile.in +./include/libvirt/Makefile +./include/libvirt/Makefile.in +./include/Makefile +./include/Makefile.in diff --git a/Makefile.maint b/Makefile.maint --- a/Makefile.maint +++ b/Makefile.maint @@ -717,3 +717,10 @@ mv $(c2g)-t $(c2g) perl $(c2g) rm -f $(c2g) + echo "syntax: glob" > .hgignore + for ignore in `find $(srcdir) -name .gitignore`; do \ + dir=`dirname $$ignore`; \ + for rule in `cat $$ignore`; do \ + echo "$$dir/$$rule" >> .hgignore; \ + done ; \ + done diff --git a/gnulib/tests/.cvsignore b/gnulib/tests/.cvsignore --- a/gnulib/tests/.cvsignore +++ b/gnulib/tests/.cvsignore @@ -20,6 +20,7 @@ test-netinet_in test-perror test-poll +test-random_r test-snprintf test-sockets test-stdbool diff --git a/gnulib/tests/.gitignore b/gnulib/tests/.gitignore --- a/gnulib/tests/.gitignore +++ b/gnulib/tests/.gitignore @@ -20,6 +20,7 @@ test-netinet_in test-perror test-poll +test-random_r test-snprintf test-sockets test-stdbool

On Thu, Jan 22, 2009 at 06:19:32PM +0000, John Levon wrote:
On Thu, Jan 22, 2009 at 08:31:46AM +0100, Jim Meyering wrote:
There are a couple of problems when doing it that way:
OK, try this version.
regards, john
Add a rule for generating .hgignore
Also regenerate, and fix a missing entry.
Signed-off-by: John Levon <john.levon@sun.com>
ACK, Looks good to me. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

On Wed, Jan 21, 2009 at 02:17:46PM -0800, john.levon@sun.com wrote:
# HG changeset patch # User john.levon@sun.com # Date 1232576262 28800 # Node ID c58822f94b2b5e87a363128a4bd36ec2846054fe # Parent c109dd0801246b82aed8d5f9b1fa4196432868d0 Add a rule for generating .hgignore
Signed-off-by: John Levon <john.levon@sun.com>
diff --git a/Makefile.maint b/Makefile.maint --- a/Makefile.maint +++ b/Makefile.maint @@ -717,3 +717,5 @@ sync-vcs-ignore-files: mv $(c2g)-t $(c2g) perl $(c2g) rm -f $(c2g) + find $(srcdir) -name .gitignore | xargs cat \ + | sort -u | sed 's+\*+.*+' >.hgignore
I've just noticed that the .hgignore format allows you to switch it to using globs instead of regexes, so we can just copy across the .gitignore as is, prepending syntax: glob as the first line of the file - see 'man hgignore' for this useful tip! Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
participants (4)
-
Daniel P. Berrange
-
Jim Meyering
-
John Levon
-
john.levon@sun.com