我正在尝试将SVN存储库转换为Mercurial。几百个版本之前,一个分支是从trunk的子目录(而不是整个trunk)制作的。
trunk
* subdir
* ...
branches
* foo (forked from subdir)
* ... (other branches fork from trunk)
tags
* ...
我尝试使用convert扩展转换存储库,但是foo导致了问题。它显示在已转换的存储库中,而不是来自主干的分支,而是来自名为“subdir”的新分支。 subdir分支与trunk相似,对trunk进行的任何更改都在subdir上重复。
以下是转换后存储库的简略视图:
.
.
|
* 202 foo Created foo branch
. |
. * 201 subdir Added XYZ
| |
* . 200 default Added XYZ
| .
. .
. |
. * 4 subdir Fixed DEF
| |
* | 3 default Fixed DEF
| |
| * 2 subdir Added ABC
|
* 1 default Added ABC
而不是:
.
.
. |
. * 101 foo Created foo branch
|/
* 100 default Added XYZ
|
.
.
.
|
* 2 default Fixed DEF
|
* 1 default Added ABC
如何修复存储库(转换前或转换后)以使分支与第二个图匹配?
答案 0 :(得分:0)
您有两项任务:
hg rebase -s 202 -d 200
(根据您的第一张图表,使用哈希或书签/添加/将更好,更防弹)。 “subdir”的孤立变更集将在hg clone -r tip