我有一个旧的mercurial存储库,用于在某个日期之前进行更改的项目,并且我在同一个项目之后有另一个存储库,其中包含该日期之后的所有更改。
我想合并这两个存储库,因此历史记录反映了后一个存储库中的第一个提交是前一个存储库中最后一次提交的子代。
这可能吗?或者我只需合并两个头?
答案 0 :(得分:0)
在这里阅读:
http://blog.experimentalworks.net/2009/03/merge-vs-rebase-a-deep-dive-into-the-mysteries-of-revision-control/
在这里:
https://www.mercurial-scm.org/wiki/RebaseExtension
我看起来像我想要完成的事情可以通过一个改变来完成,但有一些警告。
我将更改从较新的repo拉到旧的repo中。这导致两个头,因为两个回购只有“'默认'科。在旧的repo文件夹中,我跑了:
hg pull -f ../newer-repo
然后我必须使用hg阶段来使拉动的变化具有可塑性。通常,这是一个坏主意,但由于我知道我是这个项目的唯一开发人员,我可以安全地做到这一点。
hg phase -f -d -r 15 16 ...
最后,我现在可以改变,因为从旧回购中提取的历史记录与旧回购中的最后一个更改列表的状态相同。
hg rebase -s 15 -d 14
我有一个历史,没有冲突。 这可能不适合所有人,但在这种狭隘的环境中,这正是所需要的。