我正在尝试使用git svn
使用以下命令从Subversion到Git迁移大型subversion存储库的单向操作(仅在迁移后使用Git将使用GORT):
git svn clone --no-minimize-url --trunk=/trunk/GBI --branches=/branches/GBI --tags=/tags/GBI --authors-file=authors.txt https://yyy/svn-repos/zzz/ GBI
运行几个小时后,克隆进程崩溃并出现以下错误:
r79791 = 00349b8063f90447ea8a040751cd2a40e74b74f3 (refs/remotes/origin/trunk)
Error from SVN, (175009): Malformed network data: The XML response contains invalid XML: Malformed XML: no element found
然后我想也许有一种聪明的方法可以在违规修订之后立即恢复这个过程......这可能吗?
首先是什么原因造成了这个错误?
The answer to this question建议使用--log-window-size
来防止此问题首先发生...我可以添加该选项并从失败的修订版重试吗?是这个问题然后git svn
内存使用问题或仅与损坏的颠覆修订版连接的问题?
是否有git svn option来强制进程忽略错误,而不仅仅是因为此错误而停止冗长的进程?
更新:我在Atlassian Stash Migrating to Git guide之后到达此点,表示正在使用git svn
及其svn-migration-scripts.jar
实施
答案 0 :(得分:0)
我最近有
Error from SVN, (175009): Malformed network data: The XML response contains invalid XML: Malformed XML: unclosed token
几乎相同,并且在注释中由Mykola Gurov提到的由git clone创建的存储库文件夹中执行git svn fetch
,并在发生错误的修订版本上继续执行并一直运行到上一个SVN版本
答案 1 :(得分:-2)
svn2git
不是用于存储库或存储库部件的一次性转换的正确工具。如果您想将Git用作现有SVN服务器的前端,这是一个很棒的工具,但对于一次性转换,您应该不使用svn2git
,但svn2git
是更适合这种用例。
有一些称为svneverever
的简单工具,最好的工具是来自https://github.com/svn-all-fast-export/svn2git的KDE工具。我强烈建议您使用svn2git
工具。这是我所知道的最好的,它可以非常灵活地使用它的规则文件。
如果您不是100%关于存储库的历史记录,那么http://blog.hartwork.org/?p=763中的git-svn
是一个很好的工具,用于在将SVN存储库迁移到Git时调查其历史记录。
尽管git-svn更容易入手,但除了灵活性之外,以下是使用KDE svn2git
代替git-svn
优于其他原因的一些原因:
fetch
重建得更好更清洁(如果使用了正确的历史记录),对于更复杂的分支和合并历史记录来说尤其如此,等等--tags
标记包含一个额外的空提交,这也使它们不属于分支,因此正常svn2git
将不会获得它们,直到您将git-svn
作为命令提供给默认情况下,仅提取指向已获取分支的标记。正确的svn2git标签是他们所属的地方svn2git
轻松配置,svn2git
最终会丢失历史记录git-svn
您还可以轻松地将一个SVN存储库拆分为多个Git存储库git-svn
比使用svn2git
INSERT INTO #SCRPTS
SELECT getdate(),
'INSERT WKF_TpProcesso VALUES (''' + Des_TpProcesso + ''',' + cast(Cod_Func as Varchar(8)) + ',getdate() ,null ,1 ,' + CASE WHEN Id_Sistema IS NULL THEN 'Null' ELSE CAST(Id_Sistema as Varchar(6)) END
+',0,1,0,'+ CASE WHEN Des_CodigoTpProcesso IS NULL THEN 'Null' ELSE '''' + Des_CodigoTpProcesso END +''''+ ','+CAST(Flg_ProxProcesso as Varchar(1))''')'
FROM WKF_TpProcesso
WHERE Des_CodigoTpProcesso = @Des_CodigoTpProcesso
更糟糕且KDE INSERT WKF_TpProcesso VALUES ('Processo Teste',41815,getdate() ,null ,1 ,169,0,1,0, 'PcTestPlus',1)
优越的原因有很多。 : - )