2010-09-17 80 views
5

我想从git的迁移与下面的命令的svn:混帐svn的克隆或svn2git意外停止

git svn clone --stdlayout https://my_sourcecontrol 

或git2svn

svn2git --notags https://sourcecontrol -v 

在迁移过程中,它只是停止下面的语句:

W: -empty_dir: directory 

当我做一个git分支-a

我看到它已经导入了标签和一些前一段时间被删除的分支。此外,它还没有导入任何现有的分支,只有前一次被删除的分支。

任何人都可以阐明发生了什么吗?

回答

6

你可以用一个较小的克隆来试验一下,例如,最初只做一个分支来看看它是否有效。

我见过类似的问题:运行了几分钟后,git-svn fetch(它在git svn clone的引擎下运行)halts with "signal 13"

我在您的输出中看不到任何错误消息,但也许它在Windows上有所不同。尽管如此,运行git svn fetch应该从中断的地方继续。我做了一个小shell脚本循环运行获取直到它完成(你需要Cygwin的/ * nix中运行此):

while ! git svn fetch; do echo "git-svn halted. Restarting...i"; done 
+0

谢谢,你在哪里放置脚本? – dagda1 2010-09-29 07:15:01

+0

我只是在shell中运行它,或者将它放在“shebang”脚本中:http://en.wikipedia.org/wiki/Shebang_(Unix) – 2010-09-29 12:52:13

2

这上面的* nix脚本的PowerShell的版本为我工作:

$i = 1 
do 
{ 
    git svn fetch 
    if(!$?) 
    { 
     Write-Host "git-svn halted. Restarting... $i++" 
    } 
    else 
    { 
     Write-Host "git-svn completed successfully" 
    } 
} 
while(!$?) 
Write-Host "git-svn fetch required $i iteration(s)" 
1

我有类似的问题。

在SVN回购的早期,我在顶层使用了trunk/tags/文件夹的默认文件结构。在以后的日子里,我切换到一个<project name>/trunk,<project name>/tags结构与多个项目。

因此,使用--stdlayout开关只会导致先前的代码被迁移(因为<project name>/*文件被忽略)。

使用-t <project name>/tags-T <project name>/trunk解决了这个问题。