The --inter-hunk-context= option was added in commit 6d0e674a57
("diff: add option to show context between close hunks"). This patch
allows configuring a default for this option.
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
	
		
			
				
	
	
		
			118 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			1.9 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() {
 | 
						|
	use_config=
 | 
						|
	git config --unset diff.interHunkContext
 | 
						|
 | 
						|
	case $# in
 | 
						|
	4) hunks=$4; cmd="diff -U$3";;
 | 
						|
	5) hunks=$5; cmd="diff -U$3 --inter-hunk-context=$4";;
 | 
						|
	6) hunks=$5; cmd="diff -U$3"; git config diff.interHunkContext $4; use_config="(diff.interHunkContext=$4) ";;
 | 
						|
	esac
 | 
						|
	label="$use_config$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
 | 
						|
 | 
						|
#					use diff.interHunkContext?
 | 
						|
t 1 line	0	0	2	config
 | 
						|
t 1 line	0	1	1	config
 | 
						|
t 1 line	0	2	1	config
 | 
						|
t 9 lines	3	3	1	config
 | 
						|
t 2 lines	0	0	2	config
 | 
						|
t 2 lines	0	1	2	config
 | 
						|
t 2 lines	0	2	1	config
 | 
						|
t 3 lines	1	0	2	config
 | 
						|
t 3 lines	1	1	1	config
 | 
						|
t 3 lines	1	2	1	config
 | 
						|
t 9 lines	3	2	2	config
 | 
						|
t 9 lines	3	3	1	config
 | 
						|
 | 
						|
test_expect_success 'diff.interHunkContext invalid' '
 | 
						|
	git config diff.interHunkContext asdf &&
 | 
						|
	test_must_fail git diff &&
 | 
						|
	git config diff.interHunkContext -1 &&
 | 
						|
	test_must_fail git diff
 | 
						|
'
 | 
						|
 | 
						|
test_done
 |