Jeff King <peff@xxxxxxxx> writes: > 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@xxxxxxxx> > --- > This is a repost of > > http://article.gmane.org/gmane.comp.version-control.git/119909 > > which got no response from you. I think it is a good idea, but I am not > deeply committed to it. I mainly want a yes or no so I can clean it out > of my patch queue. I somewhat suspect that the patch was not applied because it also lacked necessary adjustments to tests. With this patch, I think the tests would fail. Nevertheless, I think it is a good thing to do. But I am unsure about the implementation. Shouldn't it instead feed what it got from the end user to the dwim machinery, and make sure it dwims into refs/remotes/ hierarchy? In other words, like this. Note that it would be much clearer to see what's needed, if you want to extend it to refs/tags hierarchy ;-) builtin-merge.c | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/builtin-merge.c b/builtin-merge.c index 82b5466..f4de73f 100644 --- a/builtin-merge.c +++ b/builtin-merge.c @@ -358,6 +358,7 @@ static void merge_name(const char *remote, struct strbuf *msg) struct strbuf buf = STRBUF_INIT; struct strbuf bname = STRBUF_INIT; const char *ptr; + char *found_ref; int len, early; strbuf_branchname(&bname, remote); @@ -368,14 +369,17 @@ static void merge_name(const char *remote, struct strbuf *msg) if (!remote_head) die("'%s' does not point to a commit", remote); - strbuf_addstr(&buf, "refs/heads/"); - strbuf_addstr(&buf, remote); - resolve_ref(buf.buf, branch_head, 0, NULL); - - if (!hashcmp(remote_head->sha1, branch_head)) { - strbuf_addf(msg, "%s\t\tbranch '%s' of .\n", - sha1_to_hex(branch_head), remote); - goto cleanup; + if (dwim_ref(remote, strlen(remote), branch_head, &found_ref) > 0) { + if (!prefixcmp(found_ref, "refs/heads/")) { + strbuf_addf(msg, "%s\t\tbranch '%s' of .\n", + sha1_to_hex(branch_head), remote); + goto cleanup; + } + if (!prefixcmp(found_ref, "refs/remotes/")) { + 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> */ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html