summaryrefslogtreecommitdiff
path: root/t/t7603-merge-reduce-heads.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-04-19 02:49:08 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-04-19 05:50:28 (GMT)
commit5802f81b1438fdbfab340c4e752e2be457c4a065 (patch)
tree5a1f4515eb7a7fdd81f5ed154fb86817744bd667 /t/t7603-merge-reduce-heads.sh
parente78cbf8cbb61edfbdef5d33262f9b8cf02a3afca (diff)
downloadgit-5802f81b1438fdbfab340c4e752e2be457c4a065.zip
git-5802f81b1438fdbfab340c4e752e2be457c4a065.tar.gz
git-5802f81b1438fdbfab340c4e752e2be457c4a065.tar.bz2
fmt-merge-msg: discard needless merge parents
This is used by "git pull" to construct a merge message from list of remote refs. When pulling redundant set of refs, however, it did not filter them even though the merge itself discards them as unnecessary. Teach the command to do the same for consistency. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7603-merge-reduce-heads.sh')
-rwxr-xr-xt/t7603-merge-reduce-heads.sh31
1 files changed, 30 insertions, 1 deletions
diff --git a/t/t7603-merge-reduce-heads.sh b/t/t7603-merge-reduce-heads.sh
index a3b08a6..9894895 100755
--- a/t/t7603-merge-reduce-heads.sh
+++ b/t/t7603-merge-reduce-heads.sh
@@ -57,7 +57,36 @@ test_expect_success 'merge c1 with c2, c3, c4, c5' '
test -f c2.c &&
test -f c3.c &&
test -f c4.c &&
- test -f c5.c
+ test -f c5.c &&
+ git show --format=%s -s >actual &&
+ ! grep c1 actual &&
+ grep c2 actual &&
+ grep c3 actual &&
+ ! grep c4 actual &&
+ grep c5 actual
+'
+
+test_expect_success 'pull c2, c3, c4, c5 into c1' '
+ git reset --hard c1 &&
+ git pull . c2 c3 c4 c5 &&
+ test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" &&
+ test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" &&
+ test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" &&
+ test "$(git rev-parse c3)" = "$(git rev-parse HEAD^3)" &&
+ test "$(git rev-parse c5)" = "$(git rev-parse HEAD^4)" &&
+ git diff --exit-code &&
+ test -f c0.c &&
+ test -f c1.c &&
+ test -f c2.c &&
+ test -f c3.c &&
+ test -f c4.c &&
+ test -f c5.c &&
+ git show --format=%s -s >actual &&
+ ! grep c1 actual &&
+ grep c2 actual &&
+ grep c3 actual &&
+ ! grep c4 actual &&
+ grep c5 actual
'
test_expect_success 'setup' '