【问题标题】:diff to detect only case changesdiff 仅检测大小写变化
【发布时间】:2020-05-16 09:26:26
【问题描述】:

有没有一种简单的方法来区分文件的两个版本,只显示那些因更改为大写/小写而不同的行/单词?应省略所有其他差异。

背景:我有一个版本控制 (git) 下的 VBA 项目,每次声明新变量时,Microsoft 的编辑器都会倾向于change casing。我想识别(并可能计算)此类更改,以防止它们被提交。

【问题讨论】:

  • 如果一个新行引用了一个改变大小写的变量怎么办?
  • @LasseV.Karlsen 这种情况不需要被diff识别。
  • 我猜写这样一个 difftool 可能不会太复杂。我不知道有任何已经建成的可以做到这一点。
  • 我看看能不能给你弄个小工具。如果可以的话,我会把它放在 github 上,这样你就可以下载代码并根据你的要求进行调整。
  • 这里有一个小工具你可以试试——github.com/lassevk/CaseDiff

标签: version-control diff git-diff


【解决方案1】:

根据from this answer 的建议,我使用基本的 Linux 脚本工具完成了如下操作:

GIT_EXTERNAL_DIFF='diff -p -U 0 "$2" "$5" | cat #' git diff --ext-diff >  cdiff
GIT_EXTERNAL_DIFF='diff -ip -U 0 "$2" "$5" | cat #' git diff --ext-diff > idiff

diff idiff cdiff | grep '^> [+-] ' 

代码首先创建一个区分大小写的 diff cdiff,其次是一个不区分大小写的 diff idiff。仅区分大小写的更改包括 cdiff 中未包含在 idiff 中的行。

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2018-01-03
    相关资源
    最近更新 更多