Mein p4-Repository hat eine ähnliche Struktur wie:
%Vor% Wenn ich jedoch git-p4
verwende, um "Projekt" zu klonen, werden alle 3 Zweige nicht als Zweige betrachtet und alle werden in den einzelnen Hauptzweig geklont.
So rufe ich git-p4
auf:
Ich habe git-p4
erwartet, um eine Git-Datenbank für " project
" mit drei Zweigen zu erstellen, und der Stamm des Projekts würde dem Teil des Pfads nach dem Zweignamen zugeordnet werden (zum Beispiel: wenn //depot/project/branch1
hat ein Unterverzeichnis namens " lib
" ( //depot/project/branch1/lib
), dann sollte mein lokales Dateisystem etwas wie /git_project/lib
mit 3 Git-Zweigen sein.
Was erwartet ich falsch? Lege ich git-p4
falsch an?
Wenn Sie sich git-p4 code ansehen (auch ursprünglich hier ), sehen Sie:
%Vor% mit splitFilesIntoBranches
Erforschen des p4 Repos für Zweige.
Also vielleicht git-p4 clone //depot/project@all --detect-branches
wäre in Ordnung (mit dem @all wie in diesem SO Antwort , und die Option --detect-branches
nach dem Repo-Pfad)?
Wenn das Skript nicht schlau genug ist, das zu managen, ist es vielleicht eine einfachere Lösung, es drei Mal auszuführen, einen pro Zweig und das Ergebnis in ein Git Repo zu importieren.
Ich habe gerade an einem verwandten Fehler mit --detect-branches
gearbeitet. Das Skript macht ein paar Dinge:
Sie müssen dem Code folgen, um sicherzustellen, dass jeder Schritt korrekt ausgeführt wird. Die Verwendung von pdb
reicht dafür aus.
Schritt 1 und 2 sind in P4Sync.getBranchMapping
Schritt 3 ist in P4Sync.splitFilesIntoBranches
Für Schritt 4. wird dies mit P4Sync.stripRepoPath
gemacht. Legen Sie dort einen Haltepunkt fest, und Sie können sehen, ob die Zweige erkannt wurden und Dateien richtig umbenannt werden.