Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/18.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存储库?基本上,您不能。Mercurial有一条严格的规则,即只有在每个祖先变更集都存在于存储库中时,变更集才能存在于该存储库中 但是,您可以创建一个新的存储库,其变更集对应于另一个存储库中稍后的变更集的子集。然而,它们不会是相同的变更集,因为它们将具有不同的散列节点ID,并且来自原始repo的任何克隆都不会与新的变更集(“无关存储库”)一起工作 您可以尝试使用以下流程创建一个新的回购协议,该协议仅反映另一个回购协议中的一些较新变更集: hg -R

如何通过删除旧的变更集来缩小mercurial存储库?

基本上,您不能。Mercurial有一条严格的规则,即只有在每个祖先变更集都存在于存储库中时,变更集才能存在于该存储库中

但是,您可以创建一个新的存储库,其变更集对应于另一个存储库中稍后的变更集的子集。然而,它们不会是相同的变更集,因为它们将具有不同的散列节点ID,并且来自原始repo的任何克隆都不会与新的变更集(“无关存储库”)一起工作

您可以尝试使用以下流程创建一个新的回购协议,该协议仅反映另一个回购协议中的一些较新变更集:

hg -R /path/to/bigrepo export 10:tip > latestchanges.patch
hg init newsmallrepo
hg -R newsmallrepo import < latestchanges.patch
hg-R/path/to/bigrepo导出10:tip>latestchanges.patch
hg init新闻购物中心
hg-R newsmallrepo导入

这将仅将编号为10及更高的变更集复制到新存储库中具有不同哈希的新变更集中。它也不能很好地用于合并。

请参阅
convert
扩展(Mercurial附带)。下面是一个简单的例子:

hg convert <src> <dest> --config convert.hg.startrev=<rev>

运行
hg help convert
获取选项。

这就是解决方案。我已查找此命令,但未找到。谢谢Ryan!在Windows下,在
C:\Users\\mercurial.ini
中添加/创建所有内容都不起作用,但调整现有的
C:\Users\\.hgrc
文件起到了作用:-)(HG2.7.1)我使用Windows和mercurial.ini。两者都会起作用。看见
[extensions]
convert =