Mercurial:建议使用哪个addremove - 相似性默认值?

时间:2011-09-21 14:21:39

标签: mercurial

对于Hg的 addremove 命令,我正在寻找合理的 - 相似默认值。

哪种值适用于所有类型的文件?

哪种值适用于哪种编程语言?

3 个答案:

答案 0 :(得分:4)

没有一个好的价值。如果有,它将是默认值。语言和文件类型在很大程度上是无关紧要的。重要的是文件的大小与您正在进行的更改的大小有关。

如果您只是在没有编辑的情况下移动文件,那么100就是最好的答案。 Mercurial可能不会犯任何错误,猜测添加和删除实际上是重命名。

如果你在移动它们的同时对大文件进行小的编辑,那么90可能效果很好。除非你有一些非常相似的文件,否则Mercurial可能不会被愚弄。

如果您对小文件进行了大量更改,则可能需要降至50来猜测重命名。但是,Mercurial误认为两个不同但相似的文件的可能性现在非常大。

(为了进行比较,Git默认使用50%的启发式进行差异和合并,但由于它实际上并没有记录历史中的重命名,因此猜测错误的永久性缺点就会减少。)

答案 1 :(得分:2)

通过使用选项--dry-run运行Mercurial,您可以找到适合特定情况的值。 Mercurial不会执行任何操作,但会显示它会做什么。您还可以看到每个文件的相似性,因此您可以在执行实际操作之前调整您的值。

示例:

hg addremove --similarity 50 --dry-run
...
recording removal of ../contact_form/views.py as rename to contact_form/views.py (98% similar)

答案 2 :(得分:2)

请注意bug 3430release note 2012-06-01addremove提及:

  

addremove:文档默认相似行为-s100

因此,虽然不是“最佳价值”,但-s100(相同的,没有编辑的简单动作)正式是默认值。