【问题标题】:gitlab highlighting whole line instead of just the characters changed in a long stringgitlab 突出显示整行,而不仅仅是长字符串中更改的字符
【发布时间】:2016-12-29 17:36:36
【问题描述】:

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

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

例如这就是我在 gitlab 8.10 上得到的

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

【问题讨论】:

    标签: git gitlab


    【解决方案1】:

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

    git 本身使用基于行的差异,因此它将始终在内部存储完整的更改行。然而,git 工具也允许以视觉方式突出只有那些改变的部分,例如git diff --word-diff=color

    编辑

    Gitlab 8.10 引入的是更改行中的额外亮点。 IE。完整更改的行将以浅绿色/红色突出显示,而行内的实际更改将以较深的绿色/红色突出显示。 这就是你在图中看到的:

    并在 Gitlab 的发行说明中:

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

    git --word-diff=color 选项(包括gitkMarkup wordsColor words 设置)确实产生较少的高光。比较 Gitlab 的 diff:

    gitk 有相同的差异:

    但是,即使--word-diff=color 也将(顾名思义)仅逐字突出显示。对于您的示例,它只会突出显示两个单词。这是您在gitkColor words 中转载的案例:

    对于命令行工具(例如git diff),实际上有一个选项--color-words=. 可以满足您的需求:

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

    【讨论】:

    • 对不起,我不得不取消选择你的​​答案,因为我刚刚在 8.10 上,但它仍然没有只突出那些更改的内容,除非有一个选项或配置可以打开它,我不知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多