Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 正在尝试让svn2git在Windows上工作_Ruby_Git_Svn_Git Svn - Fatal编程技术网

Ruby 正在尝试让svn2git在Windows上工作

Ruby 正在尝试让svn2git在Windows上工作,ruby,git,svn,git-svn,Ruby,Git,Svn,Git Svn,我正在将SVN存储库迁移到Git。git svn命令不能正确处理分支和标记,但我偶然发现了一个名为svn2git的工具,它似乎可以解决这个问题(https://github.com/nirvdrum/svn2git) 我曾尝试将此工具设置为在Windows上工作,但没有太大成功 我首先将svn2git安装复制到C:\svn2git并下载Ruby for Windows(http://rubyinstaller.org/)并保存在C:\Ruby193 运行svn2git得到的结果是 /bin/en

我正在将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
<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError) from <internal:gem_prelude>:1:in `<compiled>'
然后我将Ruby的bin和lib文件夹分别复制到svn2git的bin和lib文件夹中

运行svn2git,然后返回

/bin/env: ruby: No such file or directory
<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError) from <internal:gem_prelude>:1:in `<compiled>'
:1:in'require':无法从以下位置加载此类文件--rubygems.rb(LoadError):1:in`'

有人知道如何在Windows环境下工作吗?很明显,
rubygems.rb
丢失了。按照此处的说明进行安装:

然后,按照此处的说明安装
svn2git

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

我建议你试试这个工具。它将Subversion标记转换为标记,并在Windows上运行良好(需要Java 5或更新版本)。SubGit已经可以使用了。您可以在获取最新版本并阅读上的文档

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


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

如果您只想从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存储库

现在,您可能需要添加一个默认远程和推送:


git svn和您的分支机构有什么问题?你有非标准的主干/分支/标记布局吗?@DmitryPavlenko:问题是标记不是作为真正的git标记创建的,而是作为分支创建的。svn2git将svn标记转换为git标记。这与特殊的回购协议布局无关。
rubygems.rb
install链接已断开。@JoeSkeen:谢谢通知;更新链接。感谢您的提及!您应该对此进行编辑,因为它现在可以通过网络访问回购协议。我刚刚使用了subgit+,比使用
git svn clone
(快得多)要高兴得多,虽然我没有尝试过svn2git,但我怀疑它是一种ruby驱动的git svn工具,因此可能对大型回购来说很慢。Dude已经不见了,如果事实已经过时,就按照我在这里所做的编辑吧。