Bruno, Jim, thanks for your comments.
Jim Meyering <j...@meyering.net> writes: > What is your use case? I have the git repository in myserver/, but the top_srcdir is in myserver/myserver/. > Won't this proposal cause trouble when > running git-version-gen in a non-version-controlled > pkg-top-level-directory that has a parent containing an > unrelated .git/ directory? > > That would happen to me when building under $HOME, > since I have $HOME/.git. > > I think you would have to add something more to ensure that the > repository used is in fact associated with the project at hand. I wasn't aware of this git behaviour. I couldn't find anything better than the check: test -n "$(git log -z -n1 .)" I am not sure if there is a more "elegant" way to do it. Cheers, Giuseppe >From 5f9409e6b500a74a7f1ad9b46bda5923d0a8b633 Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano <gscriv...@gnu.org> Date: Mon, 10 May 2010 10:58:01 +0200 Subject: [PATCH] Do not limit git-version-gen to work only under the repository root. * build-aux/git-version-gen: Modify check whether directory is controlled by git or not. --- ChangeLog | 7 +++++++ build-aux/git-version-gen | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5510f68..1dc7fe3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-05-10 Giuseppe Scrivano <gscriv...@gnu.org> + + Do not limit git-version-gen to work only under the repository root. + + * build-aux/git-version-gen: Modify check whether directory is + controlled by git or not. + 2010-05-10 Jim Meyering <meyer...@redhat.com> maint.mk: avoid using a temporary file in the always-defined-macros check diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen index 5a7e989..50646c8 100755 --- a/build-aux/git-version-gen +++ b/build-aux/git-version-gen @@ -1,6 +1,6 @@ #!/bin/sh # Print a version string. -scriptversion=2010-04-26.16; # UTC +scriptversion=2010-05-10.10; # UTC # Copyright (C) 2007-2010 Free Software Foundation, Inc. # @@ -92,7 +92,8 @@ fi if test -n "$v" then : # use $v -elif test -d .git \ +# Check that the current directory is controlled by git. +elif (test -n "$(git log -z -n1 .)") > /dev/null 2>&1 \ && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \ || git describe --abbrev=4 HEAD 2>/dev/null` \ && case $v in -- 1.7.1