blob: 52a451dd5782ab584ba34e73abaef32d5e332537 [file] [log] [blame]
Miklos Vajna1b1d78f2008-07-30 01:17:00 +02001#!/bin/sh
2
Nanako Shiraishif9647322008-09-10 06:25:27 +09003test_description='git merge
Miklos Vajna1b1d78f2008-07-30 01:17:00 +02004
5Testing a custom strategy.'
6
7. ./test-lib.sh
8
9cat >git-merge-theirs <<EOF
10#!$SHELL_PATH
11eval git read-tree --reset -u \\\$\$#
12EOF
13chmod +x git-merge-theirs
14PATH=.:$PATH
15export PATH
16
17test_expect_success 'setup' '
18 echo c0 >c0.c &&
19 git add c0.c &&
20 git commit -m c0 &&
21 git tag c0 &&
22 echo c1 >c1.c &&
23 git add c1.c &&
24 git commit -m c1 &&
25 git tag c1 &&
26 git reset --hard c0 &&
Junio C Hamanoe596cdd2008-08-23 19:23:22 -070027 echo c1c1 >c1.c &&
Miklos Vajna1b1d78f2008-07-30 01:17:00 +020028 echo c2 >c2.c &&
Junio C Hamanoe596cdd2008-08-23 19:23:22 -070029 git add c1.c c2.c &&
Miklos Vajna1b1d78f2008-07-30 01:17:00 +020030 git commit -m c2 &&
31 git tag c2
32'
33
34test_expect_success 'merge c2 with a custom strategy' '
35 git reset --hard c1 &&
36 git merge -s theirs c2 &&
37 test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" &&
38 test "$(git rev-parse c1)" = "$(git rev-parse HEAD^1)" &&
39 test "$(git rev-parse c2)" = "$(git rev-parse HEAD^2)" &&
40 test "$(git rev-parse c2^{tree})" = "$(git rev-parse HEAD^{tree})" &&
41 git diff --exit-code &&
Junio C Hamanoe596cdd2008-08-23 19:23:22 -070042 git diff --exit-code c2 HEAD &&
43 git diff --exit-code c2 &&
Miklos Vajna1b1d78f2008-07-30 01:17:00 +020044 test -f c0.c &&
Junio C Hamanoe596cdd2008-08-23 19:23:22 -070045 grep c1c1 c1.c &&
Miklos Vajna1b1d78f2008-07-30 01:17:00 +020046 test -f c2.c
47'
48
49test_done