git diff有这个功能--color-moved=dimmed-zebra,听起来很漂亮,但我就是不明白。如果发现zebra它非常有用,因为它显示移动的块。但dimmed_zebra对我来说似乎完全武断。为什么“两个相邻块的边界线......被认为很有趣”?此功能如何帮助我更有效地分析差异?如果我了解它的预期目的,我觉得这个功能会很有用。一个具体的例子可能会有所帮助。
这是联机帮助页中的片段。
斑马
贪婪地检测至少 20 个字母数字字符的移动文本块。使用 color.diff.{old,new}Moved 颜色或 color.diff.{old,new}MovedAlternative 绘制检测到的块。两种颜色之间的变化表明检测到新块。
暗斑马
与 zebra 类似,但对移动代码的无趣部分进行了额外调光。两个相邻块的边界线被认为是有趣的,其余的则无趣。
dimmed-zebra当补丁主要由移动或复制的代码组成时,该模式很有用,在复制的代码中间更改了几行。以来自 Git 的特定提交为例(但是,此链接不会显示模式)。
该zebra模式显示有两个单独的移动块:前者和后者,颜色为紫色和蓝色,稍后移动这两个块,并在它们之间插入一条线。这是一个移动的节的示例:
有点难以注意到添加的行;它并不突出。
使用dimmed-zebra,几乎所有移动的代码都是灰色的,因为它最终无趣。唯一以颜色突出显示的内容是第一个块的结尾、第二个块的开头(下一行)以及添加到目标中的行。此模式可让您专注于 (a) 添加的行和 (b) 它们来自何处的边界,而无需关心任何移动的代码。
这是代码在dimmed-zebra模式下的样子。注意你的眼睛是如何被吸引到相关部分的:
所以基本上,这只是对人类视觉的优化,让人们更容易注意到真正重要的东西。
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |