36 lines
		
	
	
	
		
			857 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			857 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| test_description='blaming trough history with topic branches'
 | |
| . ./test-lib.sh
 | |
| 
 | |
| # Creates the history shown below. '*'s mark the first parent in the merges.
 | |
| # The only line of file.t is changed in commit B2
 | |
| #
 | |
| #        +---C1
 | |
| #       /      \
 | |
| # A0--A1--*A2--*A3
 | |
| #   \     /
 | |
| #    B1-B2
 | |
| #
 | |
| test_expect_success setup '
 | |
| 	test_commit A0 file.t line0 &&
 | |
| 	test_commit A1 &&
 | |
| 	git reset --hard A0 &&
 | |
| 	test_commit B1 &&
 | |
| 	test_commit B2 file.t line0changed &&
 | |
| 	git reset --hard A1 &&
 | |
| 	test_merge A2 B2 &&
 | |
| 	git reset --hard A1 &&
 | |
| 	test_commit C1 &&
 | |
| 	git reset --hard A2 &&
 | |
| 	test_merge A3 C1
 | |
| 	'
 | |
| 
 | |
| test_expect_success 'blame --reverse --first-parent finds A1' '
 | |
| 	git blame --porcelain --reverse --first-parent A0..A3 -- file.t >actual_full &&
 | |
| 	head -n 1 <actual_full | sed -e "s/ .*//" >actual &&
 | |
| 	git rev-parse A1 >expect &&
 | |
| 	test_cmp expect actual
 | |
| 	'
 | |
| 
 | |
| test_done
 |