Re: [PATCH 0/3] More on pulling signed tags
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 5, 2012, 00:22 UTC
- Message-ID
- <7vobujngl3.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <7vsjjvnh4e.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 6 quoted lines
> We might want to reword "parent #2", by the way. The code was designed to > apply even to an Octopus, but I suspect 99.9% of the mergetag will be on > the second parent of a two-parent commit. You will never see "parent #1" > (i.e. direct parent you pulled into) unless you hand-craft the merge > commit object, and you are not likely to create an Octopus that pulls > multiple signed tags into one commit.
... and this is a fix-up patch on top of the series. With this, the output becomes like this:
commit 2240a7bb479c38434bd636da9ce6afbd3f49447a merged tag 'tytso-for-linus-20111214' gpg: Signature made Wed 14 Dec 2011 11:15:13 AM PST using RSA key ID C11804F0 gpg: Good signature from "Theodore Ts'o <tytso@mit.edu>" gpg: aka "Theodore Ts'o <tytso@debian.org>" gpg: aka "Theodore Ts'o <tytso@google.com>" Merge: 30aaca4 5a0dc73 Author: Linus Torvalds <torvalds@linux-foundation.org> Date: Wed Dec 14 18:25:58 2011 -0800
Merge tag 'tytso-for-linus-20111214' of git://git.kernel.org/pub/scm/l...
* tag 'tytso-for-linus-20111214' of git://git.kernel.org/pub/scm/linux...
ext4: handle EOF correctly in ext4_bio_write_page()
...log-tree.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/log-tree.c b/log-tree.c index b87dd53..37510da 100644 --- a/log-tree.c +++ b/log-tree.c @@ -456,6 +456,13 @@ static int which_parent(const unsigned char *sha1, const struct commit *commit) return -1; } +static int is_common_merge(const struct commit *commit) +{ + return (commit->parents + && commit->parents->next + && !commit->parents->next->next); +} + static void show_one_mergetag(struct rev_info *opt, struct commit_extra_header *extra, struct commit *commit) @@ -474,6 +481,11 @@ static void show_one_mergetag(struct rev_info *opt, strbuf_init(&verify_message, 256); if (parse_tag_buffer(tag, extra->value, extra->len)) strbuf_addstr(&verify_message, "malformed mergetag\n"); + else if (is_common_merge(commit) && + !hashcmp(tag->tagged->sha1, + commit->parents->next->item->object.sha1)) + strbuf_addf(&verify_message, + "merged tag '%s'\n", tag->tag); else if ((nth = which_parent(tag->tagged->sha1, commit)) < 0) strbuf_addf(&verify_message, "tag %s names a non-parent %s\n", tag->tag, tag->tagged->sha1);