我想知道如何改进diff命令作为hg的一部分。例如,假设我有这段代码:
line 1
line 2
lin3 3
我将其改为:
if($condition) {
line 1
line 2
line 3
}
hg diff将显示带有“ - ”的原始三行和带有“+”的新五行。即使我使用-wbB运行以忽略空格和行更改。我理解它试图告诉我的是什么,但它是不是可以“更聪明”并且意识到我只添加了两行(并增加了三行的等级)?
编辑: 是否有可能让hg diff告诉你添加了什么文字以及在哪里?与代码的“结构”如何因为这些添加而改变相反?
编辑2: 我正在使用Mercurial 1.0.1运行Debian(Linux dev 2.6.26)
由于
答案 0 :(得分:5)
您正在看到这些更改,因为空白更改很重要。如果你hg diff --ignore-space-change
,你会看到更像是:
+ if($condition) {
line 1
line 2
line 3
+ }
听起来像你想要的。您还可以使用ExtDiff Extension来调用@sarnold建议的任何备用差异程序。
另外,请考虑更新Mercurial。你的版本大约有三年了,目前的软件包是为Debian构建的。
答案 1 :(得分:0)
我对类似的东西感兴趣,但我最终使用了DiffMerge(仅限Windows,但你可以在Debian上试用Kdiff3)作为视觉差异来审查这样的变化:
可悲的是,即使您以您喜欢的形式(使用其他工具)生成补丁,在存储库历史记录中也会以标准的mercurial格式显示。