git/t/t8009-blame-vs-topicbranches.sh
Max Kirillov 700fd28e4f blame: allow blame --reverse --first-parent when it makes sense
Allow combining --reverse and --first-parent if initial commit of
specified range is at the first-parent chain starting from the final
commit. Disable the prepare_revision_walk()'s builtin children
collection, instead picking only the ones which are along the first
parent chain.

Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-10-30 15:33:13 -07:00

37 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