mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
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)
|
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 commit->parents;
|
||||||
|
}
|
||||||
return lookup_decoration(&revs->children, &commit->object);
|
return lookup_decoration(&revs->children, &commit->object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2685,6 +2692,8 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
|
||||||
}
|
}
|
||||||
else if (contents_from)
|
else if (contents_from)
|
||||||
die("--contents and --children do not blend well.");
|
die("--contents and --children do not blend well.");
|
||||||
|
else if (revs.first_parent_only)
|
||||||
|
die("combining --first-parent and --reverse is not supported");
|
||||||
else {
|
else {
|
||||||
final_commit_name = prepare_initial(&sb);
|
final_commit_name = prepare_initial(&sb);
|
||||||
sb.commits.compare = compare_commits_by_reverse_commit_date;
|
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
|
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' '
|
test_expect_success 'blame ancestor' '
|
||||||
check_count -h master A 2 B 2
|
check_count -h master A 2 B 2
|
||||||
'
|
'
|
||||||
|
|
Loading…
Reference in a new issue