我有两个 Mercurial 存储库,它们用于同一项目的不同主要版本。后一个版本是对项目的功能,尤其是 UI的巨大改变,但它仍然会与早期版本有很多共同的代码。(简而言之,我将这些版本4.6
和5.0
存储库称为project-4.x和project-5.x;这基本上就是我正在处理的内容。)[1]
当我们更仔细地考虑存储库的结构,并特别考虑如何处理相关代码时,很明显我们想简单地将存储库拉到一起,并使用命名分支来进行每个存储库的工作(人们可以从中分支或书签并根据需要合并)。为此,我们决定基本上需要将project-5.x存储库拉入project-4.x存储库。据我所知,组合存储库应该相当简单:
$ hg pull -f project-5.x # in project-4.x
$ hg merge
到目前为止,一切都很好。我关心的是处理分支问题。[2] 这些将作为两个完全不相关的链出现(这很好),但我希望分支结构看起来像这样:
---4.6----- }
\ } original project-4.x
5.0----- }
/
------- } original project-5.x
问题是,我不确定该怎么做。
编辑:见下文;我设计的答案奏效了。
脚注
- 如果您想知道为什么这只是现在才出现……好吧,该项目仅在开始时才获得版本控制
4.6
。是的,这有点疯狂。而且我以前从未负责过像这样的主要版本更改,所以我最初决定完全制作一个新的 repo,我现在当然后悔了。活到老,学到老。 - 我已经阅读过关于这个主题的答案(但这让我不确定如何准确地做到这一点):