From: Eric Blake Date: Fri, 24 Apr 2009 20:58:02 +0000 (-0600) Subject: vc-list-files: ignore git symlinks X-Git-Tag: v0.1~5985 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=b54016675fd7e8e6b36444cde8ac85ff6302c7ff;p=gnulib.git vc-list-files: ignore git symlinks * build-aux/vc-list-files (.git): Use ls-tree and a filter, rather than ls-files, to ignore git symlinks. Signed-off-by: Eric Blake --- diff --git a/ChangeLog b/ChangeLog index 0083daf31..fb16e2e68 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-04-24 Eric Blake + vc-list-files: ignore git symlinks + * build-aux/vc-list-files (.git): Use ls-tree and a filter, rather + than ls-files, to ignore git symlinks. + maint.mk: import improvements from m4 * top/maint.mk (VC-tag): Use signing key from cfg.mk. (move_if_change): Delete unused macro. diff --git a/build-aux/vc-list-files b/build-aux/vc-list-files index 56acd5f83..4b465a4a8 100755 --- a/build-aux/vc-list-files +++ b/build-aux/vc-list-files @@ -2,7 +2,7 @@ # List version-controlled file names. # Print a version string. -scriptversion=2009-03-01.09 +scriptversion=2009-04-24.14 # Copyright (C) 2006-2009 Free Software Foundation, Inc. @@ -72,7 +72,17 @@ esac test "x$dir" = x && dir=. if test -d .git; then - eval exec git ls-files '"$dir"' $postprocess + if test "x$dir" = x. ; then + dir=HEAD + else + dir=HEAD:$dir + fi + # Ignore git symlinks - either they point into the tree, in which case + # we don't need to visit the target twice, or they point somewhere + # else (often into a submodule), in which case the content does not + # belong to this package. + eval exec git ls-tree -r '"$dir"' \| sed -n '"s/^100[^ ]*.//p"' \ + $postprocess elif test -d .hg; then eval exec hg locate '"$dir/*"' $postprocess elif test -d .bzr; then