threads / rfc / 23778

RFC patchGIT-VERSION-GEN: restrict tags used

Subject: [RFC PATCH] GIT-VERSION-GEN: restrict tags used

## tl;dr

6 messages between May 11, 2010 and May 12, 2010. Diffs are folded; open one to read it.

replies: 5people: 3as markdown or json

Tay Ray Chuan· May 11, 2010, 17:33 UTC · lore

Restrict the tags used to generate the version string to those that begin with "v", since git's tags for git-core (ie. excluding git-gui) are all of the form "vX.Y...".

This is to avoid using private tags by the user in a clone of the git code repository, which may break certain machinery (eg. Makefile).

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
  Ran into this after tagging a topic branch and running make.
  Although a "v.*" match does not guarantee the non-usage of private
  tags, I feel it's an acceptable level of accuracy.
  After this patch, perhaps we could advertise somewhere to git hackers
  that tags beginning with "v" should be avoided.
 GIT-VERSION-GEN |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to GIT-VERSION-GEN +1 −2
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 59219bd..28b4d56 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -12,7 +12,7 @@ if test -f version
 then
 	VN=$(cat version) || VN="$DEF_VER"
 elif test -d .git -o -f .git &&
-	VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
+	VN=$(git describe --match "v*" --abbrev=4 HEAD 2>/dev/null) &&
 	case "$VN" in
 	*$LF*) (exit 1) ;;
 	v[0-9]*)
--
1.7.1.189.g07419
Jonathan Nieder· May 11, 2010, 23:01 UTC · re: Tay Ray Chuan · lore

Re: [RFC PATCH] GIT-VERSION-GEN: restrict tags used

Tay Ray Chuan wrote:
> Restrict the tags used to generate the version string to those that
> begin with "v"
I like it.  Thanks!
> since git's tags for git-core (ie. excluding git-gui)
> are all of the form "vX.Y...".
git gui’s too, now.
> This is to avoid using private tags by the user in a clone of the git
> code repository, which may break certain machinery (eg. Makefile).
Not to mention gitk:
  set git_version [join [lrange [split [lindex [exec git version] end] .] 0 2] .]
  if {[package vcompare $git_version "1.6.1"] >= 0} {
This requires ‘git version’ output to have the form
  introducing 1.2.3.otherstuff
or there will be errors at startup time.
>   After this patch, perhaps we could advertise somewhere to git hackers
>   that tags beginning with "v" should be avoided.
Maybe v[0-9]* would make this problem harder to trip.
Jonathan
Jonathan Nieder· May 11, 2010, 23:05 UTC · re: Jonathan Nieder · lore

Re: [RFC PATCH] GIT-VERSION-GEN: restrict tags used

Jonathan Nieder wrote:
> Tay Ray Chuan wrote:
>> since git's tags for git-core (ie. excluding git-gui)
>> are all of the form "vX.Y...".
>
> git gui’s too, now.
Aggh --- sent early, there.  Here is what I meant to say.

Shawn, this helps avoid any stray (annotated) tags the user may have made, following Tay’s example.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Show changes to GIT-VERSION-GEN +1 −1
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index b3f937e..d6a6601 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -13,7 +13,7 @@ tree_search ()
 	for p in $(git rev-list --parents --max-count=1 $head 2>/dev/null)
 	do
 		test $tree = $(git rev-parse $p^{tree} 2>/dev/null) &&
-		vn=$(git describe --abbrev=4 $p 2>/dev/null) &&
+		vn=$(git describe --match=gitgui-[0-9]* --abbrev=4 $p 2>/dev/null) &&
 		case "$vn" in
 		gitgui-[0-9]*) echo $vn; break;;
 		esac
Tay Ray Chuan· May 12, 2010, 03:23 UTC · re: Jonathan Nieder · lore

Re: [RFC PATCH] GIT-VERSION-GEN: restrict tags used

On Wed, May 12, 2010 at 7:01 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 14 quoted lines
> Tay Ray Chuan wrote:
>> This is to avoid using private tags by the user in a clone of the git
>> code repository, which may break certain machinery (eg. Makefile).
>
> Not to mention gitk:
>
>  set git_version [join [lrange [split [lindex [exec git version] end] .] 0 2] .]
>  if {[package vcompare $git_version "1.6.1"] >= 0} {
>
> This requires ‘git version’ output to have the form
>
>  introducing 1.2.3.otherstuff
>
> or there will be errors at startup time.
Thanks for the heads-up, I'll put that in the patch message.
>>   After this patch, perhaps we could advertise somewhere to git hackers
>>   that tags beginning with "v" should be avoided.
>
> Maybe v[0-9]* would make this problem harder to trip.
Oh, I didn't know character classes were allows. Sounds good.
-- 
Cheers,
Ray Chuan
Tay Ray Chuan· May 12, 2010, 03:29 UTC · re: Tay Ray Chuan · lore

[PATCH] GIT-VERSION-GEN: restrict tags used

Restrict the tags used to generate the version string to those that begin with "v", since git's tags for git-core (ie. excluding git-gui) are all of the form "vX.Y...".

This is to avoid using private tags by the user in a clone of the git code repository, which may break certain machinery (eg. Makefile, gitk).

Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
  Changes from RFC:
    - used "v[0-9]*" instead of just "v*"
    - mentioned gitk as another piece that may break
 GIT-VERSION-GEN |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to GIT-VERSION-GEN +1 −2
diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN
index 59219bd..e45513d 100755
--- a/GIT-VERSION-GEN
+++ b/GIT-VERSION-GEN
@@ -12,7 +12,7 @@ if test -f version
 then
 	VN=$(cat version) || VN="$DEF_VER"
 elif test -d .git -o -f .git &&
-	VN=$(git describe --abbrev=4 HEAD 2>/dev/null) &&
+	VN=$(git describe --match "v[0-9]*" --abbrev=4 HEAD 2>/dev/null) &&
 	case "$VN" in
 	*$LF*) (exit 1) ;;
 	v[0-9]*)
--
1.7.1.189.g07419

← back to recent threads