Re: git merge remote branch says "Merge commit ..."?
- From
Jeff King <peff@peff.net>
- Date
- May 25, 2009, 09:44 UTC
- Message-ID
- <20090525094452.GC22382@coredump.intra.peff.net>
- In-Reply-To
- <7vljoo2mql.fsf@alter.siamese.dyndns.org>
On Sat, May 23, 2009 at 02:26:58AM -0700, Junio C Hamano wrote:
Show 5 quoted lines
> > Right. We could probably use similar logic in "git merge". I'm not sure > > if it is worth the trouble to end up with "Merge branch 'master' of > > origin" instead of "Merge remote branch 'origin/master'". > > I do not think it is worth doing that to lose information, either.
So would you be in favor of this patch?
-- >8 -- Subject: [PATCH] merge: indicate remote tracking branches in merge message
Previously when merging directly from a local tracking branch like:
git merge origin/master
The merge message said:
Merge commit 'origin/master'
* commit 'origin/master':
...Instead, let's be more explicit about what we are merging:
Merge remote branch 'origin/master'
* origin/master:
...We accomplish this by recognizing remote tracking branches in git-merge when we build the simulated FETCH_HEAD output that we feed to fmt-merge-msg.
Signed-off-by: Jeff King <peff@peff.net> --- This is not quite identical to the one I posted before; it adds the magic "of ." at the end of the line, which matches how regular non-remote branches are handled.
builtin-merge.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/builtin-merge.c b/builtin-merge.c index 0b58e5e..b6f60e9 100644 --- a/builtin-merge.c +++ b/builtin-merge.c @@ -378,6 +378,17 @@ static void merge_name(const char *remote, struct strbuf *msg) goto cleanup; } + strbuf_setlen(&buf, 0); + strbuf_addstr(&buf, "refs/remotes/"); + strbuf_addstr(&buf, remote); + resolve_ref(buf.buf, branch_head, 0, 0); + + if (!hashcmp(remote_head->sha1, branch_head)) { + strbuf_addf(msg, "%s\t\tremote branch '%s' of .\n", + sha1_to_hex(branch_head), remote); + goto cleanup; + } + /* See if remote matches <name>^^^.. or <name>~<number> */ for (len = 0, ptr = remote + strlen(remote); remote < ptr && ptr[-1] == '^';
-- 1.6.3.1.250.g01b8b.dirty