mirror of
https://github.com/git/git.git
synced 2025-03-19 23:48:46 +00:00
graph: output padding for merge subsequent parents
When showing merges in git-log, the same commit is shown once for each parent. Combined with "--graph" this results in graph_show_commit() being called once for each parent without graph_update() being called. Currently graph_show_commit() does not print anything on subsequent invocations for the same commit (this was changed by commit 656197a - "graph.c: infinite loop in git whatchanged --graph -m" from the previous behaviour of looping infinitely). Change this so that if the graph code believes it has already shown the commit it prints a single padding line. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
42f50f8d01
commit
a48ec24158
10
graph.c
10
graph.c
@ -1227,6 +1227,16 @@ void graph_show_commit(struct git_graph *graph)
|
||||
if (!graph)
|
||||
return;
|
||||
|
||||
/*
|
||||
* When showing a diff of a merge against each of its parents, we
|
||||
* are called once for each parent without graph_update having been
|
||||
* called. In this case, simply output a single padding line.
|
||||
*/
|
||||
if (graph_is_commit_finished(graph)) {
|
||||
graph_show_padding(graph);
|
||||
shown_commit_line = 1;
|
||||
}
|
||||
|
||||
while (!shown_commit_line && !graph_is_commit_finished(graph)) {
|
||||
shown_commit_line = graph_next_line(graph, &msgbuf);
|
||||
fwrite(msgbuf.buf, sizeof(char), msgbuf.len, stdout);
|
||||
|
Loading…
x
Reference in New Issue
Block a user