如何在Windows上从SVN迁移/转换为Mercurial(hg)

Dav*_*Lay 120 svn migration version-control mercurial hgsvn

我正在寻找一种工具来将一些SVN存储库迁移到Mercurial,包括历史记录,标签等.

我正在使用TortoiseHg(Windows x32),因此ConvertExtensions将被丢弃.有关如何在Linux机器上执行此过程的一些信息(hgsvn),但我没有可用的Linux机器.

我可以在Windows上使用这些Python脚本吗?如果是这样,我需要做什么?或者,我可以使用哪些其他工具来完成此过程?

基本上,我如何将SVN项目转换为Mercurial?

Mic*_*oie 92

我不得不自己解决这个问题.我有一个Windows XP机器与一个单独的Windows服务器托管VisualSVN服务器.

我还安装了TortoiseHG以及CollabNet Subversion命令行客户端.

<Enable Convert Extension w/ Tortoise Hg 2>

非常感谢bgever在使用TortoiseHg 2.0的评论中指出,启用转换扩展比以往更容易.正如他所说

使用TortoiseHG 2.0,这变得更加简单:从"开始"菜单启动TortoiseHG Workbench.选择文件 - >设置.从列表中选择Extensions.选中"转换"复选框,然后单击"确定".而已!无需再尝试生成配置文件并在文件系统中搜索它. - bgever 3月11日7:56

</Enable Convert Extension w/ Tortoise Hg 2>

<Enable Convert Extension Manually>

要将存储库从SVN转换为HG,我按照以下步骤操作:

1)打开C:\ Program Files\TortoiseHg\Mercurial.ini

编辑

仅供参考 - Tortoise Hg已将此文件迁移至

  • XP或更早版本 - C:\ Documents and Settings\USERNAME\Mercurial.ini
  • Vista或更高版本 - C:\ Users\USERNAME\Mercurial.ini

该文件大部分都是空的,您只需列出您要覆盖的内容.如果这就是你所拥有的,那么简单地将这两行添加到文件的最后:

[extensions]
convert =
Run Code Online (Sandbox Code Playgroud)

2)搜索以.开头的行

[扩展]

3)在它下面你会看到一个关键字列表,每行注释掉一个分号(;)

4)找到说出的那一行

; convert =

并删除分号,使其读取

转换=

</Enable Convert Extension Manually>

5)打开命令提示符并导航到您希望创建新hg文件夹的目录(该进程将在命令提示符打开的目录中创建名为yoursvnreponame-hg的新文件夹).

6)使用此命令

hg convert file:/// y:/ yoursvnreponame

我发现转换工具可能会遇到网络存储库的问题,所以我不得不将驱动器映射到它,但这对我来说效果很好.

  • 使用TortoiseHG 2.0,这变得更加简单:从"开始"菜单启动TortoiseHG Workbench.选择文件 - >设置.从列表中选择Extensions.选中"转换"复选框,然后单击"确定".而已!无需再尝试生成配置文件并在文件系统中搜索它. (9认同)

小智 8

  1. 在localhost上启动svn服务器
  2. hg convert svn:// localhost/your_repo
  3. 完成,因为svn绑定只需要file://协议


Cha*_*rch 7

Mercurial有一个内置的转换扩展.

  • 我知道,这是我偶然发现的第一件事,但引用:"请注意,你不能用Win32 Mercurial二进制文件做到这一点 - 没有办法将Subversion绑定安装到它的内置Python库中"我正在使用TortoiseHg ...... (2认同)

Sue*_*ueS 5

要将SVN Repo转换为HG Repo并将其复制到其他服务器,您需要做一些事情.

  1. TortoiseHG已安装.(检查当前使用的版本)
  2. Python已安装.(检查当前使用的版本)
  3. Python模块(你可以找到它们http://pysvn.tigris.org/project_downloads.html)
  4. 您需要将convert扩展名添加到Tortoise.从"开始"菜单启动TortoiseHG Workbench.选择File -> Settings.Extensions从列表中选择.选中convert复选框并单击"确定".

首先是转换......

  1. 最好将当前SVN Repo所在的文件夹映射到您正在使用的计算机.(即\\server\folder 不要映射SVN Repo文件夹本身.映射它上面的文件夹)给映射的驱动器一个字母,比如Y:\
  2. 打开命令提示符并键入: CD /D Y:\
  3. Y:\提示符下键入:( hg convert y:/RepoName 使用当前Repo的名称)小心前进和后退斜杠.命令中的一个是正斜杠.此外,如果名称包含空格,请将名称放在引号中.(即Y:/"My Repo folder")
  4. 现在它应该运行并将创建另一个旧文件夹.一个hg文件夹应该在里面.它不会被启动,也不会启动!
  5. 转换完成.

第二个是克隆......

  1. 打开TortoiseHG Workbench.去File -> Clone Repository
  2. 来源:输入转换后的仓库的完整路径.
  3. 目标:输入克隆repo的位置的完整路径.没有必要在新目的地创建文件夹,因为克隆过程将创建它并初始化它.
  4. 将权限添加到新克隆的文件夹.
  5. 你完成了!!!