考虑以下多模块项目(在单个存储库中):
Module A (i.e. parent)
- Module 1 (various core stuff)
- Module i
- Module 2 (non-core, depends on 1)
- Module ii
- Module iii
(这样设置的原因是它使一些开发人员能够处理单个模块(例如2
及其子代),而其他开发人员可以处理整个代码库(例如{{1和它的孩子们。)
然后我们假设A
已被重新归类为Module ii
,需要移至core
。
我可以通过将Module 1
从Module ii
移到Module 2
来解决这个问题。但是,mercurial会将此视为删除(来自Module 1
)并添加(位于2
),因此我们会在移动前从1
丢失修订历史记录。 (我知道我们实际上不会“丢失”这个,因为它仍然可以在mercurial中使用;但是,它不会随时可以通过新位置的文件访问。)
如何移动文件并使用这些文件移动修订历史记录?
答案 0 :(得分:3)
可以使用hg mv
将这些添加/删除对转换为“重命名”,只要它们保留在同一个存储库中即可。
答案 1 :(得分:1)
信息在那里,不会丢失。您只需要使用 -f, - 跟随标志来获取hg日志。 (这是@freixo在帖子Why 'hg mv' (mercurial) doesn't move a file's history by default?中指出的内容)
答案 2 :(得分:0)
为什么不改变你的〜/ .hgrc(或Mercurial.ini)做xanatos在这里说的话:Why 'hg mv' (mercurial) doesn't move a file's history by default?