Re: Possible kinder GIT-VERSION-GEN?

Subsystems: the rest

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: Possible kinder GIT-VERSION-GEN?

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:10

Bill Lear [off-list ref] writes:
I have my home directory under git control, and I have a build
directory (not tracked by git) under my home directory into which I
untar files and then in which I build things, including git.
Let me make sure I understand you by rephrasing.  You are
extracting git tarball as an untracked subdirectory in an
unrelated project, and GIT-VERSION-GEN misbehaves.  One such
misbehaviour is that it adds -dirty.

And I think you are right.  The -dirty suffix should be relative
to the output of "git describe".  Version string derived from
any other codepath should not get the suffix, simply because we
do not even know if it is dirty.  In fact, we should not even
attempt to run that diff-index to figure out if it is dirty.

---

 GIT-VERSION-GEN |   12 +++---------
 1 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 38a3273..127c428 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -15,7 +15,9 @@ elif test -d .git &&
 	VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
 	case "$VN" in
 	*$LF*) (exit 1) ;;
-	v[0-9]*) : happy ;;
+	v[0-9]*)
+		dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) &&
+		VN="$VN-dirty" ;;
 	esac
 then
 	VN=$(echo "$VN" | sed -e 's/-/./g');
@@ -25,14 +27,6 @@ fi
 
 VN=$(expr "$VN" : v*'\(.*\)')
 
-dirty=$(sh -c 'git diff-index --name-only HEAD' 2>/dev/null) || dirty=
-case "$dirty" in
-'')
-	;;
-*)
-	VN="$VN-dirty" ;;
-esac
-
 if test -r $GVF
 then
 	VC=$(sed -e 's/^GIT_VERSION = //' <$GVF)

Re: Possible kinder GIT-VERSION-GEN?

From: Bill Lear <hidden>
Date: 2016-06-15 22:44:10

On Monday, February 4, 2008 at 13:59:25 (-0800) Junio C Hamano writes:
Bill Lear [off-list ref] writes:
quoted
I have my home directory under git control, and I have a build
directory (not tracked by git) under my home directory into which I
untar files and then in which I build things, including git.
Let me make sure I understand you by rephrasing.  You are
extracting git tarball as an untracked subdirectory in an
unrelated project, and GIT-VERSION-GEN misbehaves.  One such
misbehaviour is that it adds -dirty.
Yes, that is correct.
And I think you are right.  The -dirty suffix should be relative
to the output of "git describe".  Version string derived from
any other codepath should not get the suffix, simply because we
do not even know if it is dirty.  In fact, we should not even
attempt to run that diff-index to figure out if it is dirty.
Ok, I trust you know what you are talking about with git-describe.:-)


Bill
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help