在我的Linux内核副本上运行git log --graph
时,我看到图中的下划线看起来不应该存在。
该下划线是什么意思?
我正在使用的具体命令是:
git log --graph --decorate --pretty=oneline --abbrev-commit --all --date-order
输出如下:
我已经尝试在gitk中查看图中的这个区域,但似乎没有任何与众不同的东西。
我不认为这只是显示一个分支点,因为我希望它会在右边呈现,而不是在左边(左边应该与上面的图像匹配) ):
I see: I'd expect for
normal branching:
\ \ \ \ \ \
/ / / / / /
| _ / | / /
| / |/ /
| | | |
| | | |
答案 0 :(得分:3)
对我来说,这似乎是一个渲染人工制品。最有可能的是,控制台输出有一些逻辑来阻止这样的事情
/ /
| /
发生,因为此代码段不会准确显示分支操作发生在哪个位置。因此,设计师可能选择了
/ /
| _
代替。
但我可能在这里错了,似乎应该在代码中检查出来。
答案 1 :(得分:3)
来自Git来源的ack "'_'"
,graph_output_collapsing_line
函数内的graph.c
, line 1120打印下划线似乎:
/*
* 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], '/');
}
}
但是在考虑了一段时间后,无论如何都没有多大意义。下划线是一个符号,用于从当前分支向左穿过不相关的分支,到达左边某个分支点。这可以在屏幕截图中的其他位置看到,但这个特殊的下划线看起来真的很丢失。
答案 2 :(得分:0)