过滤器文件从diff输出移动和复制

时间:2011-08-22 13:07:00

标签: mercurial diff

我看了很多来自mercurial的diff合并,让我感到恼火的是,移动的文件显示为文件删除+文件添加,通常在diff中的两个不同位置。如果有一种方法可以通过消息“文件从...移动到...”来替换输出,那将是很好的。复制文件也是如此。

我听说git有一个复制检测算法,可以处理文件中的一些变化。

是否有一个mercurial扩展或一个独立的工具,我可以提供我的差异检测这些文件副本?

1 个答案:

答案 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