0

我有一个包含数千个变更集的 mercurial 存储库。有没有办法说当前变更集的状态是新的“零”、基线、初始提交?

Rev00000 ... Rev90000 ...

会成为:

RepoState@Rev90000 ...

4

2 回答 2

2

评论者有你的答案,简短的回答是“不”。您可以轻松构建一个新存储库,其第一次提交是旧存储库的最新存档/快照,但它将是一个全新的存储库,任何从中拉取的人都会“不相关”,如果他们使用“--force”他们将拥有所有旧的和所有的新的。同样,如果他们用“--force”推动它,它只会再次填满旧的东西。

所以,除非你愿意让每个人都删除他们所有的克隆并重新克隆(基本上是用新的快照重新开始),否则你会被卡住。

于 2013-03-02T01:20:51.830 回答
1

您可以使用convert扩展来重写历史。为此,我们假设本地修订版 950 是新存储库中的新本地修订版 0。

通过将以下内容添加到mercurial.ini文件来启用扩展:

[extensions]
convert =

然后使用修订版 950 作为转换的开始运行转换:

hg convert --config convert.hg.startrev=950 c:\repo c:\repo.new

然后所有用户都必须克隆新的存储库repo.new

于 2013-03-02T05:19:37.820 回答