Die Integration von verschobenen Dateien in Perforce
-
19-09-2019 - |
Frage
Sagen, dass ich eine Niederlassung in notgedrungen unserer Code-Basis erstellt. Hier ist der Zweig spec:
//depot/code/main/... //depot/code/branch/...
Dann wird in dem Zweig, sage ich die verzweigten Datei a.txt bewegen -> b.txt mit
p4 integrate //depot/code/branch/a.txt //depot/code/branch/b.txt
p4 delete //depot/code/branch/a.txt
Lassen Sie sich nun einige Änderungen sagen gemacht in Haupt a.txt, die ich in dem Zweig in b.txt integriert haben möchte
Wenn ich versuche, mit dem ursprünglichen Zweig spec zu integrieren, es spiegelt nicht die Änderungen in Haupt auf b.txt a.txt - ist es eine Möglichkeit, die Veränderungen in der Haupt zeigen sich in der umbenannten Datei vorgenommen hat ?
Die Zweig spec sind ziemlich groß (Hunderte von Veränderungen) und nicht wenige Dateien wurden in dem Zweig umbenannt, so möchte ich einen automatisierten Weg, um dies zu tun. Lassen Sie mich wissen, ob ich hier etwas klarstellen kann - es würde helfen, ein Whiteboard haben;)
Danke! Sam
Lösung
Perforce 2009.1 richtige Umbenennungen hat, die dabei helfen könnte - wahrscheinlich, und in jedem Fall nur für zukünftigen umbenennt. Siehe Perforce 2009.1 Release Notes , insbesondere:
#177023 * **
The new 'p4 move' command allows for better support for
renaming files. A file must be already opened for 'edit'
or 'add' in order to be moved. Moved files can be synced,
resolved and diffed against the repository just like files
opened for 'edit'. See 'p4 help move' for more info.
Sie können die Umbenennungs in die Zweig spec hinzufügen. Dann wird zumindest die Integrationen automatisch sein -. Auch wenn der Zweig spec noch länger sein wird und komplizierter
Andere Tipps
Sie können hinzufügen ‚-3‘ Schalter einen neuen Motor für die Integration zu verwenden, die Zieldateien erkennt, die zuvor bewegte sich mit ‚p4 Bewegung‘ wurden, und automatisch ‚Retargeting‘ selbst folgen diejenigen bewegen Operationen.
p4 integrate -3 //depot/code/main/... //depot/code/branch/...
Ihre Änderungen in //depot/code/main/a.txt integrieren //depot/code/branch/b.txt.
Dies ist die ‚UNODC‘ -Funktion in der aktuellen 2010.2 Release, aber wird das Standardverhalten in den kommenden 2011.1 sein.
Der einzige Weg, den ich kenne, haben Perforce damit umgehen, damit Sie die Zweig spec zu verwenden ist die alte Datei im Original in die neue Datei in der Branche abzubilden. Vielleicht, dass mit dem neuen Bewegungsbefehl in den letzten Perforce Versionen geändert hat, aber nicht, dass ich je erlebt habe.
Sie könnte die Schaffung einer Filiale spec script für verschobene Dateien Umgang mit der Ausgabe von p4 fstat verwendet wird.
Verwenden Sie die folgenden als Ausgangspunkt:
ROOT_PATH="//depot/books/..."
FIRST_CHANGE=91212
p4 fstat -Os -T headChange -F "headAction=move/* headChange>$FIRST_CHANGE" $ROOT_PATH|grep headChange | sort -u|while read DUMMY1 DUMMY2 change; do p4 describe $change; done|grep "moved from"|sed 's/\.\.\./\t/g; s/\#[0-9]*//g; s/ moved from//g;'
Damit werden alle Dateien in // depot / Bücher / finden ..., die in Änderung verschoben wurden 91212 oder später
Für uns ist der Ausgang dieses aussieht
// depot / Bücher / bar.txt //depot/books/foo.txt
Verwenden Sie es einen Zweig spec zum Basteln.
Ich glaube nicht. Da es keine direkte p4 rename
ist, müssen Sie integrieren und löschen - sobald Sie das getan haben, von einem anderen Zweig integriert nicht mehr auf die richtige Datei gehen. Zumindest ist das meine Erfahrung gewesen.