#!/bin/sh # # Copyright (c) 2010 Stefan-W. Hahn # test_description='git-am mbox with dos line ending. ' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # Three patches which will be added as files with dos line ending. cat >file1 <<\EOF line 1 EOF cat >file1a <<\EOF line 1 line 4 EOF cat >file2 <<\EOF line 1 line 2 EOF cat >file3 <<\EOF line 1 line 2 line 3 EOF test_expect_success 'setup repository with dos files' ' append_cr file && git add file && git commit -m Initial && git tag initial && append_cr file && git commit -a -m Second && append_cr file && git commit -a -m Third ' test_expect_success 'am with dos files without --keep-cr' ' git checkout -b dosfiles initial && git format-patch -k initial..main && test_must_fail git am -k -3 000*.patch && git am --abort && rm -rf .git/rebase-apply 000*.patch ' test_expect_success 'am with dos files with --keep-cr' ' git checkout -b dosfiles-keep-cr initial && git format-patch -k --stdout initial..main >output && git am --keep-cr -k -3 output && git diff --exit-code main ' test_expect_success 'am with dos files config am.keepcr' ' git config am.keepcr 1 && git checkout -b dosfiles-conf-keepcr initial && git format-patch -k --stdout initial..main >output && git am -k -3 output && git diff --exit-code main ' test_expect_success 'am with dos files config am.keepcr overridden by --no-keep-cr' ' git config am.keepcr 1 && git checkout -b dosfiles-conf-keepcr-override initial && git format-patch -k initial..main && test_must_fail git am -k -3 --no-keep-cr 000*.patch && git am --abort && rm -rf .git/rebase-apply 000*.patch ' test_expect_success 'am with dos files with --keep-cr continue' ' git checkout -b dosfiles-keep-cr-continue initial && git format-patch -k initial..main && append_cr file && git commit -m "different patch" file && test_must_fail git am --keep-cr -k -3 000*.patch && append_cr file && git add file && git am -3 --resolved && git diff --exit-code main ' test_expect_success 'am with unix files config am.keepcr overridden by --no-keep-cr' ' git config am.keepcr 1 && git checkout -b unixfiles-conf-keepcr-override initial && cp -f file1 file && git commit -m "line ending to unix" file && git format-patch -k initial..main && git am -k -3 --no-keep-cr 000*.patch && git diff --exit-code -w main ' test_done