我正尝试使用以下命令从git迁移到svn:
git svn clone --stdlayout https://my_sourcecontrol
或使用git2svn
svn2git --notags https://sourcecontrol -v
在迁移过程中,只需使用以下语句停止:
W: -empty_dir: directory
当我做一个git branch -a
我看到它导入了标签和一些前段时删除的分支。此外,它还没有导入任何现有分支,只导入了前一段时间删除的分支。
任何人都可以了解正在发生的事情吗?
答案 0 :(得分:6)
你可以尝试使用较小的克隆,例如,首先只做一个分支,看看是否有效。
我见过类似的问题:运行几分钟后,git-svn fetch(在git svn clone的引擎下运行)halts with "signal 13"。
我在输出中没有看到任何错误消息,但可能在Windows上有所不同。尽管如此,运行git svn fetch应该从它停止的地方开始。我做了一个小的shell脚本循环来运行fetch直到它完成(你需要cygwin / * nix来运行它):
while ! git svn fetch; do echo "git-svn halted. Restarting...i"; done
答案 1 :(得分:3)
以上* 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)"
答案 2 :(得分:1)
我遇到了类似的问题。
在SVN repo的早期,我使用了顶级trunk/
和tags/
文件夹的默认文件结构。在以后的某个日子里,我切换到了一个包含多个项目的<project name>/trunk
,<project name>/tags
结构。
因此,使用--stdlayout
开关只会导致迁移早期代码(因为<project name>/*
文件被忽略了。)
使用-t <project name>/tags
和-T <project name>/trunk
解决了问题。
答案 3 :(得分:0)
可能是SIGPIPE的情况。
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526989
将git升级到1.8或更高版本。我得到1.7的这个错误(因为稳定的Debian有很旧的包)并且必须从源安装最新的git,即2.1.0。