98 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # Copyright (c) 2010 Stefan-W. Hahn
 | |
| #
 | |
| 
 | |
| test_description='git-am mbox with dos line ending.
 | |
| 
 | |
| '
 | |
| . ./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 <file1 >file &&
 | |
| 	git add file &&
 | |
| 	git commit -m Initial &&
 | |
| 	git tag initial &&
 | |
| 	append_cr <file2 >file &&
 | |
| 	git commit -a -m Second &&
 | |
| 	append_cr <file3 >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..master &&
 | |
| 	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..master >output &&
 | |
| 	git am --keep-cr -k -3 output &&
 | |
| 	git diff --exit-code master
 | |
| '
 | |
| 
 | |
| 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..master >output &&
 | |
| 	git am -k -3 output &&
 | |
| 	git diff --exit-code master
 | |
| '
 | |
| 
 | |
| 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..master &&
 | |
| 	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..master &&
 | |
| 	append_cr <file1a >file &&
 | |
| 	git commit -m "different patch" file &&
 | |
| 	test_must_fail git am --keep-cr -k -3 000*.patch &&
 | |
| 	append_cr <file2 >file &&
 | |
| 	git add file &&
 | |
| 	git am -3 --resolved &&
 | |
| 	git diff --exit-code master
 | |
| '
 | |
| 
 | |
| 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..master &&
 | |
| 	git am -k -3 --no-keep-cr 000*.patch &&
 | |
| 	git diff --exit-code -w master
 | |
| '
 | |
| 
 | |
| test_done
 |