Merge branch 'jk/blame-first-parent' into maint
"git blame --first-parent v1.0..v2.0" was not rejected but did not limit the blame to commits on the first parent chain. * jk/blame-first-parent: blame: handle --first-parent
This commit is contained in:
commit
14d5a3e47e
@ -1371,8 +1371,15 @@ static void pass_whole_blame(struct scoreboard *sb,
|
||||
*/
|
||||
static struct commit_list *first_scapegoat(struct rev_info *revs, struct commit *commit)
|
||||
{
|
||||
if (!reverse)
|
||||
if (!reverse) {
|
||||
if (revs->first_parent_only &&
|
||||
commit->parents &&
|
||||
commit->parents->next) {
|
||||
free_commit_list(commit->parents->next);
|
||||
commit->parents->next = NULL;
|
||||
}
|
||||
return commit->parents;
|
||||
}
|
||||
return lookup_decoration(&revs->children, &commit->object);
|
||||
}
|
||||
|
||||
@ -2685,6 +2692,8 @@ parse_done:
|
||||
}
|
||||
else if (contents_from)
|
||||
die("--contents and --children do not blend well.");
|
||||
else if (revs.first_parent_only)
|
||||
die("combining --first-parent and --reverse is not supported");
|
||||
else {
|
||||
final_commit_name = prepare_initial(&sb);
|
||||
sb.commits.compare = compare_commits_by_reverse_commit_date;
|
||||
|
@ -111,6 +111,10 @@ test_expect_success 'blame 2 authors + 2 merged-in authors' '
|
||||
check_count A 2 B 1 B1 2 B2 1
|
||||
'
|
||||
|
||||
test_expect_success 'blame --first-parent blames merge for branch1' '
|
||||
check_count --first-parent A 2 B 1 "A U Thor" 2 B2 1
|
||||
'
|
||||
|
||||
test_expect_success 'blame ancestor' '
|
||||
check_count -h master A 2 B 2
|
||||
'
|
||||
|
Loading…
Reference in New Issue
Block a user