126 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='git rebase --whitespace=fix
 | |
| 
 | |
| This test runs git rebase --whitespace=fix and make sure that it works.
 | |
| '
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| # prepare initial revision of "file" with a blank line at the end
 | |
| cat >file <<EOF
 | |
| a
 | |
| b
 | |
| c
 | |
| 
 | |
| EOF
 | |
| 
 | |
| # expected contents in "file" after rebase
 | |
| cat >expect-first <<EOF
 | |
| a
 | |
| b
 | |
| c
 | |
| EOF
 | |
| 
 | |
| # prepare second revision of "file"
 | |
| cat >second <<EOF
 | |
| a
 | |
| b
 | |
| c
 | |
| 
 | |
| d
 | |
| e
 | |
| f
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| EOF
 | |
| 
 | |
| # expected contents in second revision after rebase
 | |
| cat >expect-second <<EOF
 | |
| a
 | |
| b
 | |
| c
 | |
| 
 | |
| d
 | |
| e
 | |
| f
 | |
| EOF
 | |
| 
 | |
| test_expect_success 'blank line at end of file; extend at end of file' '
 | |
| 	git commit --allow-empty -m "Initial empty commit" &&
 | |
| 	git add file && git commit -m first &&
 | |
| 	mv second file &&
 | |
| 	git add file &&	git commit -m second &&
 | |
| 	git rebase --whitespace=fix HEAD^^ &&
 | |
| 	git diff --exit-code HEAD^:file expect-first &&
 | |
| 	test_cmp expect-second file
 | |
| '
 | |
| 
 | |
| # prepare third revision of "file"
 | |
| sed -e's/Z//' >third <<EOF
 | |
| a
 | |
| b
 | |
| c
 | |
| 
 | |
| d
 | |
| e
 | |
| f
 | |
|     Z
 | |
|  Z
 | |
| h
 | |
| i
 | |
| j
 | |
| k
 | |
| l
 | |
| EOF
 | |
| 
 | |
| sed -e's/ //g' <third >expect-third
 | |
| 
 | |
| test_expect_success 'two blanks line at end of file; extend at end of file' '
 | |
| 	cp third file && git add file && git commit -m third &&
 | |
| 	git rebase --whitespace=fix HEAD^^ &&
 | |
| 	git diff --exit-code HEAD^:file expect-second &&
 | |
| 	test_cmp expect-third file
 | |
| '
 | |
| 
 | |
| test_expect_success 'same, but do not remove trailing spaces' '
 | |
| 	git config core.whitespace "-blank-at-eol" &&
 | |
| 	git reset --hard HEAD^ &&
 | |
| 	cp third file && git add file && git commit -m third &&
 | |
| 	git rebase --whitespace=fix HEAD^^ &&
 | |
| 	git diff --exit-code HEAD^:file expect-second &&
 | |
| 	test_cmp file third
 | |
| '
 | |
| 
 | |
| sed -e's/Z//' >beginning <<EOF
 | |
| a
 | |
| 		    Z
 | |
|        Z
 | |
| EOF
 | |
| 
 | |
| cat >expect-beginning <<EOF
 | |
| a
 | |
| 
 | |
| 
 | |
| 1
 | |
| 2
 | |
| 3
 | |
| 4
 | |
| 5
 | |
| EOF
 | |
| 
 | |
| test_expect_success 'at beginning of file' '
 | |
| 	git config core.whitespace "blank-at-eol" &&
 | |
| 	cp beginning file &&
 | |
| 	git commit -m beginning file &&
 | |
| 	for i in 1 2 3 4 5; do
 | |
| 		echo $i
 | |
| 	done >> file &&
 | |
| 	git commit -m more file	&&
 | |
| 	git rebase --whitespace=fix HEAD^^ &&
 | |
| 	test_cmp expect-beginning file
 | |
| '
 | |
| 
 | |
| test_done
 |