GNU diff's --suppress-blank-empty option makes it so that diff no longer outputs trailing white space unless the input data has it. With this option, empty context lines are now empty also in diff -u output. Before, they would have a single trailing space. * diff.c (diff_suppress_blank_empty): New global. (git_diff_basic_config): Set it. (fn_out_consume): Honor it. * t/t4029-diff-trailing-space.sh: New file. * Documentation/config.txt: Document it. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			40 lines
		
	
	
		
			802 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			802 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# Copyright (c) Jim Meyering
 | 
						|
#
 | 
						|
test_description='diff honors config option, diff.suppress-blank-empty'
 | 
						|
 | 
						|
. ./test-lib.sh
 | 
						|
 | 
						|
cat <<\EOF > exp ||
 | 
						|
diff --git a/f b/f
 | 
						|
index 5f6a263..8cb8bae 100644
 | 
						|
--- a/f
 | 
						|
+++ b/f
 | 
						|
@@ -1,2 +1,2 @@
 | 
						|
 | 
						|
-x
 | 
						|
+y
 | 
						|
EOF
 | 
						|
exit 1
 | 
						|
 | 
						|
test_expect_success \
 | 
						|
    "$test_description" \
 | 
						|
    'printf "\nx\n" > f &&
 | 
						|
     git add f &&
 | 
						|
     git commit -q -m. f &&
 | 
						|
     printf "\ny\n" > f &&
 | 
						|
     git config --bool diff.suppress-blank-empty true &&
 | 
						|
     git diff f > actual &&
 | 
						|
     test_cmp exp actual &&
 | 
						|
     perl -i.bak -p -e "s/^\$/ /" exp &&
 | 
						|
     git config --bool diff.suppress-blank-empty false &&
 | 
						|
     git diff f > actual &&
 | 
						|
     test_cmp exp actual &&
 | 
						|
     git config --bool --unset diff.suppress-blank-empty &&
 | 
						|
     git diff f > actual &&
 | 
						|
     test_cmp exp actual
 | 
						|
     '
 | 
						|
 | 
						|
test_done
 |