gitlab突出显示整行,而不只是在长字符串

时间:2016-08-23 03:30:39

标签: git gitlab

不确定这是否通常是git thing或gitlab,但我不喜欢它突出显示较深颜色的长连续字符串的相当长的子部分,包括仅更改某些字符时未更改的部分在字符串中。

有没有办法配置gitlab不这样做?即只突出显示那些仅更新的字符

e.g。这就是我在gitlab 8.10

上得到的

enter image description here

我希望它只能点亮't'和'i'之间的'2',并突出显示'm'和'a'之间的'g'

1 个答案:

答案 0 :(得分:3)

此功能是在Gitlab 8.10中引入的(请参阅"内联差异")。

git本身使用基于行的差异,因此它将在内部始终存储完整的更改行。但是,git工具还允许直观地突出显示那些已更改的部分,例如与git diff --word-diff=color

修改

Gitlab 8.10引入的内容是更改行中的其他亮点。即完整更改的线条将以浅绿色/红色突出显示,并且线条内的实际更改将以更深的绿色/红色突出显示。 这就是你在图中看到的:

word based diff 1

并在Gitlab的发行说明图中:

word based diff 2 gitlab

显然,Gitlab突出显示包含任何更改的行的最大部分。它可能不会尝试产生最小的变化,可能是由于性能原因。

git --word-diff=color选项(包括gitk' Markup wordsColor words设置)确实产生的亮点较少。比较Gitlab的差异:

word based diff 3 gitlab

来自gitk的差异:

word based diff 3 gitk

然而,即使是--word-diff=color,顾名思义也只会逐字逐句地突出显示。举个例子,它只会突出显示两个单词。以下是gitkColor words

重现的案例

word based diff 1 gitk

对于命令行工具(例如git diff),实际上有一个选项--color-words=.可以执行您想要的操作:

char based diff 1

然而,据我所知,gitk和Gitlab都不知道这个选项。