# Fix "git tag -u" breakage

3 messages from 2007-01-31 to 2007-01-31. Participants: Linus Torvalds, Junio C Hamano, Andy Parkins.
Thread: https://gitlist.dev/t/6588

## Linus Torvalds, 2007-01-31 04:00

Subject: Fix "git tag -u" breakage
Message-ID: <Pine.LNX.4.64.0701301957320.3611@woody.linux-foundation.org>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0701301957320.3611%40woody.linux-foundation.org

```

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, 2007-01-31 04:56

Subject: Re: Fix "git tag -u" breakage
Message-ID: <7vsldrx08q.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vsldrx08q.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <Pine.LNX.4.64.0701301957320.3611@woody.linux-foundation.org>

```
Linus Torvalds <torvalds@linux-foundation.org> writes:

> 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, 2007-01-31 08:37

Subject: Re: Fix "git tag -u" breakage
Message-ID: <200701310838.01295.andyparkins@gmail.com>
URL: https://gitlist.dev/e/200701310838.01295.andyparkins%40gmail.com
In-Reply-To: <7vsldrx08q.fsf@assigned-by-dhcp.cox.net>

```
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

```
