我正试图从Mercurial克隆一个repo。我输入了命令:hg pull --rev=2500
,它有效。
然而,当我尝试hg pull --rev 3000
时,它显示错误:abort:unknown revision '3000'
!
有人知道怎么解决这个问题吗?
谢谢,詹妮弗。
您只需要删除--revision=number
部分。但这里有些奇怪:hg pull
用于从存储库复制变更集,而不是克隆储存库。
克隆存储库意味着:
- 创建一个新的空存储库
- 将所有1变更集从其他存储库复制到此存储库
从存储库中提取意味着:
- 将所有2变更集从其他存储库中复制到这个存储库中,这些存储库中有,我没有
注意这两者是如何相似但不相同的。克隆操作首先生成一个新的空存储库。步骤2,用另一个存储库中的(所有(变更集填充存储库,与pull操作的步骤1相匹配。通过pull,我们只添加他们拥有的我们没有的变更集,但由于我们的新空存储库是空,他们拥有的所有变更集都是我们没有的。
这两项操作都涉及调用一些其他(现有(Mercurial存储库。第一个在调用时创建您的存储库;第二个使用您现有的存储库,并进行此调用。请注意,在这两种情况下,这里的另一个存储库都有自己的变更集,这些变更集位于某组分支上,而其他存储库则使用的编号对这些变更集进行编号。
既然您已经有了一个存储库,那么您显然只需要hg pull
。参见脚注1和脚注2了解--rev=2500
的作用。
1有时我们不需要所有的变更集。我们可以只使用一些的变更集来进行有限的克隆。使用-bbranch
进行克隆会告诉Mercurial省略获取命名分支上的变更集所不需要的变更集。
2和以前一样,我们可能不需要所有变更集。我们可以告诉另一个Mercurial存储库:例如,给我以数字2500结尾的变更集。你要求它提供数量为3000的变更集,而它在这一点上根本没有那么多变更集。