克隆存储库的一部分

时间:2011-03-22 14:23:46

标签: mercurial

是否可以克隆存储库的一个部分(单个文件夹甚至单个文件)?

2 个答案:

答案 0 :(得分:3)

不。这称为部分克隆(一些文件路径但不是全部)或浅层克隆(一些修订但不是全部),并且没有提供,因为DVCS的重点是每个人都拥有完整存储库的完整副本。

一些在线存储库将允许您下载特定版本中的所有文件的.tar.gz文件或特定版本中的特定文件,但这不是使用Mercurial工具完成的。

答案 1 :(得分:3)

基本上不可能,没有像Subversion的svn checkout http://example.com/project/dir1

但是您可以通过使用hg convert重写变更集历史记录来获得部分克隆。从好的方面来说,成为部分克隆。在缺点方面,生成的存储库将不再与初始存储库相关。变更集ID将不同,并且很难继续与源仓库进行交互。

创建部分克隆的示例。假设您只想从repo:

克隆doc目录
$ hg clone http://example.com/project local-project-repo
$ cat > filemap.txt << END
include doc
exclude .
END
$ hg convert --filemap filemap.txt local-project-repo docs-only-repo