git-svn clone или svn2git неожиданно останавливается - PullRequest
6 голосов
/ 17 сентября 2010

Я пытаюсь перейти с git на svn с помощью следующей команды:

git svn clone --stdlayout https://my_sourcecontrol

или с помощью git2svn

svn2git --notags https://sourcecontrol -v

Во время миграции он просто останавливается с помощью следующего оператора:

W: -empty_dir: directory

Когда я делаю ветку git -a

, я вижу, что она импортировала теги и несколько веток, которые были удалены некоторое время назад.Кроме того, он не импортировал ни одну из существующих веток, а только те, которые были удалены некоторое время назад.

Может кто-нибудь пролить свет на происходящее?

Ответы [ 4 ]

6 голосов
/ 28 сентября 2010

Вы можете немного поэкспериментировать с меньшим клоном, выполнив сначала только одну ветку, чтобы посмотреть, работает ли это, например.

Я видел похожую проблему: после запуска в течение нескольких минут,git-svn fetch (который работает под капотом git svn clone) останавливается с "signal 13" .

Я не вижу никаких сообщений об ошибках в вашем выводе, но, возможно, это другоена винде или что-то.Тем не менее, запуск git svn fetch должен начинаться с того места, где он остановился.Я сделал небольшой цикл shell-script для запуска fetch до тех пор, пока он не закончил (вам нужен cygwin / * nix для запуска):

while ! git svn fetch; do echo "git-svn halted. Restarting...i"; done
3 голосов
/ 29 июня 2012

Эта версия PowerShell вышеупомянутого * nix-скрипта работала для меня:

$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 голос
/ 27 февраля 2013

У меня была похожая проблема.

В первые дни SVN-репо я использовал файловую структуру по умолчанию для папок trunk/ и tags/ на верхнем уровне. Позже я переключился на структуру <project name>/trunk, <project name>/tags с несколькими проектами.

Таким образом, использование ключа --stdlayout привело только к переносу более раннего кода (поскольку файлы <project name>/* были проигнорированы).

Использование -t <project name>/tags и -T <project name>/trunk решило проблему.

0 голосов
/ 25 августа 2014

Это может быть SIGPIPE.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=526989

Обновите git до уровня 1.8 или выше.Я получал эту ошибку с 1.7 (поскольку стабильный Debian имеет действительно старые пакеты), и мне пришлось установить последнюю версию git из исходного кода, а именно 2.1.0.

...