是否必须完全克隆mercurial存储库,还是可以获得子树?

时间:2012-07-02 00:11:19

标签: svn mercurial

我将subversion存储库迁移到mercurial。 svn存储库包含几个位于本地系统上不同位置的项目。我无法弄清楚我应该如何以这种方式工作。似乎mercurial希望我总是想把整个树检查到一个位置。

是否可以仅查看特定的子树?

如果没有,那么我需要以某种方式将我的单个subversion存储库的部分导入到多个mercurial存储库中。我将如何做到这一点(当然不会从颠覆中丢失历史信息)。

2 个答案:

答案 0 :(得分:2)

Mercurial不支持检出子树。 ConvertExtension(包含在Mercurial中)用于转换存储库,还可用于执行过滤,其中可以重新映射或修剪用户,文件和目录。具体请参阅--filemap选项,以包含/排除源存储库中的特定分支。

答案 1 :(得分:0)

如Mark所述,转换扩展可以按照on its wiki page的说明完成工作,因此要将存储库“foo”的子目录“subfoo”转换为自己的存储库,请执行此操作:

echo include subfoo > filemap.txt
echo rename subfoo . >> filemap.txt
hg convert --filemap filemap.txt path/to/foo newsubfoo-repo

另一个可以帮助您进行各种存储库转换的工具是 reposurgeon

还有一个全新的 narrowng 扩展来做这件事,但目前尚不清楚它是否已准备就绪。