我删除了我的最后一个问题,因为我想我会问一个更简单的问题:是否有一种方法可以压缩节点的所有父节点(基本上,"假装存储库从这里开始")。
所以转
o---o----o---o----o ....... x--+--+----+--+----+
/ /
o---o---o----o *----*---*
到
x--+--+----+--+----+
/
*----*---*
(如果我能修改x就更好了,但乞丐不能挑肥拣瘦)
我是这样做的:创建一个新的repo,它将具有您想使用的转换扩展的历史:
- 将源代码库更新到新的"初始提交"(图中的
x
) - 复制(文件复制,而不是克隆!)到目标目录和
hg init
一个新的repo - 使用
hg convert
和--splicemap
选项来表示"从源repo中的版本x
开始,并将其应用于目标repo中的版本0"。例:(注:未测试!)hg convert --splicemap splicemap.txt .old-repo .new-repo
和splicemap.txt
[hash-of-x-in-old-repo] [hash-of-x-in-new-repo]
- 我然后压缩源库,以防我再次需要它:)