70 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='git apply handling criss-cross rename patch.'
 | |
| . ./test-lib.sh
 | |
| 
 | |
| create_file() {
 | |
| 	cnt=0
 | |
| 	while test $cnt -le 100
 | |
| 	do
 | |
| 		cnt=$(($cnt + 1))
 | |
| 		echo "$2" >> "$1"
 | |
| 	done
 | |
| }
 | |
| 
 | |
| test_expect_success 'setup' '
 | |
| 	# Ensure that file sizes are different, because on Windows
 | |
| 	# lstat() does not discover inode numbers, and we need
 | |
| 	# other properties to discover swapped files
 | |
| 	# (mtime is not always different, either).
 | |
| 	create_file file1 "some content" &&
 | |
| 	create_file file2 "some other content" &&
 | |
| 	create_file file3 "again something else" &&
 | |
| 	git add file1 file2 file3 &&
 | |
| 	git commit -m 1
 | |
| '
 | |
| 
 | |
| test_expect_success 'criss-cross rename' '
 | |
| 	mv file1 tmp &&
 | |
| 	mv file2 file1 &&
 | |
| 	mv tmp file2 &&
 | |
| 	cp file1 file1-swapped &&
 | |
| 	cp file2 file2-swapped
 | |
| '
 | |
| 
 | |
| test_expect_success 'diff -M -B' '
 | |
| 	git diff -M -B > diff &&
 | |
| 	git reset --hard
 | |
| 
 | |
| '
 | |
| 
 | |
| test_expect_success 'apply' '
 | |
| 	git apply diff &&
 | |
| 	test_cmp file1 file1-swapped &&
 | |
| 	test_cmp file2 file2-swapped
 | |
| '
 | |
| 
 | |
| test_expect_success 'criss-cross rename' '
 | |
| 	git reset --hard &&
 | |
| 	mv file1 tmp &&
 | |
| 	mv file2 file1 &&
 | |
| 	mv file3 file2 &&
 | |
| 	mv tmp file3 &&
 | |
| 	cp file1 file1-swapped &&
 | |
| 	cp file2 file2-swapped &&
 | |
| 	cp file3 file3-swapped
 | |
| '
 | |
| 
 | |
| test_expect_success 'diff -M -B' '
 | |
| 	git diff -M -B > diff &&
 | |
| 	git reset --hard
 | |
| '
 | |
| 
 | |
| test_expect_success 'apply' '
 | |
| 	git apply diff &&
 | |
| 	test_cmp file1 file1-swapped &&
 | |
| 	test_cmp file2 file2-swapped &&
 | |
| 	test_cmp file3 file3-swapped
 | |
| '
 | |
| 
 | |
| test_done
 |