* Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email?
@ 2012-09-01 15:34 Ævar Arnfjörð Bjarmason
2012-09-01 15:57 ` Andreas Schwab
0 siblings, 1 reply; 7+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2012-09-01 15:34 UTC (permalink / raw)
To: Git Mailing List
Maybe this is documented in some place I didn't spot, but I expected
that when I set GIT_AUTHOR_{NAME,EMAIL} it would affect the operation
of git-tag, but it doesn't seem to. When I create tags it seems to
completely ignore those variables.
Should it be doing that? Here's a test script demonstrating the issue:
#!/bin/sh -e
# Set defaults
git config --global user.name "Ævar Arnfjörð Bjarmason"
git config --global user.email "avarab@gmail.com"
rm -rf /tmp/test-git
git init /tmp/test-git
cd /tmp/test-git
make_commit() {
file=$1
content=$2
echo $content >$file
git add $file
git commit -m"$file: $content" $file
git --no-pager log -1 HEAD | grep ^Author
}
make_commit README "testing content"
git config user.name "Test User"
git config user.email "test@example.com"
make_commit README "testing content again"
git tag -a -m"annotated tag" tag-name-1
git --no-pager show tag-name-1 | grep ^Author
GIT_AUTHOR_NAME="Tag Test User"
GIT_AUTHOR_EMAIL="tagtest@example.com" git tag -a -m"another annotated
tag" tag-name-2
git --no-pager show tag-name-2 | grep ^Author
Which outputs:
$ sh /tmp/test-tag.sh
Initialized empty Git repository in /tmp/test-git/.git/
[master (root-commit) 9816756] README: testing content
1 file changed, 1 insertion(+)
create mode 100644 README
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
[master 304b71e] README: testing content again
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Test User <test@example.com>
Author: Test User <test@example.com>
Author: Test User <test@example.com>
I'd expect references to "Tag Test User <tagtest@example.com>" for the
second tag I created.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email?
2012-09-01 15:34 Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email? Ævar Arnfjörð Bjarmason
@ 2012-09-01 15:57 ` Andreas Schwab
2012-09-01 16:06 ` Ævar Arnfjörð Bjarmason
0 siblings, 1 reply; 7+ messages in thread
From: Andreas Schwab @ 2012-09-01 15:57 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason; +Cc: Git Mailing List
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> git --no-pager show tag-name-1 | grep ^Author
A tag doesn't have an author, it has a tagger. This shows the author of
the *commit*.
> GIT_AUTHOR_NAME="Tag Test User"
> GIT_AUTHOR_EMAIL="tagtest@example.com" git tag -a -m"another annotated
> tag" tag-name-2
The tagger is controlled by the committer info.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email?
2012-09-01 15:57 ` Andreas Schwab
@ 2012-09-01 16:06 ` Ævar Arnfjörð Bjarmason
2012-09-01 16:12 ` Andreas Schwab
0 siblings, 1 reply; 7+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2012-09-01 16:06 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Git Mailing List
On Sat, Sep 1, 2012 at 5:57 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>> git --no-pager show tag-name-1 | grep ^Author
>
> A tag doesn't have an author, it has a tagger. This shows the author of
> the *commit*.
I got the grep wrong, I meant that I expected the tagger to be set
according to GIT_AUTHOR_{NAME,EMAIL}, but it isn't either:
$ sh /tmp/test-tag.sh
Initialized empty Git repository in /tmp/test-git/.git/
[master (root-commit) f83fc11] README: testing content
1 file changed, 1 insertion(+)
create mode 100644 README
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
[master ef65731] README: testing content again
1 file changed, 1 insertion(+), 1 deletion(-)
Author: Test User <test@example.com>
Tagger: Test User <test@example.com>
Author: Test User <test@example.com>
Tagger: Test User <test@example.com>
Author: Test User <test@example.com>
>> GIT_AUTHOR_NAME="Tag Test User"
>> GIT_AUTHOR_EMAIL="tagtest@example.com" git tag -a -m"another annotated
>> tag" tag-name-2
>
> The tagger is controlled by the committer info.
I don't get what you mean, what committer info?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email?
2012-09-01 16:06 ` Ævar Arnfjörð Bjarmason
@ 2012-09-01 16:12 ` Andreas Schwab
2012-09-11 14:56 ` Ævar Arnfjörð Bjarmason
0 siblings, 1 reply; 7+ messages in thread
From: Andreas Schwab @ 2012-09-01 16:12 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason; +Cc: Git Mailing List
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> I don't get what you mean, what committer info?
GIT_COMMITTER_{NAME,EMAIL}. A tagger isn't really an author.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email?
2012-09-01 16:12 ` Andreas Schwab
@ 2012-09-11 14:56 ` Ævar Arnfjörð Bjarmason
2012-09-11 16:53 ` Junio C Hamano
0 siblings, 1 reply; 7+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2012-09-11 14:56 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Git Mailing List, Junio C Hamano
On Sat, Sep 1, 2012 at 6:12 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>> I don't get what you mean, what committer info?
>
> GIT_COMMITTER_{NAME,EMAIL}. A tagger isn't really an author.
Ah, am I the only one that finds that a bit counterintuitive to the
point of wanting to submit a patch to change it?
If you've created a tag you're the *author* of that tag, the
author/committer distinction for commit objects is there for e.g.
rebases and applying commits via e.g. git-am.
We don't have a similar facility for tags (you have to push them
around directly), but we *could* and in that case having a
Tag-Committer as well well as a Tagger would make sense.
Junio, what do you think?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email?
2012-09-11 14:56 ` Ævar Arnfjörð Bjarmason
@ 2012-09-11 16:53 ` Junio C Hamano
2012-09-11 16:58 ` demerphq
0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2012-09-11 16:53 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason; +Cc: Andreas Schwab, Git Mailing List
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> On Sat, Sep 1, 2012 at 6:12 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>>
>>> I don't get what you mean, what committer info?
>>
>> GIT_COMMITTER_{NAME,EMAIL}. A tagger isn't really an author.
>
> Ah, am I the only one that finds that a bit counterintuitive to the
> point of wanting to submit a patch to change it?
>
> If you've created a tag you're the *author* of that tag, the
> author/committer distinction for commit objects is there for e.g.
> rebases and applying commits via e.g. git-am.
>
> We don't have a similar facility for tags (you have to push them
> around directly), but we *could* and in that case having a
> Tag-Committer as well well as a Tagger would make sense.
>
> Junio, what do you think?
Unless your name is Linus Torvalds and it is early in year 2005, I
wouldn't even think about it.
When we introduced "tagger name can be overriden with environment",
we could have added GIT_TAGGER_{NAME,EMAIL}, but we didn't. Given
that tagging happens far far less often than committing, I think it
was a sensible thing to do.
It is a perfectly normal thing in Git for you to commit a patch
authored by other people on behalf of them (and that is why AUTHOR
exists as a separate name from the committer), but you still stand
behind the commits you create by setting COMMITTER of them to you.
The fact that it was _you_ who create the tag has similar weight
that you have your name as the committer in commit objects, so in
that sense, I think the semantics used for the name in tag is far
closer to COMMITTER than AUTHOR.
I guess I wouldn't mind too much if "git tag" learned a "--tagger"
option, and honored GIT_TAGGER_{NAME,EMAIL} if set (and otherwise,
fall back to GIT_COMMITTER_{NAME,EMAIL}), but I do not know if it is
worth it. How often would you want to _lie_ about your identity
when you are tagging, and what legitimate reason do you have for
doing so?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email?
2012-09-11 16:53 ` Junio C Hamano
@ 2012-09-11 16:58 ` demerphq
0 siblings, 0 replies; 7+ messages in thread
From: demerphq @ 2012-09-11 16:58 UTC (permalink / raw)
To: Junio C Hamano
Cc: Ævar Arnfjörð, Andreas Schwab, Git Mailing List
On 11 September 2012 18:53, Junio C Hamano <gitster@pobox.com> wrote:
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>> On Sat, Sep 1, 2012 at 6:12 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
>>> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>>>
>>>> I don't get what you mean, what committer info?
>>>
>>> GIT_COMMITTER_{NAME,EMAIL}. A tagger isn't really an author.
>>
>> Ah, am I the only one that finds that a bit counterintuitive to the
>> point of wanting to submit a patch to change it?
>>
>> If you've created a tag you're the *author* of that tag, the
>> author/committer distinction for commit objects is there for e.g.
>> rebases and applying commits via e.g. git-am.
>>
>> We don't have a similar facility for tags (you have to push them
>> around directly), but we *could* and in that case having a
>> Tag-Committer as well well as a Tagger would make sense.
>>
>> Junio, what do you think?
>
> Unless your name is Linus Torvalds and it is early in year 2005, I
> wouldn't even think about it.
>
> When we introduced "tagger name can be overriden with environment",
> we could have added GIT_TAGGER_{NAME,EMAIL}, but we didn't. Given
> that tagging happens far far less often than committing, I think it
> was a sensible thing to do.
>
> It is a perfectly normal thing in Git for you to commit a patch
> authored by other people on behalf of them (and that is why AUTHOR
> exists as a separate name from the committer), but you still stand
> behind the commits you create by setting COMMITTER of them to you.
> The fact that it was _you_ who create the tag has similar weight
> that you have your name as the committer in commit objects, so in
> that sense, I think the semantics used for the name in tag is far
> closer to COMMITTER than AUTHOR.
>
> I guess I wouldn't mind too much if "git tag" learned a "--tagger"
> option, and honored GIT_TAGGER_{NAME,EMAIL} if set (and otherwise,
> fall back to GIT_COMMITTER_{NAME,EMAIL}), but I do not know if it is
> worth it. How often would you want to _lie_ about your identity
> when you are tagging, and what legitimate reason do you have for
> doing so?
Interestingly this came up because of the opposite problem. We wanted
to *prevent* users from telling lies about who they are.
IOW, when we do a rollout with git-deploy we want to automatically set
their username from a secondary authenticated source before we create
a rollout tag in their name.
cheers,
Yves
--
perl -Mre=debug -e "/just|another|perl|hacker/"
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-09-11 16:58 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-01 15:34 Should GIT_AUTHOR_{NAME,EMAIL} set the tagger name/email? Ævar Arnfjörð Bjarmason
2012-09-01 15:57 ` Andreas Schwab
2012-09-01 16:06 ` Ævar Arnfjörð Bjarmason
2012-09-01 16:12 ` Andreas Schwab
2012-09-11 14:56 ` Ævar Arnfjörð Bjarmason
2012-09-11 16:53 ` Junio C Hamano
2012-09-11 16:58 ` demerphq
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).