Browse Source
"git blame" learnt to take "--first-parent" and "--reverse" at the same time when it makes sense. * mk/blame-first-parent: blame: allow blame --reverse --first-parent when it makes sense blame: extract find_single_final blame: test to describe use of blame --reverse --first-parentmaint
Junio C Hamano
9 years ago
2 changed files with 83 additions and 14 deletions
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
#!/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 |
Loading…
Reference in new issue