Subject: Re: [PATCH] GIT-VERSION-GEN: support non-standard $GIT_DIR path

From: Dennis Kaarsemaker <[email-masked]>
Date: Tue, 18 Jun 2013 09:20:06 +0200

On ma, 2013-06-17 at 13:09 -0700, Junio C Hamano wrote:
> Junio C Hamano <[email-masked]> writes:
> 
> > Dennis Kaarsemaker <[email-masked]> writes:
> >
> >>  I'm doing daily builds of git, using many workers and a shared git.git,
> >>  with per-worker checkouts
> >
> > OK, so GIT_DIR is explicitly specified in these "workers".

Yes, both GIT_DIR and GIT_WORK_TREE are set and the use of .git/HEAD and
anything relying on it is shunned, so workers can run checkout as they
please.

> > Makes sense.
>
> Actually it does not.  What if GIT_DIR is an empty string or not set
> at all?  The patch breaks the build for everybody else, doesn't it?

It does indeed, I only tested in my setup and not with a normal make
test. Apologies.

> Perhaps like this instead?
>
>  GIT-VERSION-GEN | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
> index 2908204..91ec831 100755
> --- a/GIT-VERSION-GEN
> +++ b/GIT-VERSION-GEN
> @@ -11,7 +11,7 @@ LF='
>  if test -f version
>  then
>  	VN=$(cat version) || VN="$DEF_VER"
> -elif test -d .git -o -f .git &&
> +elif test -d ${GIT_DIR:-.git} -o -f .git &&
>  	VN=$(git describe --match "v[0-9]*" --abbrev=7 HEAD 2>/dev/null) &&
>  	case "$VN" in
>  	*$LF*) (exit 1) ;;

Yes, that makes a lot more sense and actually works in normal make test
and with a detached .git. Do you want me to send an updated patch?

-- 
Dennis Kaarsemaker
www.kaarsemaker.net