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 --- build-aux/vc-list-files | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'build-aux/vc-list-files') 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