【发布时间】:2020-02-18 20:54:48
【问题描述】:
我正在尝试从 Mercurial 克隆一个 repo。我输入了命令:hg pull --rev=2500,它可以工作。
但是,当我尝试hg pull --rev 3000 时,它显示错误:abort:unknown revision '3000'!
有人知道如何解决这个问题吗?
谢谢, 詹妮弗。
【问题讨论】:
标签: mercurial repository pull
我正在尝试从 Mercurial 克隆一个 repo。我输入了命令:hg pull --rev=2500,它可以工作。
但是,当我尝试hg pull --rev 3000 时,它显示错误:abort:unknown revision '3000'!
有人知道如何解决这个问题吗?
谢谢, 詹妮弗。
【问题讨论】:
标签: mercurial repository pull
您只需删除--revision=<em>number</em> 部分。但这里有些奇怪:hg pull 用于从存储库复制变更集,而不是用于克隆存储库。
克隆存储库意味着:
从存储库中提取意味着:
请注意这两者是如何相似但不相同的。克隆操作首先创建一个新的空存储库。第 2 步,用来自其他存储库的(所有)变更集填充存储库,匹配 pull 操作的第 1 步。通过拉取,我们只添加我们没有的变更集,但由于我们新的空存储库是 empty,因此它们拥有的 all 变更集是我们没有的不。
这两个操作都涉及调用一些其他(现有)Mercurial 存储库。第一个在进行此调用时创建您的存储库;第二个使用您现有的存储库,并进行此调用。请注意,在这两种情况下,此处的其他存储库都有自己的变更集,它们位于某些分支集上,并且其他存储库使用 its 编号对这些变更集进行编号。
由于您已经有一个存储库,您显然只是想要hg pull。请参阅脚注 1 和脚注 2,了解 --rev=2500 正在做什么。
1有时我们不需要所有的变更集。我们可以只使用 一些 的变更集进行有限的克隆。使用-b <em>branch</em> 进行克隆告诉 Mercurial 忽略获取指定分支上的变更集不需要的变更集。
2和以前一样,我们可能不需要所有 个变更集。我们可以告诉另一个 Mercurial 存储库:例如,给我你的变更集以你的数字 2500 结尾。您要求它提供最多 3000 个的变更集,而此时它根本没有那么多变更集。
【讨论】:
-r 方法,您只需选择小于 3000 的数字. 我们不知道有多小:我们知道它大于或等于 2500 且小于 3000,但剩下 500 个可能的值。在这一点上,也许您可以忽略它:hg pull 操作会发现您已经拥有前 2500 个变更集,并且不会再次将它们带过来。