Some versions of sed exit non-zero if the file they are supplied is not newline terminated. Solaris's /usr/xpg4/bin/sed is one such sed. In this case the sed invocation can be avoided entirely since the resulting file is equivalent to a previously created file. So, just copy that file into place instead. Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			56 lines
		
	
	
		
			960 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			960 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# Copyright (c) 2006 Junio C Hamano
 | 
						|
#
 | 
						|
 | 
						|
test_description='git apply with new style GNU diff with empty context
 | 
						|
 | 
						|
'
 | 
						|
 | 
						|
. ./test-lib.sh
 | 
						|
 | 
						|
test_expect_success setup '
 | 
						|
	{
 | 
						|
		echo; echo;
 | 
						|
		echo A; echo B; echo C;
 | 
						|
		echo;
 | 
						|
	} >file1 &&
 | 
						|
	cat file1 >file1.orig &&
 | 
						|
	{
 | 
						|
		cat file1 &&
 | 
						|
		echo Q | tr -d "\\012"
 | 
						|
	} >file2 &&
 | 
						|
	cat file2 >file2.orig &&
 | 
						|
	git add file1 file2 &&
 | 
						|
	sed -e "/^B/d" <file1.orig >file1 &&
 | 
						|
	cat file1 > file2 &&
 | 
						|
	echo Q | tr -d "\\012" >>file2 &&
 | 
						|
	cat file1 >file1.mods &&
 | 
						|
	cat file2 >file2.mods &&
 | 
						|
	git diff |
 | 
						|
	sed -e "s/^ \$//" >diff.output
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'apply --numstat' '
 | 
						|
 | 
						|
	git apply --numstat diff.output >actual &&
 | 
						|
	{
 | 
						|
		echo "0	1	file1" &&
 | 
						|
		echo "0	1	file2"
 | 
						|
	} >expect &&
 | 
						|
	test_cmp expect actual
 | 
						|
 | 
						|
'
 | 
						|
 | 
						|
test_expect_success 'apply --apply' '
 | 
						|
 | 
						|
	cat file1.orig >file1 &&
 | 
						|
	cat file2.orig >file2 &&
 | 
						|
	git update-index file1 file2 &&
 | 
						|
	git apply --index diff.output &&
 | 
						|
	test_cmp file1.mods file1 &&
 | 
						|
	test_cmp file2.mods file2
 | 
						|
'
 | 
						|
 | 
						|
test_done
 |