对于Hg的 addremove 命令,我正在寻找合理的 - 相似默认值。
哪种值适用于所有类型的文件?
哪种值适用于哪种编程语言?
答案 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 3430的release note 2012-06-01和addremove
提及:
addremove
:文档默认相似行为-s100
因此,虽然不是“最佳价值”,但-s100
(相同的,没有编辑的简单动作)正式是默认值。