threads / discuss / 6588

Fix "git tag -u" breakage

Subject: Fix "git tag -u" breakage

## tl;dr

3 messages between Jan 31, 2007 and Jan 31, 2007.

replies: 2people: 3as markdown or json

Linus Torvalds· Jan 31, 2007, 04:00 UTC · lore
The recent cleanup to understand
	[user]
		signingkey = ..

sadly broke the old "-u signingkey" syntax. Admittedly the config file approach is nicer, and I should probably use it, but even so, there's really no reason to break the old syntax either.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---

This fixes it for me, and _looks_ obvious enough, but I didn't actually test the other cases (ie tagger name and the config file). Caveat patchor.

diff --git a/git-tag.sh b/git-tag.sh
index 988bf4c..c2c57d5 100755
--- a/git-tag.sh
+++ b/git-tag.sh
@@ -115,6 +115,7 @@ tagger=$(git-var GIT_COMMITTER_IDENT) || exit 1
 
 keyid=$(git-repo-config user.signingkey) ||
 	keyid=$(expr "z$tagger" : 'z\(.*>\)')
+username=${username:-$keyid}
 
 trap 'rm -f "$GIT_DIR"/TAG_TMP* "$GIT_DIR"/TAG_FINALMSG "$GIT_DIR"/TAG_EDITMSG' 0
 
@@ -141,7 +142,7 @@ if [ "$annotate" ]; then
       cat "$GIT_DIR"/TAG_FINALMSG ) >"$GIT_DIR"/TAG_TMP
     rm -f "$GIT_DIR"/TAG_TMP.asc "$GIT_DIR"/TAG_FINALMSG
     if [ "$signed" ]; then
-	gpg -bsa -u "$keyid" "$GIT_DIR"/TAG_TMP &&
+	gpg -bsa -u "$username" "$GIT_DIR"/TAG_TMP &&
 	cat "$GIT_DIR"/TAG_TMP.asc >>"$GIT_DIR"/TAG_TMP ||
 	die "failed to sign the tag with GPG."
     fi
Junio C Hamano· Jan 31, 2007, 04:56 UTC · re: Linus Torvalds · lore

Re: Fix "git tag -u" breakage

Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 14 quoted lines
> The recent cleanup to understand
>
> 	[user]
> 		signingkey = ..
>
> sadly broke the old "-u signingkey" syntax. Admittedly the config file 
> approach is nicer, and I should probably use it, but even so, there's 
> really no reason to break the old syntax either.
>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
> ---
>
> This fixes it for me, and _looks_ obvious enough, but I didn't actually 
> test the other cases (ie tagger name and the config file). Caveat patchor.
Sorry, and thanks.

There was no reason to introduce a separate variable keyid to begin with. I should have been more careful to read what was outside of the patch.

diff --git a/git-tag.sh b/git-tag.sh
index 988bf4c..4a0a7b6 100755
--- a/git-tag.sh
+++ b/git-tag.sh
@@ -113,8 +113,9 @@ object=$(git-rev-parse --verify --default HEAD "$@") || exit 1
 type=$(git-cat-file -t $object) || exit 1
 tagger=$(git-var GIT_COMMITTER_IDENT) || exit 1
 
-keyid=$(git-repo-config user.signingkey) ||
-	keyid=$(expr "z$tagger" : 'z\(.*>\)')
+test -n "$username" ||
+	username=$(git-repo-config user.signingkey) ||
+	username=$(expr "z$tagger" : 'z\(.*>\)')
 
 trap 'rm -f "$GIT_DIR"/TAG_TMP* "$GIT_DIR"/TAG_FINALMSG "$GIT_DIR"/TAG_EDITMSG' 0
 
@@ -141,7 +142,7 @@ if [ "$annotate" ]; then
       cat "$GIT_DIR"/TAG_FINALMSG ) >"$GIT_DIR"/TAG_TMP
     rm -f "$GIT_DIR"/TAG_TMP.asc "$GIT_DIR"/TAG_FINALMSG
     if [ "$signed" ]; then
-	gpg -bsa -u "$keyid" "$GIT_DIR"/TAG_TMP &&
+	gpg -bsa -u "$username" "$GIT_DIR"/TAG_TMP &&
 	cat "$GIT_DIR"/TAG_TMP.asc >>"$GIT_DIR"/TAG_TMP ||
 	die "failed to sign the tag with GPG."
     fi
Andy Parkins· Jan 31, 2007, 08:37 UTC · re: Junio C Hamano · lore

Re: Fix "git tag -u" breakage

On Wednesday 2007 January 31 04:56, Junio C Hamano wrote:
> Sorry, and thanks.

Apologies - I thought I had searched for all instances of username in the script. Perhaps I just looked for $username. Duh.

> There was no reason to introduce a separate variable keyid to
> begin with.  I should have been more careful to read what was
> outside of the patch.

The change of name was to indicate that the variable isn't actually holding a username anymore, it really is a key ID. GPG will let you specify a key in a number of ways, only one of which is by username. Therefore, I think a better patch would be to finish what I started and change the remaining two instances of username to keyid.

diff --git a/git-tag.sh b/git-tag.sh
index 988bf4c..0898a70 100755
--- a/git-tag.sh
+++ b/git-tag.sh
@@ -10,7 +10,7 @@ annotate=
 signed=
 force=
 message=
-username=
+keyid=
 list=
 verify=
 while case "$#" in 0) break ;; esac
@@ -59,7 +59,7 @@ do
    annotate=1
    signed=1
    shift
-   username="$1"
+   keyid="$1"
    ;;
     -d)
        shift



Andy
-- 
Dr Andy Parkins, M Eng (hons), MIEE
andyparkins@gmail.com

← back to recent threads