使用没有主干标签和分支的 SVN 存储库从 SVN 迁移到 Git
Posted
技术标签:
【中文标题】使用没有主干标签和分支的 SVN 存储库从 SVN 迁移到 Git【英文标题】:Migrating from SVN to Git with SVN repository having no trunk tags, and branches 【发布时间】:2017-04-08 06:52:30 【问题描述】:我正在尝试将我的 SVN 存储库迁移到 Git,以保持所有历史记录完好无损。我的 SVN 存储库具有非标准布局,项目文件直接位于存储库根目录下。没有标签和分支。
我首先使用git svn clone
来迁移repo。命令成功完成,但是当我执行git branch -r
时,我什么也没得到。
接下来我使用了svn2git
。我首先尝试将它与--rootistrunk
选项一起使用,但命令没有运行,我在控制台中看不到任何内容。我在某处读到--rootistrunk
有一些问题可以使用
svn2git <svn-url> trunk / --no-minimize-url --verbose
。该命令运行但最后失败并显示错误消息:
svn2git 错误:pathspec 'master' 不匹配任何已知的文件 混帐。命令失败:git checkout -f master。
谁能建议我如何解决这个问题?
【问题讨论】:
【参考方案1】:对于非标准 SVN 布局,请尝试 subgit import
SubGit 比git svn
更健壮(并且有免费版本,可以一次性导入 dvn 到 Git)
【讨论】:
谢谢 VonC 我会试试的。与此同时,我还遇到了另一个问题。我正在尝试对一个非常大的 SVN 存储库进行 git svn 克隆。我使用 git svn clone 完成了早期的迁移,并保留了完整的分支、标签和历史记录,并且一切顺利。但是这一次脚本运行了一段时间后抛出了一个错误:libsvn: Out of memory - terminating application.18 [main] perl 13884 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump如果有人遇到过类似的错误我将不胜感激任何建议。 @Anshul Strange:在这种情况下最好问一个新问题。以上是关于使用没有主干标签和分支的 SVN 存储库从 SVN 迁移到 Git的主要内容,如果未能解决你的问题,请参考以下文章
将特定的 SVN 分支迁移到 GIT(2018 年迁移的主干)