使用hgsubversion时,重新定义分支,标签和主干的位置

时间:2013-01-11 05:01:10

标签: svn mercurial hgsubversion

我正在尝试使用hgsubversion将一个相当大的Subversion存储库转换为Mercurial。我几乎让它工作,除了没有捕获分支和标签,最终的Mercurial存储库看起来像这样:

Repo
   > Trunk
       > Code
       > Database
       > Documentation

我正在运行的命令是:

hg clone --startrev 5802 --config hgsubversion.authormap=authors.txt --config hgsubversion.defaulthost=me.com file:///C:/Users/me/projects/MyProjectRepo MyProjectRepo-hgsvn5802

我的Subversion存储库实际上是文件系统上的镜像和更新的本地镜像。这样做是因为在直接访问URL时运行hgsubversion或转换速度非常慢。存储库的结构类似于(注意大写的第一个字母)

Repo
   > Branches
   > Tags
   > Trunk
       > Code
       > Database
       > Documentation

关于我可能做错什么的任何想法?大写名称是否导致自动分支检测失败?我可以覆盖hgsubversion查找Trunk,Tags和Branches的位置吗?

2 个答案:

答案 0 :(得分:1)

大写字母肯定是这里的问题。最简单的选择可能是编辑hgsubversion源代码,以便查找大写的名称,但我实际上欢迎使用补丁来使主干/标签/分支名称可配置。

我可以发誓我们有这个功能,但我没有在代码中看到它,所以我可能只记得过去的提案。

答案 1 :(得分:1)

我自己没有尝试过,但hgsubversion documentation描述了一种配置自定义Subversion结构的方法。

  

hgsubversion.layout

     

设置存储库的布局。 标准采用正常的主干/分支/标签布局。 表示整个存储库转换为单个分支。如果服务器上的指定目录中存在任何中继,分支或标记,则默认值 auto 会导致hgsubversion采用标准布局。 自定义会导致hgsubversion读取 hgsubversionbranch 配置部分以确定存储库布局。

另请查看文档的hgsubversionbranch.*hgsubversion.tagpathshgsubversion.branchdir部分。