2013-03-01 99 views
0

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

 

Rev00000 ... Rev90000 ... 

would become: 

[email protected] ... 

+0

Nope ........... – zerkms 2013-03-01 20:15:48

+0

'hg archive' +'hg init' +'hg add' +'hg commit -m“Initial commit”'? – 2013-03-01 20:16:05

+0

@OririBarel:为了正常工作,我们必须确保每个链接指向该回购股权,对吧? – 2013-03-01 20:28:42

回答

2

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

因此,除非您愿意让每个人都删除所有克隆并reclone(实质上是从新快照开始),否则您会被卡住。

1

您可以使用convert扩展名来重写历史记录。要做到这一点,我们假设本地修订版950将成为新存储库中新的本地修订版零。

启用通过添加以下到mercurial.ini文件扩展名:

[extensions] 
convert = 

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

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

所有用户将不得不克隆新的知识库repo.new

+0

怎么有必要先使用splicemap?如果你没有这样做转换,会有什么区别? – DaveInCaz 2016-06-16 19:24:59

+0

@DaveInCaz没必要。我不知道我在想什么。当时必须使用splicemap。有趣的是,需要3年多才能有人注意到。我会更新答案。 – 2016-06-16 20:17:31