merge: notice local merging of tags and keep it unwrapped

This also updates the autogenerated merge title message from "merge commit X"
to "merge tag X", and its effect can be seen in the changes to the test suite.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 2011-11-04 21:31:28 -07:00
parent 7a2b128d13
commit 57b58db74c
5 changed files with 13 additions and 8 deletions

View File

@ -441,6 +441,11 @@ static void merge_name(const char *remote, struct strbuf *msg)
sha1_to_hex(branch_head), remote); sha1_to_hex(branch_head), remote);
goto cleanup; goto cleanup;
} }
if (!prefixcmp(found_ref, "refs/tags/")) {
strbuf_addf(msg, "%s\t\ttag '%s' of .\n",
sha1_to_hex(branch_head), remote);
goto cleanup;
}
if (!prefixcmp(found_ref, "refs/remotes/")) { if (!prefixcmp(found_ref, "refs/remotes/")) {
strbuf_addf(msg, "%s\t\tremote-tracking branch '%s' of .\n", strbuf_addf(msg, "%s\t\tremote-tracking branch '%s' of .\n",
sha1_to_hex(branch_head), remote); sha1_to_hex(branch_head), remote);

View File

@ -346,11 +346,11 @@ test_expect_success 'set up more tangled history' '
' '


cat > expect <<\EOF cat > expect <<\EOF
* Merge commit 'reach' * Merge tag 'reach'
|\ |\
| \ | \
| \ | \
*-. \ Merge commit 'octopus-a'; commit 'octopus-b' *-. \ Merge tags 'octopus-a' and 'octopus-b'
|\ \ \ |\ \ \
* | | | seventh * | | | seventh
| | * | octopus-b | | * | octopus-b

View File

@ -38,8 +38,8 @@ printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 '9 X' >result.1-5-9
>empty >empty


create_merge_msgs () { create_merge_msgs () {
echo "Merge commit 'c2'" >msg.1-5 && echo "Merge tag 'c2'" >msg.1-5 &&
echo "Merge commit 'c2'; commit 'c3'" >msg.1-5-9 && echo "Merge tags 'c2' and 'c3'" >msg.1-5-9 &&
{ {
echo "Squashed commit of the following:" && echo "Squashed commit of the following:" &&
echo && echo &&
@ -57,7 +57,7 @@ create_merge_msgs () {
} >squash.1-5-9 && } >squash.1-5-9 &&
echo >msg.nolog && echo >msg.nolog &&
{ {
echo "* commit 'c3':" && echo "* tag 'c3':" &&
echo " commit 3" && echo " commit 3" &&
echo echo
} >msg.log } >msg.log

View File

@ -11,7 +11,7 @@ create_merge_msgs() {


cp exp.subject exp.log && cp exp.subject exp.log &&
echo >>exp.log "" && echo >>exp.log "" &&
echo >>exp.log "* commit 'c2':" && echo >>exp.log "* tag 'c2':" &&
echo >>exp.log " c2" echo >>exp.log " c2"
} }



View File

@ -35,7 +35,7 @@ test_expect_success 'merge tag' '
git checkout master && git checkout master &&
test_commit master-3 && test_commit master-3 &&
git merge tag-1 && git merge tag-1 &&
check_oneline "Merge commit Qtag-1Q" check_oneline "Merge tag Qtag-1Q"
' '


test_expect_success 'ambiguous tag' ' test_expect_success 'ambiguous tag' '
@ -44,7 +44,7 @@ test_expect_success 'ambiguous tag' '
git checkout master && git checkout master &&
test_commit master-4 && test_commit master-4 &&
git merge ambiguous && git merge ambiguous &&
check_oneline "Merge commit QambiguousQ" check_oneline "Merge tag QambiguousQ"
' '


test_expect_success 'remote-tracking branch' ' test_expect_success 'remote-tracking branch' '