尝试从hg中提取存储库时出现未知修订错误



我正试图从Mercurial克隆一个repo。我输入了命令:hg pull --rev=2500,它有效。

然而,当我尝试hg pull --rev 3000时,它显示错误:abort:unknown revision '3000'

有人知道怎么解决这个问题吗?

谢谢,詹妮弗。

您只需要删除--revision=number部分。但这里有些奇怪:hg pull用于存储库复制变更集,而不是克隆储存库。

克隆存储库意味着:

  1. 创建一个新的空存储库
  2. 将所有1变更集从其他存储库复制到此存储库

从存储库中提取意味着:

  1. 将所有2变更集从其他存储库中复制到这个存储库中,这些存储库中有,我没有

注意这两者是如何相似但不相同的。克隆操作首先生成一个新的空存储库。步骤2,用另一个存储库中的(所有(变更集填充存储库,与pull操作的步骤1相匹配。通过pull,我们只添加他们拥有的我们没有的变更集,但由于我们的新空存储库是他们拥有的所有变更集都是我们没有的。

这两项操作都涉及调用一些其他(现有(Mercurial存储库。第一个在调用时创建您的存储库;第二个使用您现有的存储库,并进行此调用。请注意,在这两种情况下,这里的另一个存储库都有自己的变更集,这些变更集位于某组分支上,而其他存储库则使用编号对这些变更集进行编号。

既然您已经有了一个存储库,那么您显然只需要hg pull。参见脚注1和脚注2了解--rev=2500的作用。


1有时我们不需要所有的变更集。我们可以只使用一些的变更集来进行有限的克隆。使用-bbranch进行克隆会告诉Mercurial省略获取命名分支上的变更集所不需要的变更集。

2和以前一样,我们可能不需要所有变更集。我们可以告诉另一个Mercurial存储库:例如,给我以数字2500结尾的变更集。你要求它提供数量为3000的变更集,而它在这一点上根本没有那么多变更集。

最新更新