我尝试了svn2git来测试从svn到git的迁移,如下所示:
svn2git https://my-svn.net/project/ --username $USERNAME我在安装git的地方执行这个命令。我在/home/myuser/svn2git/中执行此操作。在等待了一段时间后,命令的执行结束:
...
A src/xx
A src/xx
A src/xx
A src/xx我没有看到存储库被下载到我运行此命令的位置。在命令运行正常之后,如果我提交并推送到GIT,我看不到任何提交的东西。我看到.git文件夹正在创建,并且在屏幕上可以看到我所有的历史记录。
谁能告诉我这里有什么地方是错误的?
发布于 2018-02-17 18:04:56
对于一次性迁移,git-svn是,而不是,不是转换存储库或部分存储库的正确工具。如果你想使用Git作为现有SVN服务器的前端,这是一个很棒的工具,但是对于一次性转换,你不应该使用 git-svn,而应该使用svn2git,它更适合这个用例。
有很多叫svn2git的工具,其中最好的可能是https://github.com/svn-all-fast-export/svn2git的KDE。我强烈推荐使用svn2git工具。它是我所知道的最好的,并且它非常灵活,你可以用它的规则文件做什么。
您使用的svn2git工具( nirvdrum工具)是基于git-svn的,它只是试图解决一些怪癖和缺点。因此,svn2git工具具有大多数相同缺点。
你将可以很容易地配置svn2git的规则文件来从你当前的SVN布局中产生你想要的结果,包括可能存在的任何复杂的历史记录,包括从一个SVN repo中产生几个Git repos,或者在一次运行中干净利落地将不同的SVN repos组合到一个Git repo中,如果你喜欢,也可以排除任何你不想迁移的路径或分支或标签,尽管如果有人丢弃了宝贵的代码历史记录,我总是有点哭。
如果您不是100%了解存储库的历史,http://blog.hartwork.org/?p=763的svneverever是一个很好的工具,可以在将其迁移到Git时调查存储库的历史。
尽管git-svn或nirvdrum svn2git更容易入门,但除了它的灵活性之外,还有一些更深层次的原因说明为什么使用svn2git而不是git-svn更好:
svn2git进行配置。使用git-svn,您将丢失历史记录svn2git您还可以轻松地将一个SVN存储库拆分为多个Git存储库svn2git转换速度比使用git-svn快数十亿倍
你看,有很多原因导致git-svn更差,而KDE svn2git更好。:-)
https://stackoverflow.com/questions/48811970
复制相似问题