Re: [PATCH 1/3] GIT-VERSION-GEN: make use of git describe --dirty
- From
Mathias Lafeldt <misfire@debugon.org>
- Date
- Oct 23, 2010, 12:23 UTC
- Message-ID
- <4CC2D3B4.5030607@debugon.org>
- In-Reply-To
- <20101022151140.GC9224@burratino>
On 10/22/2010 05:11 PM, Jonathan Nieder wrote:
Show 11 quoted lines
> Mathias Lafeldt wrote: > >> Currently, GIT-VERSION-GEN invokes the plumbing commands "git update-index" and >> "git diff-index" to determine if the working tree is dirty. It then appends >> "-dirty" to the version string returned by "git describe". >> >> However, as of Git v1.6.6, "git describe" can be told to do all that with the >> "--dirty" option, saving us the plumbing. > > This has a minor downside, which is avoiding the nice version numbers when > building Git with git 1.5.6 installed. What is the upside?
The upside is that the number of executed commands to get the version string is reduced from three to one.
I understand your point, though it would only be a "problem" once when doing the upgrade.
If backwards compatibility is more important here, I'd at least add a comment to GIT-VERSION-GEN. Something like:
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index d441d88..5c226f6 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -16,6 +16,10 @@ elif test -d .git -o -f .git && case "$VN" in *$LF*) (exit 1) ;; v[0-9]*) + # As of Git v1.6.6, we can use "git describe --dirty" to + # determine if the working tree is dirty. However, to still + # have nice version numbers when building Git with older + # versions of git installed, we keep using plumbing. git update-index -q --refresh test -z "$(git diff-index --name-only HEAD --)" || VN="$VN-dirty" ;; -Mathias