18

我正在将 SVN 存储库迁移到 Git。git-svn 命令不能正确处理分支和标签,但我偶然发现了一个名为 svn2git 的工具,它似乎可以解决这个问题(https://github.com/nirvdrum/svn2git)。

我已经尝试设置这个工具在 Windows 上工作,但我没有取得太大的成功。

我首先将 svn2git 安装复制到 C:\svn2git 并下载 Ruby for Windows (http://rubyinstaller.org/) 并将其保存在 C:\Ruby193。

运行 svn2git 回来了

/bin/env: ruby: No such file or directory

然后我将 Ruby 的 bin 和 lib 文件夹分别复制到 svn2git 的 bin 和 lib 文件夹。

运行 svn2git 然后返回

<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError) from <internal:gem_prelude>:1:in `<compiled>'

有谁知道如何让它在 Windows 环境下工作?谢谢

4

3 回答 3

12

很明显,rubygems.rb失踪了。按照此处记录的方式安装它:
https ://rubygems.org/pages/download

然后,svn2git按照此处的说明安装:
https ://github.com/nirvdrum/svn2git

在那之后,一切都会好起来的。

于 2012-05-23T12:54:52.550 回答
8

我建议你试试SubGit工具。它确实将 Subversion 标签翻译为标签,并且在 Windows 上运行良好(需要 Java 5 或更高版本)。SubGit 可以使用了。您可以在下载页面获得最新版本并阅读网站上的文档。

最初在 2012 年,早期的 SubGit 版本需要本地访问 Subversion 存储库(通过文件系统),但后来(到 2015 年)添加了对 subversion 的网络访问。

免责声明:我是 SubGit 开发人员。

于 2012-05-23T14:55:34.247 回答
0

如果您只想从 SVN 迁移主干及其提交历史,您可以使用以下 git 命令轻松完成:

git svn init --prefix=svn/ --no-metadata --trunk=http://[svnHostName]/svn/[projectTrunkUrl] --no-minimize-url
git svn fetch --log-window-size=4000

太棒了!您已经使用所有 SVN 主干存储库历史初始化了本地 git 存储库!

现在您可能想要添加一个默认遥控器并推送:

https://help.github.com/en/articles/adding-a-remote

https://help.github.com/en/articles/pushing-to-a-remote

于 2019-06-10T08:23:27.290 回答