From b54016675fd7e8e6b36444cde8ac85ff6302c7ff Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 24 Apr 2009 14:58:02 -0600 Subject: 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 --- ChangeLog | 4 ++++ build-aux/vc-list-files | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0083daf319..fb16e2e68c 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 56acd5f834..4b465a4a8a 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 -- cgit v1.2.1