Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial &引用;“零”;易变的仓库_Mercurial - Fatal编程技术网

Mercurial &引用;“零”;易变的仓库

Mercurial &引用;“零”;易变的仓库,mercurial,Mercurial,我有mercurial存储库,其中包含数千个变更集。有没有办法说当前变更集的状态是新的“零”、基线、初始提交 Rev00000 ... Rev90000 ... would become: RepoState@Rev90000 ... Rev00000。。。Rev90000。。。 将成为: RepoState@Rev90000 ... 评论者有你的答案,简短的回答是“不”。您可以轻松构建一个新的存储库,其第一次提交是旧存储库中最新的存档/快照,但它将是一个全新的存储库,任何从中提取的人都

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

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


因此,除非你愿意让所有人删除他们的克隆并重新克隆(基本上是从新快照开始),否则你就会陷入困境。

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


因此,除非您愿意让每个人删除所有克隆并重新克隆(基本上是从新快照开始),否则您将陷入困境。

您可以使用
convert
扩展来重写历史记录。为此,假设LocalRevision950是新存储库中的新本地版本零

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

[extensions]
convert =
然后使用修订版950运行convert作为转换的开始:

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

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

您可以使用
convert
扩展来重写历史记录。为此,假设LocalRevision950是新存储库中的新本地版本零

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

[extensions]
convert =
然后使用修订版950运行convert作为转换的开始:

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

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

hg archive
+
hg init
+
hg add
+
hg commit-m“Initial commit”
?@OmriBarel:为了正常工作,我们必须确保删除指向该repo的每个链接,对吗?是的,它正在构建一个全新的存储库。
hg archive
+
hg init
+
hg add
+
hg commit-m“Initial commit”
?@OmriBarel:为了正确工作,我们必须确保删除指向该repo的每个链接,对吗?是的,它正在构建一个全新的存储库。为什么必须先使用地图?如果你运行convert时没有这个,会有什么区别?@DaveInCaz这不是必需的。我不知道我在想什么。当时必须使用拼接贴图。有趣的是,人们花了3年多的时间才注意到。我会更新答案。为什么必须先使用地图?如果你运行convert时没有这个,会有什么区别?@DaveInCaz这不是必需的。我不知道我在想什么。当时必须使用拼接贴图。有趣的是,人们花了3年多的时间才注意到。我会更新答案。