@matheusbsbs / matheus-bagliano / commits / f15652d90c
Fork 0

Add additional testcases for D/F conflicts

Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Elijah Newren committed Jul 9, 2010 at 07:10 UTC f15652d90c37ca56db08d325c871f2cc8f7d509e
2 files changed +84 -4
t/t6035-merge-dir-to-symlink.sh
+60 -4
@@ -48,7 +48,7 @@ test_expect_success 'setup for merge test' '
48 git tag baseline
49 '
50
51 -test_expect_success 'do not lose a/b-2/c/d in merge (resolve)' '
51 +test_expect_success 'Handle D/F conflict, do not lose a/b-2/c/d in merge (resolve)' '
52 git reset --hard &&
53 git checkout baseline^0 &&
54 git merge -s resolve master &&
@@ -56,7 +56,7 @@ test_expect_success 'do not lose a/b-2/c/d in merge (resolve)' '
56 test -f a/b-2/c/d
57 '
58
59 -test_expect_failure 'do not lose a/b-2/c/d in merge (recursive)' '
59 +test_expect_failure 'Handle D/F conflict, do not lose a/b-2/c/d in merge (recursive)' '
60 git reset --hard &&
61 git checkout baseline^0 &&
62 git merge -s recursive master &&
@@ -64,6 +64,54 @@ test_expect_failure 'do not lose a/b-2/c/d in merge (recursive)' '
64 test -f a/b-2/c/d
65 '
66
67 +test_expect_success 'Handle F/D conflict, do not lose a/b-2/c/d in merge (resolve)' '
68 + git reset --hard &&
69 + git checkout master^0 &&
70 + git merge -s resolve baseline^0 &&
71 + test -h a/b &&
72 + test -f a/b-2/c/d
73 +'
74 +
75 +test_expect_failure 'Handle F/D conflict, do not lose a/b-2/c/d in merge (recursive)' '
76 + git reset --hard &&
77 + git checkout master^0 &&
78 + git merge -s recursive baseline^0 &&
79 + test -h a/b &&
80 + test -f a/b-2/c/d
81 +'
82 +
83 +test_expect_failure 'do not lose untracked in merge (resolve)' '
84 + git reset --hard &&
85 + git checkout baseline^0 &&
86 + >a/b/c/e &&
87 + test_must_fail git merge -s resolve master &&
88 + test -f a/b/c/e &&
89 + test -f a/b-2/c/d
90 +'
91 +
92 +test_expect_success 'do not lose untracked in merge (recursive)' '
93 + git reset --hard &&
94 + git checkout baseline^0 &&
95 + >a/b/c/e &&
96 + test_must_fail git merge -s recursive master &&
97 + test -f a/b/c/e &&
98 + test -f a/b-2/c/d
99 +'
100 +
101 +test_expect_success 'do not lose modifications in merge (resolve)' '
102 + git reset --hard &&
103 + git checkout baseline^0 &&
104 + echo more content >>a/b/c/d &&
105 + test_must_fail git merge -s resolve master
106 +'
107 +
108 +test_expect_success 'do not lose modifications in merge (recursive)' '
109 + git reset --hard &&
110 + git checkout baseline^0 &&
111 + echo more content >>a/b/c/d &&
112 + test_must_fail git merge -s recursive master
113 +'
114 +
115 test_expect_success 'setup a merge where dir a/b-2 changed to symlink' '
116 git reset --hard &&
117 git checkout start^0 &&
@@ -74,7 +122,7 @@ test_expect_success 'setup a merge where dir a/b-2 changed to symlink' '
122 git tag test2
123 '
124
77 -test_expect_success 'merge should not have conflicts (resolve)' '
125 +test_expect_success 'merge should not have D/F conflicts (resolve)' '
126 git reset --hard &&
127 git checkout baseline^0 &&
128 git merge -s resolve test2 &&
@@ -82,7 +130,7 @@ test_expect_success 'merge should not have conflicts (resolve)' '
130 test -f a/b/c/d
131 '
132
85 -test_expect_failure 'merge should not have conflicts (recursive)' '
133 +test_expect_failure 'merge should not have D/F conflicts (recursive)' '
134 git reset --hard &&
135 git checkout baseline^0 &&
136 git merge -s recursive test2 &&
@@ -90,4 +138,12 @@ test_expect_failure 'merge should not have conflicts (recursive)' '
138 test -f a/b/c/d
139 '
140
141 +test_expect_failure 'merge should not have F/D conflicts (recursive)' '
142 + git reset --hard &&
143 + git checkout -b foo test2 &&
144 + git merge -s recursive baseline^0 &&
145 + test -h a/b-2 &&
146 + test -f a/b/c/d
147 +'
148 +
149 test_done
t/t9350-fast-export.sh
+24
@@ -376,4 +376,28 @@ test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj'
376 test_expect_success 'tag-obj_tag' 'git fast-export tag-obj_tag'
377 test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj'
378
379 +test_expect_failure 'directory becomes symlink' '
380 + git init dirtosymlink &&
381 + git init result &&
382 + (
383 + cd dirtosymlink &&
384 + mkdir foo &&
385 + mkdir bar &&
386 + echo hello > foo/world &&
387 + echo hello > bar/world &&
388 + git add foo/world bar/world &&
389 + git commit -q -mone &&
390 + git rm -r foo &&
391 + ln -s bar foo &&
392 + git add foo &&
393 + git commit -q -mtwo
394 + ) &&
395 + (
396 + cd dirtosymlink &&
397 + git fast-export master -- foo |
398 + (cd ../result && git fast-import --quiet)
399 + ) &&
400 + (cd result && git show master:foo)
401 +'
402 +
403 test_done