3 # Copyright (c) 2010 Stefan-W. Hahn
6 test_description='git-am mbox with dos line ending.
11 # Three patches which will be added as files with dos line ending.
33 test_expect_success 'setup repository with dos files' '
34 append_cr <file1 >file &&
36 git commit -m Initial &&
38 append_cr <file2 >file &&
39 git commit -a -m Second &&
40 append_cr <file3 >file &&
41 git commit -a -m Third
44 test_expect_success 'am with dos files without --keep-cr' '
45 git checkout -b dosfiles initial &&
46 git format-patch -k initial..master &&
47 test_must_fail git am -k -3 000*.patch &&
49 rm -rf .git/rebase-apply 000*.patch
52 test_expect_success 'am with dos files with --keep-cr' '
53 git checkout -b dosfiles-keep-cr initial &&
54 git format-patch -k --stdout initial..master >output &&
55 git am --keep-cr -k -3 output &&
56 git diff --exit-code master
59 test_expect_success 'am with dos files config am.keepcr' '
60 git config am.keepcr 1 &&
61 git checkout -b dosfiles-conf-keepcr initial &&
62 git format-patch -k --stdout initial..master >output &&
63 git am -k -3 output &&
64 git diff --exit-code master
67 test_expect_success 'am with dos files config am.keepcr overridden by --no-keep-cr' '
68 git config am.keepcr 1 &&
69 git checkout -b dosfiles-conf-keepcr-override initial &&
70 git format-patch -k initial..master &&
71 test_must_fail git am -k -3 --no-keep-cr 000*.patch &&
73 rm -rf .git/rebase-apply 000*.patch
76 test_expect_success 'am with dos files with --keep-cr continue' '
77 git checkout -b dosfiles-keep-cr-continue initial &&
78 git format-patch -k initial..master &&
79 append_cr <file1a >file &&
80 git commit -m "different patch" file &&
81 test_must_fail git am --keep-cr -k -3 000*.patch &&
82 append_cr <file2 >file &&
84 git am -3 --resolved &&
85 git diff --exit-code master
88 test_expect_success 'am with unix files config am.keepcr overridden by --no-keep-cr' '
89 git config am.keepcr 1 &&
90 git checkout -b unixfiles-conf-keepcr-override initial &&
92 git commit -m "line ending to unix" file &&
93 git format-patch -k initial..master &&
94 git am -k -3 --no-keep-cr 000*.patch &&
95 git diff --exit-code -w master