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>
This commit is contained in:
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);
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/")) {
strbuf_addf(msg, "%s\t\tremote-tracking branch '%s' of .\n",
sha1_to_hex(branch_head), remote);

View file

@ -346,11 +346,11 @@ test_expect_success 'set up more tangled history' '
'
cat > expect <<\EOF
* Merge commit 'reach'
* Merge tag 'reach'
|\
| \
| \
*-. \ Merge commit 'octopus-a'; commit 'octopus-b'
*-. \ Merge tags 'octopus-a' and 'octopus-b'
|\ \ \
* | | | seventh
| | * | 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
create_merge_msgs () {
echo "Merge commit 'c2'" >msg.1-5 &&
echo "Merge commit 'c2'; commit 'c3'" >msg.1-5-9 &&
echo "Merge tag 'c2'" >msg.1-5 &&
echo "Merge tags 'c2' and 'c3'" >msg.1-5-9 &&
{
echo "Squashed commit of the following:" &&
echo &&
@ -57,7 +57,7 @@ create_merge_msgs () {
} >squash.1-5-9 &&
echo >msg.nolog &&
{
echo "* commit 'c3':" &&
echo "* tag 'c3':" &&
echo " commit 3" &&
echo
} >msg.log

View file

@ -11,7 +11,7 @@ create_merge_msgs() {
cp exp.subject exp.log &&
echo >>exp.log "" &&
echo >>exp.log "* commit 'c2':" &&
echo >>exp.log "* tag 'c2':" &&
echo >>exp.log " c2"
}

View file

@ -35,7 +35,7 @@ test_expect_success 'merge tag' '
git checkout master &&
test_commit master-3 &&
git merge tag-1 &&
check_oneline "Merge commit Qtag-1Q"
check_oneline "Merge tag Qtag-1Q"
'
test_expect_success 'ambiguous tag' '
@ -44,7 +44,7 @@ test_expect_success 'ambiguous tag' '
git checkout master &&
test_commit master-4 &&
git merge ambiguous &&
check_oneline "Merge commit QambiguousQ"
check_oneline "Merge tag QambiguousQ"
'
test_expect_success 'remote-tracking branch' '