summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-04-24 23:14:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-04-24 23:14:06 (GMT)
commit499231d9f157d0987d8bdad258ce4cfd9f4c3d1f (patch)
tree01926d529ede0e2d5285b8128aa3aaa80c43aa92 /t
parent7612e61e33981f48f212f6aefe3550ac724d6208 (diff)
parenta38d3d76b6d1c70b566633e1629aa3b0e856810e (diff)
downloadgit-499231d9f157d0987d8bdad258ce4cfd9f4c3d1f.zip
git-499231d9f157d0987d8bdad258ce4cfd9f4c3d1f.tar.gz
git-499231d9f157d0987d8bdad258ce4cfd9f4c3d1f.tar.bz2
Merge branch 'jc/merge-tag-object' into maint
"git merge $(git rev-parse v1.8.2)" behaved quite differently from "git merge v1.8.2", as if v1.8.2 were written as v1.8.2^0 and did not pay much attention to the annotated tag payload. Make the code notice the type of the tag object, in addition to the dwim_ref() based classification the current code uses (i.e. the name appears in refs/tags/) to decide when to special case merging of tags. * jc/merge-tag-object: t6200: test message for merging of an annotated tag t6200: use test_config/test_unconfig merge: a random object may not necssarily be a commit
Diffstat (limited to 't')
-rwxr-xr-xt/t6200-fmt-merge-msg.sh100
1 files changed, 68 insertions, 32 deletions
diff --git a/t/t6200-fmt-merge-msg.sh b/t/t6200-fmt-merge-msg.sh
index 992c2a0..f73ecea 100755
--- a/t/t6200-fmt-merge-msg.sh
+++ b/t/t6200-fmt-merge-msg.sh
@@ -112,8 +112,8 @@ test_expect_success '[merge] summary/log configuration' '
Common #1
EOF
- git config merge.log true &&
- test_might_fail git config --unset-all merge.summary &&
+ test_config merge.log true &&
+ test_unconfig merge.summary &&
git checkout master &&
test_tick &&
@@ -121,8 +121,8 @@ test_expect_success '[merge] summary/log configuration' '
git fmt-merge-msg <.git/FETCH_HEAD >actual1 &&
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary true &&
+ test_unconfig merge.log &&
+ test_config merge.summary true &&
git checkout master &&
test_tick &&
@@ -134,11 +134,6 @@ test_expect_success '[merge] summary/log configuration' '
test_cmp expected actual2
'
-test_expect_success 'setup: clear [merge] configuration' '
- test_might_fail git config --unset-all merge.log &&
- test_might_fail git config --unset-all merge.summary
-'
-
test_expect_success 'setup FETCH_HEAD' '
git checkout master &&
test_tick &&
@@ -248,14 +243,14 @@ test_expect_success 'fmt-merge-msg -m' '
Common #1
EOF
- test_might_fail git config --unset merge.log &&
- test_might_fail git config --unset merge.summary &&
+ test_unconfig merge.log &&
+ test_unconfig merge.summary &&
git checkout master &&
git fetch "$(pwd)" left &&
git fmt-merge-msg -m "Sync with left" <.git/FETCH_HEAD >actual &&
git fmt-merge-msg --log -m "Sync with left" \
<.git/FETCH_HEAD >actual.log &&
- git config merge.log true &&
+ test_config merge.log true &&
git fmt-merge-msg -m "Sync with left" \
<.git/FETCH_HEAD >actual.log-config &&
git fmt-merge-msg --no-log -m "Sync with left" \
@@ -290,29 +285,29 @@ test_expect_success 'setup: expected shortlog for two branches' '
'
test_expect_success 'shortlog for two branches' '
- git config merge.log true &&
- test_might_fail git config --unset-all merge.summary &&
+ test_config merge.log true &&
+ test_unconfig merge.summary &&
git checkout master &&
test_tick &&
git fetch . left right &&
git fmt-merge-msg <.git/FETCH_HEAD >actual1 &&
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary true &&
+ test_unconfig merge.log &&
+ test_config merge.summary true &&
git checkout master &&
test_tick &&
git fetch . left right &&
git fmt-merge-msg <.git/FETCH_HEAD >actual2 &&
- git config merge.log yes &&
- test_might_fail git config --unset-all merge.summary &&
+ test_config merge.log yes &&
+ test_unconfig merge.summary &&
git checkout master &&
test_tick &&
git fetch . left right &&
git fmt-merge-msg <.git/FETCH_HEAD >actual3 &&
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary yes &&
+ test_unconfig merge.log &&
+ test_config merge.summary yes &&
git checkout master &&
test_tick &&
git fetch . left right &&
@@ -325,8 +320,8 @@ test_expect_success 'shortlog for two branches' '
'
test_expect_success 'merge-msg -F' '
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary yes &&
+ test_unconfig merge.log &&
+ test_config merge.summary yes &&
git checkout master &&
test_tick &&
git fetch . left right &&
@@ -335,8 +330,8 @@ test_expect_success 'merge-msg -F' '
'
test_expect_success 'merge-msg -F in subdirectory' '
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary yes &&
+ test_unconfig merge.log &&
+ test_config merge.summary yes &&
git checkout master &&
test_tick &&
git fetch . left right &&
@@ -350,8 +345,8 @@ test_expect_success 'merge-msg -F in subdirectory' '
'
test_expect_success 'merge-msg with nothing to merge' '
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary yes &&
+ test_unconfig merge.log &&
+ test_config merge.summary yes &&
>empty &&
@@ -376,8 +371,8 @@ test_expect_success 'merge-msg tag' '
Common #1
EOF
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary yes &&
+ test_unconfig merge.log &&
+ test_config merge.summary yes &&
git checkout master &&
test_tick &&
@@ -406,8 +401,8 @@ test_expect_success 'merge-msg two tags' '
Common #1
EOF
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary yes &&
+ test_unconfig merge.log &&
+ test_config merge.summary yes &&
git checkout master &&
test_tick &&
@@ -436,8 +431,8 @@ test_expect_success 'merge-msg tag and branch' '
Common #1
EOF
- test_might_fail git config --unset-all merge.log &&
- git config merge.summary yes &&
+ test_unconfig merge.log &&
+ test_config merge.summary yes &&
git checkout master &&
test_tick &&
@@ -464,6 +459,8 @@ test_expect_success 'merge-msg lots of commits' '
echo " ..."
} >expected &&
+ test_config merge.summary yes &&
+
git checkout master &&
test_tick &&
git fetch . long &&
@@ -472,4 +469,43 @@ test_expect_success 'merge-msg lots of commits' '
test_cmp expected actual
'
+test_expect_success 'merge-msg with "merging" an annotated tag' '
+ test_config merge.log true &&
+
+ git checkout master^0 &&
+ git commit --allow-empty -m "One step ahead" &&
+ git tag -a -m "An annotated one" annote HEAD &&
+
+ git checkout master &&
+ git fetch . annote &&
+
+ git fmt-merge-msg <.git/FETCH_HEAD >actual &&
+ {
+ cat <<-\EOF
+ Merge tag '\''annote'\''
+
+ An annotated one
+
+ * tag '\''annote'\'':
+ One step ahead
+ EOF
+ } >expected &&
+ test_cmp expected actual &&
+
+ test_when_finished "git reset --hard" &&
+ annote=$(git rev-parse annote) &&
+ git merge --no-commit $annote &&
+ {
+ cat <<-EOF
+ Merge tag '\''$annote'\''
+
+ An annotated one
+
+ * tag '\''$annote'\'':
+ One step ahead
+ EOF
+ } >expected &&
+ test_cmp expected .git/MERGE_MSG
+'
+
test_done