[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: maint.mk questions
From: |
Eric Blake |
Subject: |
Re: maint.mk questions |
Date: |
Fri, 24 Apr 2009 21:05:22 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
Jim Meyering <jim <at> meyering.net> writes:
> >
> > In the case of m4, I've got a gnulib submodule, so I created a git symlink
from
> > my build-aux/config.guess into gnulib's copy. Coreutils doesn't fail the
> > sc_space_tab check because config.guess is not under version control
(rather,
> > it is copied into place during bootstrap), but because m4 maintains it as a
> > symlink under version control, VC_LIST thinks it needs to be checked for
> > syntax, even though it is an upstream file not subject to the same rules.
> > Would it be worth changing vc-list-files to not follow git symlinks,
> > particularly if those symlinks point into git submodules?
>
> Yes, it sounds like that would be worthwhile -- at least to you.
How about this patch?
From: Eric Blake <address@hidden>
Date: Fri, 24 Apr 2009 14:58:02 -0600
Subject: [PATCH] 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 <address@hidden>
---
ChangeLog | 4 ++++
build-aux/vc-list-files | 14 ++++++++++++--
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 0083daf..fb16e2e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2009-04-24 Eric Blake <address@hidden>
+ 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 56acd5f..4b465a4 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
--
1.6.1.2