(错误)SVN - > Git迁移无效错误

时间:2016-09-15 11:37:03

标签: git svn git-svn svn2git

我正在将SVN项目迁移到Git。 SVN项目在存储库中具有以下结构。

/trunk
/branches
/tags

因为我希望trunk作为主分支,其他分支作为正常的git分支和标签作为git标签。

我跑到命令

下面
 git svn clone --stdlayout <svn-repo-url>

并尝试了

 git svn clone <svn-repo-url> -T trunk -b branches -t tags

对于上述两个命令,我收到以下错误:

fatal: .git\svn\refs\remotes\origin\https;C:\Softwares\Git\index: index file open failed: Invalid argument 
        (in cleanup) update-index -z --index-info: command returned error: 128 
W: +empty_dir: branches/<svn-repo-url>/branches 
fatal: Unable to create '<my-git-working-directory>/.git\svn\refs\remotes\origin\https;C:\Softwares\Git\index.lock': Invalid argument 

如果我在命令下运行

git svn clone --trunk=/trunk --branches=/branches --tags=/tags <svn-repo-url>

我收到以下错误

svn-remote.svn: remote ref '/Users/<user-id>/AppData/Local/Programs/Git/trunk:refs/remotes/origin/trunk' must start with 'refs/'

请帮忙

2 个答案:

答案 0 :(得分:-1)

git-svn 是用于一次性转换存储库的正确工具。如果您想将Git用作现有SVN服务器的前端,这是一个很棒的工具,但对于一次性转换,您应该使用git-svn,但svn2git是更适合这种用例。

有一些称为svn2git的简单工具,最好的工具是来自https://github.com/svn-all-fast-export/svn2git的KDE工具。我强烈建议您使用svn2git工具。这是我所知道的最好的,它可以非常灵活地使用它的规则文件。

如果您不是100%关于存储库的历史记录,那么http://blog.hartwork.org/?p=763中的svneverever是一个很好的工具,用于在将SVN存储库迁移到Git时调查其历史记录。

答案 1 :(得分:-1)

作为我工作的一部分,我已经执行了许多SVN到GIT的迁移,我为它创建了一个包装工具:

https://github.com/tikalk/tikal-alm-tools/tree/master/scm-tools/scm-migration/manual/SVN2GIT

此外,您可以私下咨询我