 6d0e674a57
			
		
	
	6d0e674a57
	
	
	
		
			
			Merge two hunks if there is only the specified number of otherwise unshown context between them. For --inter-hunk-context=1, the resulting patch has the same number of lines but shows uninterrupted context instead of a context header line in between. Patches generated with this option are easier to read but are also more likely to conflict if the file to be patched contains other changes. This patch keeps the default for this option at 0. It is intended to just make the feature available in order to see its advantages and downsides. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			93 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='diff hunk fusing'
 | |
| 
 | |
| . ./test-lib.sh
 | |
| 
 | |
| f() {
 | |
| 	echo $1
 | |
| 	i=1
 | |
| 	while test $i -le $2
 | |
| 	do
 | |
| 		echo $i
 | |
| 		i=$(expr $i + 1)
 | |
| 	done
 | |
| 	echo $3
 | |
| }
 | |
| 
 | |
| t() {
 | |
| 	case $# in
 | |
| 	4) hunks=$4; cmd="diff -U$3";;
 | |
| 	5) hunks=$5; cmd="diff -U$3 --inter-hunk-context=$4";;
 | |
| 	esac
 | |
| 	label="$cmd, $1 common $2"
 | |
| 	file=f$1
 | |
| 	expected=expected.$file.$3.$hunks
 | |
| 
 | |
| 	if ! test -f $file
 | |
| 	then
 | |
| 		f A $1 B >$file
 | |
| 		git add $file
 | |
| 		git commit -q -m. $file
 | |
| 		f X $1 Y >$file
 | |
| 	fi
 | |
| 
 | |
| 	test_expect_success "$label: count hunks ($hunks)" "
 | |
| 		test $(git $cmd $file | grep '^@@ ' | wc -l) = $hunks
 | |
| 	"
 | |
| 
 | |
| 	test -f $expected &&
 | |
| 	test_expect_success "$label: check output" "
 | |
| 		git $cmd $file | grep -v '^index ' >actual &&
 | |
| 		test_cmp $expected actual
 | |
| 	"
 | |
| }
 | |
| 
 | |
| cat <<EOF >expected.f1.0.1 || exit 1
 | |
| diff --git a/f1 b/f1
 | |
| --- a/f1
 | |
| +++ b/f1
 | |
| @@ -1,3 +1,3 @@
 | |
| -A
 | |
| +X
 | |
|  1
 | |
| -B
 | |
| +Y
 | |
| EOF
 | |
| 
 | |
| cat <<EOF >expected.f1.0.2 || exit 1
 | |
| diff --git a/f1 b/f1
 | |
| --- a/f1
 | |
| +++ b/f1
 | |
| @@ -1 +1 @@
 | |
| -A
 | |
| +X
 | |
| @@ -3 +3 @@ A
 | |
| -B
 | |
| +Y
 | |
| EOF
 | |
| 
 | |
| # common lines	ctx	intrctx	hunks
 | |
| t 1 line	0		2
 | |
| t 1 line	0	0	2
 | |
| t 1 line	0	1	1
 | |
| t 1 line	0	2	1
 | |
| t 1 line	1		1
 | |
| 
 | |
| t 2 lines	0		2
 | |
| t 2 lines	0	0	2
 | |
| t 2 lines	0	1	2
 | |
| t 2 lines	0	2	1
 | |
| t 2 lines	1		1
 | |
| 
 | |
| t 3 lines	1		2
 | |
| t 3 lines	1	0	2
 | |
| t 3 lines	1	1	1
 | |
| t 3 lines	1	2	1
 | |
| 
 | |
| t 9 lines	3		2
 | |
| t 9 lines	3	2	2
 | |
| t 9 lines	3	3	1
 | |
| 
 | |
| test_done
 |