2010-09-17 9 views
5

ich von git zu migrieren versuchen mit dem folgenden Befehl svn:git-svn Klon oder svn2git unerwartet stoppen

git svn clone --stdlayout https://my_sourcecontrol 

oder mit git2svn

svn2git --notags https://sourcecontrol -v 

Während der Migration es hält nur mit die folgende Erklärung ab:

W: -empty_dir: directory 

Wenn ich ein git branch -a

Ich sehe, es hat die Tags und eine Reihe von Zweigen importiert, die vor einiger Zeit gelöscht wurden. Außerdem hat es keine der vorhandenen Zweige importiert, sondern nur diejenigen, die vor einiger Zeit gelöscht wurden.

Kann jemand Licht auf das werfen, was vor sich geht?

Antwort

6

Sie könnten ein wenig mit einem kleineren Klon experimentieren, indem Sie zuerst nur einen Zweig ausführen, um zu sehen, ob das zum Beispiel funktioniert.

Ich habe ein ähnliches Problem gesehen: Nach dem Laufen für ein paar Minuten, git-svn fetch (die unter der Haube von Git Svn Clone läuft) halts with "signal 13".

Ich sehe keine Fehlermeldung in Ihrer Ausgabe, aber vielleicht ist es unter Windows oder etwas anders. Nichtsdestoweniger sollte das Ausführen von git svn fetch dort weitermachen, wo es aufgehört hat. Ich machte eine kleine Shell-Skript-Schleife holen zu laufen, bis es fertig ist (Sie Cygwin/* nichts brauchen diese zu laufen):

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

Danke, wo platzierst du das Skript? – dagda1

+0

Ich führe es einfach in der Shell aus, oder lege es in ein "Shebang" -Skript: http://en.wikipedia.org/wiki/Shebang_(Unix) –

2

Diese Powershell Version des obigen * nichts-Skript für mich gearbeitet:

$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

Ich hatte ein ähnliches Problem.

In den frühen Tagen des SVN Repo, habe ich die Standarddateistruktur eines trunk/ und tags/ Ordners auf der obersten Ebene verwendet. Zu einem späteren Zeitpunkt wechselte ich zu einer <project name>/trunk, <project name>/tags Struktur mit mehreren Projekten.

So führte die Verwendung des Schalters --stdlayout nur dazu, dass der frühere Code migriert wurde (weil die <project name>/* Dateien ignoriert wurden).

Mit -t <project name>/tags und -T <project name>/trunk löste das Problem.

0

Es könnte ein Fall von SIGPIPE sein.

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

Upgrade-git um so etwas wie 1.8 oder höher. Ich habe diesen Bug mit 1.7 bekommen (da stable Debian wirklich alte Pakete hat) und musste den letzten git von der Quelle installieren, was 2.1.0 ist.