summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 751c597)
raw | patch | inline | side by side (parent: 751c597)
author | Jeff King <peff@peff.net> | |
Sun, 9 Aug 2009 10:02:51 +0000 (06:02 -0400) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sun, 9 Aug 2009 19:34:21 +0000 (12:34 -0700) |
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.
In addition to a new test in t7608, we have to tweak the
expected output of t3409, which does such a merge.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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.
In addition to a new test in t7608, we have to tweak the
expected output of t3409, which does such a merge.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-merge.c | patch | blob | history | |
t/t3409-rebase-preserve-merges.sh | patch | blob | history | |
t/t7608-merge-messages.sh | patch | blob | history |
diff --git a/builtin-merge.c b/builtin-merge.c
index f7db14846ecbca6b0f928237951d9505b68e5d6a..f4de73fa9d8d4ca4d311cb86d6901346ceb0d19f 100644 (file)
--- a/builtin-merge.c
+++ b/builtin-merge.c
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> */
index e6c832780fbe00afe5c513f0f5e4c87d7020e2a4..297d165476b93e18b18bf42bc81f4740cf18db9f 100755 (executable)
git fetch &&
git rebase -p origin/topic &&
test 1 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&
- test 1 = $(git rev-list --all --pretty=oneline | grep "Merge commit" | wc -l)
+ test 1 = $(git rev-list --all --pretty=oneline | grep "Merge remote branch " | wc -l)
)
'
index 81ced8ac3cc924a8461196cb71d27e9fc3a8f610..28d56797b17d5b1426d6c7c36e37b956731f1dfd 100755 (executable)
check_oneline "Merge commit QambiguousQ"
'
+test_expect_success 'remote branch' '
+ git checkout -b remote master &&
+ test_commit remote-1 &&
+ git update-ref refs/remotes/origin/master remote &&
+ git checkout master &&
+ test_commit master-5 &&
+ git merge origin/master &&
+ check_oneline "Merge remote branch Qorigin/masterQ"
+'
+
test_done