summaryrefslogtreecommitdiff
path: root/build-aux/vc-list-files
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2009-04-24 14:58:02 -0600
committerEric Blake <ebb9@byu.net>2009-04-24 20:10:26 -0600
commitb54016675fd7e8e6b36444cde8ac85ff6302c7ff (patch)
treee89dd8d5403527e5388319fd584d526cea281c12 /build-aux/vc-list-files
parent72deb1076631d04b9b55ffdd850b97e6c2820c21 (diff)
downloadgnulib-b54016675fd7e8e6b36444cde8ac85ff6302c7ff.tar.gz
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 <ebb9@byu.net>
Diffstat (limited to 'build-aux/vc-list-files')
-rwxr-xr-xbuild-aux/vc-list-files14
1 files changed, 12 insertions, 2 deletions
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