1#!/bin/sh
2
3append_cr () {
4 sed -e 's/$/Q/' | tr Q '\015'
5}
6
7remove_cr () {
8 tr '\015' Q | sed -e 's/Q$//'
9}
10
11test_description='merge conflict in crlf repo
12
13 b---M
14 / /
15 initial---a
16
17'
18
19. ./test-lib.sh
20
21test_expect_success setup '
22 git config core.autocrlf true &&
23 echo foo | append_cr >file &&
24 git add file &&
25 git commit -m "Initial" &&
26 git tag initial &&
27 git branch side &&
28 echo line from a | append_cr >file &&
29 git commit -m "add line from a" file &&
30 git tag a &&
31 git checkout side &&
32 echo line from b | append_cr >file &&
33 git commit -m "add line from b" file &&
34 git tag b &&
35 git checkout master
36'
37
38test_expect_success 'Check "ours" is CRLF' '
39 git reset --hard initial &&
40 git merge side -s ours &&
41 cat file | remove_cr | append_cr >file.temp &&
42 test_cmp file file.temp
43'
44
45test_expect_success 'Check that conflict file is CRLF' '
46 git reset --hard a &&
47 test_must_fail git merge side &&
48 cat file | remove_cr | append_cr >file.temp &&
49 test_cmp file file.temp
50'
51
52test_done