为什么'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