git svn克隆或svn2git意外停止

git svn克隆或svn2git意外停止,git,git-svn,Git,Git Svn,我正在尝试使用以下命令从git迁移到svn: git svn clone --stdlayout https://my_sourcecontrol 或者使用git2svn svn2git --notags https://sourcecontrol -v 在迁移过程中,只需执行以下语句即可停止: W: -empty_dir: directory 当我做一个git分支时-a 我看到它已经导入了一些标签和一些分支,它们在不久前被删除了。此外,它还没有导入任何现有分支,只导入了一段时间前删除的分

我正在尝试使用以下命令从git迁移到svn:

git svn clone --stdlayout https://my_sourcecontrol
或者使用git2svn

svn2git --notags https://sourcecontrol -v
在迁移过程中,只需执行以下语句即可停止:

W: -empty_dir: directory
当我做一个git分支时-a

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


有人能解释一下发生了什么吗?

例如,你可以用一个较小的克隆做一点实验,一开始只做一个分支,看看这是否有效

我看到了一个类似的问题:在运行了几分钟之后,git svn fetch(它在git svn clone的引擎盖下运行)

我在您的输出中没有看到任何错误消息,但可能在Windows或其他系统上有所不同。尽管如此,运行git svn fetch应该会继续进行下去。我做了一个小的shell脚本循环来运行fetch,直到它完成为止(您需要cygwin/*nix来运行它):


上述*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)"

我也有类似的问题

在SVN回购的早期,我在顶层使用默认的文件结构,即
trunk/
tags/
文件夹。后来,我切换到带有多个项目的
/trunk
/tags
结构

因此,使用
--stdlayout
开关只会导致较早的代码被迁移(因为
/*
文件被忽略)


使用
-t/tags
-t/trunk
解决了问题。

这可能是SIGPIPE的情况


将git升级到1.8或更高版本。我在1.7版本中遇到了这个错误(因为stable Debian有很旧的软件包),必须从源代码处安装最新的git,即2.1.0。

谢谢,你把脚本放在哪里?我只是把它放在shell中运行,或者放在一个“shebang”脚本中:
$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)"