git svn克隆或svn2git意外停止
我正在尝试使用以下命令从git迁移到svn: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 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)"