是否可以从Mercurial(HG)存储库中签出单个目录?

时间:2010-02-24 17:40:07

标签: mercurial version-control

所以,我正在尝试从Netbeans contrib存储库中检出只是 TestNG插件。 (或者它是模块吗?我是Mercurial的新手,所以我还不太了解这个术语。)

当我运行以下命令时......

hg clone http://hg.netbeans.org/main/contrib/

...我得到了整个存储库,其中包含所有的contrib插件。是否可以拉这个位置?

  

http://hg.netbeans.org/main/contrib/file/tip/testng/

谢谢!

2 个答案:

答案 0 :(得分:9)

这个概念被称为“狭义克隆”,不,目前在Mercurial中不可能。

我们中的一些人对Mercurial有所贡献,但这是一个难以解决的问题。例如:

  • 如果您没有回购邮件中的所有文件,您如何计算您所做的任何新提交的哈希?
  • 如果您尝试在contrib/testng中查看文件的历史记录,如果该文件是从其他文件夹中移出的,会发生什么?

答案 1 :(得分:0)

我不确定,但我认为一般情况下的答案“可能不是”。

如果存储库是本地的(听起来不像你的情况),你可以这样做:

hg archive -R /path/to/my/repo -I /path/to/my/repo/folder/i/want export-folder-name

(该命令需要是导出非VC'd文件的东西,而不是创建部分repo,因为.hg内容在顶层存储一次,而不是在每个文件夹中存储为SVN确实。)

但它不适用于远程存储库。 “hg log”和hg人员explained why

也没有
想象一下我发送一个log -p命令到http://www.kernel.org/hg/linux-2.6,这是 接近100k变更集。每秒一个差异(很多寻求),这将 在服务器上花费大约3个小时的CPU /磁盘时间,从未计算公吨数 带宽。对于每个人来说克隆回购都会更快更简单 并在本地执行日志。

我怀疑hg archive出于同样的原因无法远程工作。