我看了很多来自mercurial的diff合并,让我感到恼火的是,移动的文件显示为文件删除+文件添加,通常在diff中的两个不同位置。如果有一种方法可以通过消息“文件从...移动到...”来替换输出,那将是很好的。复制文件也是如此。
我听说git有一个复制检测算法,可以处理文件中的一些变化。
是否有一个mercurial扩展或一个独立的工具,我可以提供我的差异检测这些文件副本?
答案 0 :(得分:1)
Mercurial中的复制检测机制有"similarity" parameter for addremove
operation:
[alias]
addremove = addremove --similarity 100
adrs = addremove --similarity 0.01
git(!) extended format可能会帮助您获得所需的输出(illustrated here):
使用
-g
/--git
选项在git扩展diff format中生成差异。
$ mv c b
sjl at ecgtheow in ~/Desktop/test on default!
$ hg addremove --similarity 100
adding b
removing c
recording removal of c as rename to b (100% similar)
sjl at ecgtheow in ~/Desktop/test on default!
$ hg diff
diff --git a/c b/b
rename from c
rename to b