summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2015-10-30 13:07:08 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2015-10-30 13:07:08 -0700
commit54bc41416c5d3ecb978acb0df80d57aa3e54494c (patch)
treea804b8e346b9f79bc461cdb52686d805ff69d535 /t
parentMerge branch 'gr/rebase-i-drop-warn' (diff)
parentmerge-file: clamp exit code to maximum 127 (diff)
downloadtgif-54bc41416c5d3ecb978acb0df80d57aa3e54494c.tar.xz
Merge branch 'jk/merge-file-exit-code'
"git merge-file" tried to signal how many conflicts it found, which obviously would not work well when there are too many of them. * jk/merge-file-exit-code: merge-file: clamp exit code to maximum 127
Diffstat (limited to 't')
-rwxr-xr-xt/t7600-merge.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh
index 75c50eea15..302e238263 100755
--- a/t/t7600-merge.sh
+++ b/t/t7600-merge.sh
@@ -692,4 +692,37 @@ test_expect_success GPG 'merge --no-edit tag should skip editor' '
test_cmp actual expect
'
+test_expect_success 'set up mod-256 conflict scenario' '
+ # 256 near-identical stanzas...
+ for i in $(test_seq 1 256); do
+ for j in 1 2 3 4 5; do
+ echo $i-$j
+ done
+ done >file &&
+ git add file &&
+ git commit -m base &&
+
+ # one side changes the first line of each to "master"
+ sed s/-1/-master/ <file >tmp &&
+ mv tmp file &&
+ git commit -am master &&
+
+ # and the other to "side"; merging the two will
+ # yield 256 separate conflicts
+ git checkout -b side HEAD^ &&
+ sed s/-1/-side/ <file >tmp &&
+ mv tmp file &&
+ git commit -am side
+'
+
+test_expect_success 'merge detects mod-256 conflicts (recursive)' '
+ git reset --hard &&
+ test_must_fail git merge -s recursive master
+'
+
+test_expect_success 'merge detects mod-256 conflicts (resolve)' '
+ git reset --hard &&
+ test_must_fail git merge -s resolve master
+'
+
test_done