Skip to content

Commit e3cba96

Browse files
apenwarrgitster
authored andcommitted
Extend merge-subtree tests to test -Xsubtree=dir.
This tests the configurable -Xsubtree feature of merge-recursive. Signed-off-by: Avery Pennarun <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 85e51b7 commit e3cba96

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

t/t6029-merge-subtree.sh

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ test_expect_success 'initial merge' '
5252
git merge -s ours --no-commit gui/master &&
5353
git read-tree --prefix=git-gui/ -u gui/master &&
5454
git commit -m "Merge git-gui as our subdirectory" &&
55+
git checkout -b work &&
5556
git ls-files -s >actual &&
5657
(
5758
echo "100644 $o1 0 git-gui/git-gui.sh"
@@ -65,9 +66,10 @@ test_expect_success 'merge update' '
6566
echo git-gui2 > git-gui.sh &&
6667
o3=$(git hash-object git-gui.sh) &&
6768
git add git-gui.sh &&
69+
git checkout -b master2 &&
6870
git commit -m "update git-gui" &&
6971
cd ../git &&
70-
git pull -s subtree gui master &&
72+
git pull -s subtree gui master2 &&
7173
git ls-files -s >actual &&
7274
(
7375
echo "100644 $o3 0 git-gui/git-gui.sh"
@@ -76,4 +78,47 @@ test_expect_success 'merge update' '
7678
test_cmp expected actual
7779
'
7880

81+
test_expect_success 'initial ambiguous subtree' '
82+
cd ../git &&
83+
git reset --hard master &&
84+
git checkout -b master2 &&
85+
git merge -s ours --no-commit gui/master &&
86+
git read-tree --prefix=git-gui2/ -u gui/master &&
87+
git commit -m "Merge git-gui2 as our subdirectory" &&
88+
git checkout -b work2 &&
89+
git ls-files -s >actual &&
90+
(
91+
echo "100644 $o1 0 git-gui/git-gui.sh"
92+
echo "100644 $o1 0 git-gui2/git-gui.sh"
93+
echo "100644 $o2 0 git.c"
94+
) >expected &&
95+
test_cmp expected actual
96+
'
97+
98+
test_expect_success 'merge using explicit' '
99+
cd ../git &&
100+
git reset --hard master2 &&
101+
git pull -Xsubtree=git-gui gui master2 &&
102+
git ls-files -s >actual &&
103+
(
104+
echo "100644 $o3 0 git-gui/git-gui.sh"
105+
echo "100644 $o1 0 git-gui2/git-gui.sh"
106+
echo "100644 $o2 0 git.c"
107+
) >expected &&
108+
test_cmp expected actual
109+
'
110+
111+
test_expect_success 'merge2 using explicit' '
112+
cd ../git &&
113+
git reset --hard master2 &&
114+
git pull -Xsubtree=git-gui2 gui master2 &&
115+
git ls-files -s >actual &&
116+
(
117+
echo "100644 $o1 0 git-gui/git-gui.sh"
118+
echo "100644 $o3 0 git-gui2/git-gui.sh"
119+
echo "100644 $o2 0 git.c"
120+
) >expected &&
121+
test_cmp expected actual
122+
'
123+
79124
test_done

0 commit comments

Comments
 (0)