Unexpected underscore in git log --graph output
git, git-log
Solution
From `ack "'_'"` on the Git sources it looks like the underscore is printed in `graph.c`, line 1120, inside the `graph_output_collapsing_line` function:
/*
* Output out a line based on the new mapping info
*/
for (i = 0; i < graph->mapping_size; i++) {
int target = graph->new_mapping[i];
if (target < 0)
strbuf_addch(sb, ' ');
else if (target * 2 == i)
strbuf_write_column(sb, &graph->new_columns[target], '|');
else if (target == horizontal_edge_target &&
i != horizontal_edge - 1) {
/*
* Set the mappings for all but the
* first segment to -1 so that they
* won't continue into the next line.
*/
if (i != (target * 2)+3)
graph->new_mapping[i] = -1;
used_horizontal = 1;
strbuf_write_column(sb, &graph->new_columns[target], '_');
} else {
if (used_horizontal && i < horizontal_edge)
graph->new_mapping[i] = -1;
strbuf_write_column(sb, &graph->new_columns[target], '/');
}
}
But after thinking about it for a while it doesn’t make much sense anyway. The underscore is a symbol for crossing an unrelated branch to the left from the current one, to get to a branch point somewhere further to the left. This can be seen on other places in your screenshot, but this particular underscore really looks lost.
Problem
When running `git log --graph` on my copy of the Linux kernel, I'm seeing an underscore in the graph that doesn't look like it should be there. What does that underscore mean? The specific command I'm using is thus: ``` git log --graph --decorate --pretty=oneline --abbrev-commit --all --date-order ``` And the output looks like this: I've tried looking at this area in the graph in gitk, but there doesn't seem to be anything out of the ordinary there. I don't think this is just showing a branch point, as I'd expect that to be rendered as on the right, not as on the left (the left should match the image above): ``` I see: I'd expect for normal branching: \ \ \ \ \ \ / / / / / / | _ / | / / | / |/ / | | | | | | | | ```