为什么'hg mv'(mercurial)默认不移动文件的历史logging?

我知道该怎么做 ,我只是不明白为什么hg mv不会移动文件的历史,以及默认情况下。

hg mv之前,让我运行hg log --follow真的很愚蠢。 当您需要使用两种不同的操作删除和添加文件并以相同的方式丢失历史logging时,这会记住我的时间。

恕我直言,如果我只是使用内置的MV,这将是可以丢失的历史,但我使用hg mv ,并考虑存储库本身,没有任何意义,失去了by default的历史。 应该有一个hg mv --no-follow没有hg mv --no-follow而不是相反。

这不直观。 这里的任何人对此行为有一个合理的解释? 这是错误的devise,还是有一个很好的理由呢? 是否有可能做到这--follow默认情况下,使用--follow hg mv

您可以更改日志的默认行为:在〜/ .hgrc(或某处/ Mercurial.ini)中,添加

 [alias] log = log -f 

我已经阅读了日志的外观是为了速度的原因。 在Mercurial中,移动并不是真正的“一级”操作。 这是一个副本+删除(这与Bazaar相比,移动/重命名是“一级”操作,但没有历史保存副本)。

你不知道该怎么做 hg log --follow影响如何显示日志,而不是实际的移动是如何完成的。 默认情况下显示文件名的历史logging。 --follow关注重命名和复制。 这符合Mercurial如何在内部实施。

hg mv之前没有理由运行hg log --follow

@ xantos的答案现在已经过时了。 更新hgrc文件的正确方法是:

 [alias] log = log -f