4

我将一个颠覆存储库迁移到了 mercurial。svn 存储库包含几个项目,它们位于我本地系统的不同位置。我不知道我应该如何以这种方式工作。看起来,善变的人希望我总是想把整棵树都检查到一个地方。

是否可以只签出特定的子树?

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

4

2 回答 2

2

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

于 2012-07-02T04:18:27.123 回答
0

正如 Mark 所提到的,转换扩展可以完成其 wiki 页面上解释的工作,因此要将存储库“foo”的子目录“subfoo”转换为它自己的存储库,请执行以下操作:

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

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

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

于 2016-04-16T08:22:05.693 回答