我使用下面的命令将SVN迁移到Git:
git svn clone --stdlayout //url
我得到以下错误:
fatal: Unable to create 'C:/Users/.git/svn/refs/remotes/origin/Fortify Issues Fix and Clean up./index.lock': No such file or directory
write-tree: command returned error: 128
我尝试手动创建Fortify
文件夹,但它不工作,并尝试创建./index.lock
文件和删除仍然我面临着同样的问题。
1条答案
按热度按时间cbeh67ev1#
git-svn
不是一次性转换仓库或仓库部件的合适工具。如果你想使用Git作为现有SVN服务器的前端,它是一个很好的工具,但是对于一次性转换,你应该不使用git-svn
,而使用svn2git
,svn2git
更适合这个用例。有很多名为
svn2git
的工具,最好的可能是https://github.com/svn-all-fast-export/svn2git的KDE工具。我强烈推荐使用svn2git
工具。这是我所知道的最好的工具,它在规则文件上非常灵活。您将能够轻松地设置规则文件,以便准确地迁移您的分支及其历史。
如果你不是100%了解仓库的历史,
svneverever
from http://blog.hartwork.org/?p=763是一个很好的工具,可以在将SVN仓库迁移到Git时调查仓库的历史。尽管git-svn更容易上手,但除了灵活性之外,还有一些其他原因可以解释为什么使用KDE
svn2git
而不是git-svn
更上级:svn2git
(如果使用正确的)可以更好更清晰地重建历史,对于具有分支和合并等的更复杂的历史尤其如此git-svn
,标签包含一个额外的空提交,这也使得它们不是分支的一部分,所以普通的fetch
不会获取它们,直到你给予--tags
命令,因为默认情况下,只有指向被获取的分支的标签才会被获取。svn2git
配置它,用git-svn
你最终会丢失历史记录svn2git
,您还可以轻松地将一个SVN仓库拆分为多个Git仓库svn2git
进行转换的速度要比使用git-svn
快无数倍git-svn
更差而KDEsvn2git
更上级的原因有很多。我建议您使用
svn2git
工具也会遇到同样的问题,Git分支名称中不允许有空格,但您可以通过以下名称替换轻松解决此问题:用下划线替换空格。
因此,作为标准布局的完全匹配规则,例如,这可能看起来像