我有一个存储库。在它的生命周期中,我从中删除了许多不必要的文件(我决定让它们保持无版本化)。
hg remove
hg commit
回购越来越大。
我决定摆脱从最初版本到修订版本的旧版本,其中删除了大量文件(让我们将其命名为X)。 我想要的其他单词将这些修订(从初始到X)组合成一个初始修订。
但同时要保留以下修订的历史(X + 1等)。
我用谷歌搜索解决方案,但失败了。
并没有发现比这更聪明的事情:
hg init newrepo
cd oldrepo
hg archive -r X newrepo
hg export -r X+1: -o "~/patches/%R-%h.diff"
cd newrepo
hg commit -A -m 'initial release (after archiving)'
hg import ~/patches/*.diff
该死的,几个成功应用补丁后 我收到了:
Hunk #1 FAILED at xxx
Hunk #2 FAILED at xxx
2 out of 2 hunks FAILED -- saving rejects to file xxx.rej
abort: patch failed to apply
我做错了什么?
我有1个没有分支的仓库(更准确地说是修订版X所有分支都已合并)。
第二个解决方案是 * hg转换为svn * hg从revisiob X + 1转换为mercurial
使用python backtrace失败(可能是因为我们的repo有大约3K文件)。
答案 0 :(得分:1)
要从存储库中过滤掉文件,您希望将hg convert
(Mercurial与Mercurial)与--filemap
参数一起使用(有关详细信息,请参阅文档)。请记住,受影响的变更集ID(及其所有后代的ID)将发生变化。
答案 1 :(得分:0)
查看Collapse扩展程序,它似乎可以执行您想要的操作。
答案 2 :(得分:0)