1

考虑以下多模块项目(在单个存储库中):

Module A (i.e. parent)
  - Module 1 (various core stuff)
    - Module i
  - Module 2 (non-core, depends on 1)
    - Module ii
    - Module iii

(这样设置的原因是它使一些开发人员可以只处理单个模块(例如2及其子模块),而其他开发人员可以处理整个代码库(例如A及其子模块)。

然后让我们假设它Module ii已被重新分类为core,并且需要移入Module 1

我可以通过Module iiModule 2to移动来处理这个问题Module 1。但是,mercurial 将其视为删除 (from 2) 和 add (in 1),因此我们会丢失ii移动之前的修订历史记录。(我知道我们实际上不会“丢失”它,因为它仍然可以在 mercurial 中使用;但是,在新位置的文件中不容易访问它)。

如何移动文件并让 mercurial 使用这些文件移动修订历史记录?

4

3 回答 3

3

hg mv只要它们保留在同一个存储库中,就可以使用 将这些添加/删除对转换为“重命名” 。

于 2011-11-29T19:11:17.237 回答
1

信息在那里并且不会丢失。您只需对 hg 日志使用-f,--follow标志。(这就是@freixo 在帖子中指出的为什么'hg mv'(mercurial)默认不移动文件的历史记录?

于 2014-05-19T14:58:21.090 回答
0

你为什么不改变你的 ~/.hgrc (或 Mercurial.ini) 做 xanatos 在这里所说的:Why 'hg mv' (mercurial) doesn't move a file's history by default?

于 2014-02-10T16:55:25.250 回答