1

我正在尝试使用 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 或 convert 速度非常慢。存储库的结构是这样的(注意大写的第一个字母)

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

关于我可能做错了什么的任何想法?大写名称是否会导致自动分支检测失败?我可以覆盖 hgsubversion 查找主干、标签和分支的位置吗?

4

2 回答 2

1

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

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

于 2013-01-11T13:34:12.230 回答
1

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

hgsubversion.layout

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

还要检查文档的hgsubversionbranch.*hgsubversion.tagpathshgsubversion.branchdir部分。

于 2013-11-05T17:31:00.733 回答