2016-03-26 18 views
1

Ich benutze "git-p4" Skript für die Migration von p4 zu GIT. Der Klonvorgang schlägt aufgrund der großen Anzahl der Änderungslisten fehl (ca. 5 Millionen). Also ich versuche, inkrementellen Import-Vorgang durchzuführen: Ich habe versucht, für den ersten Lauf und dann Synchronisierungsvorgang zu klonen. Ich testete mit kleinen Änderungslisten.git p4 sync operation failure

Erster Lauf:

git p4 clone //depot/f1/f2/f3/[email protected],17918050 -v 

Zweiter Lauf:

git p4 sync //depot/f1/f2/f3/[email protected],17918064 -v  

Fehler:

Traceback (most recent call last): 
    File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 3677, in <module> 
    main() 
    File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 3671, in main 
    if not cmd.run(args): 
    File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 3429, in run 
    die("fast-import failed: %s" % self.gitError.read()) 
    File "C:\Program Files\Git\mingw64/libexec/git-core\git-p4", line 122, in die 
    raise Exception(msg) 
Exception: fast-import failed: warning: Not updating refs/remotes/p4/master (new tip 85c94d84335bb1441a7f959b384729b2a4d633f4 does not contain 3222bdc29799d1fe5fff91c36524481b1469f1d9) 
+0

Verwenden Sie --detect-Zweige? – Vitor

+0

Nein, ich verwende den gleichen Befehl wie in der Beschreibung erwähnt. – Kester

+0

Versuchen Sie, mit den Argumenten "--max-changes" und "--changes-block-size", die im Git p4-Klon verfügbar sind, herumzuspielen, anstatt Änderungslistenbereiche zu verwenden. – Vitor

Antwort

1

Umgehung: - Erstellen Sie ein Verzeichnis und Klon-Codes mit einer Änderungsliste Bereiche. git p4 Klon // Depot/f1/f2/f3/ere @ 17888479,17918050 -v - Push-Codes zum GIT-Repository. Sie können das angegebene Skript unter dem folgenden Link verwenden, um Code mit Verlauf zu verschieben. https://gist.github.com/emiller/6769886 - Erstellen Sie ein anderes Verzeichnis (leeres Repository) und klonen Sie Codes mit inkrementellen Änderungslistenbereichen. - Ziehen Sie Codes aus GIT und fügen Sie sie mit Codes im lokalen Repository zusammen. - Konflikt lösen und nach dem Festschreiben drücken