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…
Reference in New Issue
Block a user