压缩存储库中的所有父母?

时间:2014-03-13 14:43:39

标签: mercurial

我删除了我的上一个问题,因为我想我会问一个更简单的问题:是否有办法压缩节点的所有父节点(基本上,“假装存储库从这里开始”)。

转过来

 o---o----o---o----o ....... x--+--+----+--+----+
     \    \        /                 \         /
      o---o---o----o                  *----*---*

 x--+--+----+--+----+
 \         /
  *----*---*

(如果我可以修改x,那就更好了,但乞丐不能选择)

1 个答案:

答案 0 :(得分:3)

以下是我如何使用Convert Extention创建一个具有您想要的历史记录的新回购方式来接近它:

  1. 将源代码更新为新的“初始提交”(图中的x
  2. 将(文件副本,而不是克隆!)复制到目标目录,并hg init新的存储库
  3. 使用hg convert--splicemap选项在源代表库中说“从修订版x开始,并将其应用于目标仓库中的修订版0”。例如(注意:未经测试!)
    hg convert --splicemap splicemap.txt .\old-repo .\new-repo
    splicemap.txt[hash-of-x-in-old-repo] [hash-of-x-in-new-repo]
  4. 然后我会压缩源代码库,以防我再次需要它:)