Mercurial中不区分大小写的差异

mwo*_*e02 7 diff mercurial tortoisehg

我正在使用Mercurial(特别是Windows上的TortoiseHg)来进行VBA代码的版本控制.任何试过这个的人都知道,只要在项目的任何地方(无论范围如何)改变了该变量的声明,VBA就会改变整个项目中每个变量的大小写.它使版本控制成为一场噩梦.

我想在执行差异时忽略源代码中的大小写更改.最简单的方法是什么?(我错过的差异的一些选项,外部差异实用程序,还有什么?)

注意:我不是在谈论处理'不区分大小写的文件名'(是的,我正在和你谈论谷歌...)

Ry4*_*ase 7

您可以使用ExtDiff Extension为屏幕消耗进行差异化时执行此操作.

  [extensions]
  hgext.extdiff =

  [extdiff]
  # add new command that runs GNU diff(1) in case-insensitive mode
  cmd.mydiff = diff
  opts.mydiff = -i
Run Code Online (Sandbox Code Playgroud)

然后你从命令行运行hg mydiff.当然,这需要你安装diff二进制文件,无论是gnu还是其他.

然而,这并不像你想要的那样有用,因为在内部,当然,Mercurial不能忽略大小写 - 它正在采用文件内容的加密哈希,而那些不允许摆动空间.因此,如果你设置了这个,你就会做hg mydiff,并且看不到任何变化,然后hg commit在整个地方看到变化.

所以你可以在屏幕上进行这项工作,但不是从根本上.

一种选择是找到一个可视化的基本代码清理器,类似于类indentC语言,它可以规范化变量case并在mercurial commit hook中运行它.那么至少所有进入源代码控制的代码都是一致的,你可以准确地区分修订.