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

所以转

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

进入
 x--+--+----+--+----+
 \         /
  *----*---*

(如果我能修改x就更好了,但乞丐不能挑剔)

最佳答案

这是我将通过创建一个新的 repo 来处理它的方法,该 repo 将具有您想要使用 Convert Extention 的历史记录:

  • 将源存储库更新为新的“初始提交”(图中的 x)
  • 复制(文件复制,不是克隆!)到目标目录和 hg init 一个新的 repo
  • 使用带有 hg convert 选项的 --splicemap 来表示“从源存储库中的修订版 x 开始并将其应用于目标存储库中的修订版 0”。例如(注意:未经测试!)hg convert --splicemap splicemap.txt .\old-repo .\new-reposplicemap.txt[hash-of-x-in-old-repo] [hash-of-x-in-new-repo]
  • 然后我会压缩源代码库,以防我再次需要它:)
  • 关于mercurial - 压缩存储库中的所有父级?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22382143/

    10-15 00:39