# HG changeset patch # User Eric Blake # Date 1240606682 21600 # Node ID 460f2a0ec44239191c84f54ce4394410e284af96 # Parent 5223ecd9ec17072248baaf9d19395a4b6595278a 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 --- 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 --- 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 @@ 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