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.
Signed-off-by: Mathias Lafeldt <redacted>
---
GIT-VERSION-GEN | 7 ++-----
1 files changed, 2 insertions(+), 5 deletions(-)
From: Jonathan Nieder <hidden> Date: 2016-06-15 22:49:51
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?
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:
@@ -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
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:
@@ -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" ;;
@@ -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" ;;
Any feedback would be welcome.
I like it, also because people who use GIT-VERSION-GEN from git
repository as inspiration would get to know more modern technique.
--
Jakub Narebski
Poland
ShadeHawk on #git