mirror of
https://github.com/git/git.git
synced 2024-12-15 04:46:02 +08:00
700fd28e4f
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>
37 lines
857 B
Bash
Executable File
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
|