bug-gnulib
[Top][All Lists]
Advanced

[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








reply via email to

[Prev in Thread] Current Thread [Next in Thread]