Notgedrungen: Sie Finden die Quelle änderungsliste für eine Filiale
Kurze version:
Nach Verzweigung in P4, wie kann ich die "Quelle" änderungsliste der Branche?
Lange version:
Sagen wir, ich habe ein Haupt-Zweig der mein Projekt bei
//project/main/...
Den neuesten änderungsliste vorgelegt, hier ist @123, wenn ich entscheiden, erstellen Sie einen Zweig für die Version 1.0 in
//project/1.0/...
Vom P4V, eine neue änderungsliste erstellt (sagen @130), gelöst und vorgelegt.
Aus der CLI, es würde in etwa so Aussehen:
p4 integrate -c 123 -o //project/main/... //project/1.0/...
p4 submit
Später, ich schaue auf die änderungslisten unter //project/1.0
, und siehe @130 änderungsliste enthält eine Menge von verzweigten Dateien.
Wie kann ich herausfinden, die änderungsliste nicht. dies war ursprünglich verzweigten von (das ist, @123) ?
- Nitpick: Der CLI-Befehl wird
p4 integrate //project/main/... //project/1.0/...
. (-c 123
würde scheitern, weil-c
gibt eine ausstehende änderungsliste. In deinem Beispiel 123 ist eine bereits vorgelegten änderungsliste.) - Arbeiten Sie für Perforce? Es passiert so kontaktierte ich Ihre Unterstützung gestern Abend-und Sie wies auf die selben Fehler, den ich gemacht :). Das timing war perfekt. Durch die Art und Weise, die schlug ich
p4 filelog
im Grunde mit den gleichen Parametern, die Sie fürp4 changes
, aber ich denke, deine Lösung gibt klarere Ergebnisse (d.h. ich kann nur Augapfel der änderungsliste, die ich brauche, im Gegensatz zu den "filelog" - version, die ist viel Ausführlicher). - Ich weiß, ich gab eine schlechte Antwort ursprünglich, aber ich bin völlig überarbeitet und es ging einen völlig anderen Weg. Ich wollte nur, Sie zu Benachrichtigen; ich bin mir nicht sicher, ob askers benachrichtigt werden überarbeitet, die Antworten oder nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
p4 changes
zeigt eine Liste der vorgelegten änderungslisten, Optional gefiltert nach einem bestimmten Pfad.Keine überraschung, aber, wie hast du Sie gefunden,
p4 changes
ist weniger hilfreich, wenn Sie integrieren können alle diese änderungen in einer einzigen änderung:Der trick ist die Verwendung der
-i
option die umfasst alle änderungslisten integriert in die angegebenen Dateien.Genau das zu bekommen, was Sie wollen (
123
) Sie müssen ein Skript schreiben, das filtert die Ausgabe vonp4 changes -i //project/1.0/...
zu entfernen, ändern Sie gelistetp4 changes //project/1.0/...
(und dann nehmen Sie die letzten verbleibenden ändern).(Bei der Erkundung, die ich Häufig auch die
-m max
option nützlich. Diese Grenzen änderungen an der 'max' jüngsten. Dies hilft Ihrem Ausgang nicht fließen offscreen, wenn es viele änderungen).p4 changes -i
das ist nicht inp4 changes
werden die Eltern von einem bestimmten changeset? Ich kann merge changeset 123 in Filiale X und dann nach, dass die merge changeset 20. Also, wie kann ich direkt bei der Suche die Eltern von einem bestimmten changeset?Too many rows scanned (over 9000000); see 'p4 help maxscanrows'.
Ich weiß nicht, von jedem einfachen Befehl ausführt, was Sie gerne tun würden. Wenn Sie bereit sind, zu Skript ein wenig und Sie den Befehl nicht ausführen schnell könnten Sie vielleicht versuchen, ein Skript so etwas wie die folgenden für alle verzweigten Dateien:
Finden Sie die Quell-Datei/revision für eine Ziel-Datei.
Holen Sie sich die Liste ändern, an dem die source-Datei/revision vorgelegt wurde.
Wiederholen Sie den Vorgang für alle Dateien im Zweig, und wählen Sie die höchste Veränderung keine (headChange oben), das sollte die Letzte änderung eingereicht, um die Eltern vor der Verzweigung für diese bestimmte Datei. Sie konnten eine vollständige Liste aller verzweigten Dateien mit z.B. "p4-Dateien //Projekt/1.0/...#1".
(oder vielleicht nehmen Sie den einfachen Weg und Fragen Sie die Perforce-support)
Da keiner der Antworten, die Sie so weit, geben Sie den code für die Suche nach der Quelle oder Wurzel änderungsliste von einem Zweig, ich dachte, ich würde eine eins-liner zu tun. Dieser Ansatz basiert auf @Cwan ' s Vorschlag, und drucken Sie die "übergeordnete" änderungsliste aus der der branch erstellt wurde. Die
FIRST_BRANCH_CL
argument ersetzt werden muss mit der branch-Erstellung änderungsliste (D. H. die erste änderungsliste vorgelegt, die den neuen Zweig). Als ein konkretes Beispiel einbauenFIRST_BRANCH_CL
mit130
von der ursprünglichen Frage, diese one-liner ausgeben würde123
.Kurze Antwort:
Verwenden Sie den Revisionsgraphen in P4V Schritt zurück durch die Zeit und untersucht die integration der Geschichte. Video auf der Perforce-website.
Habe ich erfolgreich die revision graph auf ästen mit tausenden von Dateien zu verfolgen, wenn eine bestimmte änderung war integriert in eine Filiale. Das ist, warum ich empfohlen und einen Link zu einem video-training, wie die meisten Leute unterschätzen es, weil Sie nicht wissen, wie es zu benutzen.
Lange Antwort:
... [Entfernt]
UPDATE: die Revision Graph ist offenbar nicht machbar, vielleicht können Sie dies lösen, indem man einen Prozess/Politik, D. H., beim ausführen der Integration, fügen Sie einen Hinweis in der Beschreibung "Verzweigt @ CL 123". Wir setzen diese Methode uns bei der Integration von einem trunk-release-Linien.
Wenn Sie die Registerkarte "Verlauf" in p4v es wird Ihnen zeigen alle änderungslisten eingereicht gegen einen ast, so Blick auf diese für
sobald Sie gefunden haben, die älteste vorgelegten änderungsliste, dann auf eine der Dateien in diesem änderungsliste Ansicht der Revision Graph für Sie, dies zeigt der Branche, dass die Datei (und den rest der Dateien) integriert wurden, aus.
Ich werde sehen, ob ich wieder kommen kann mit dem p4 Befehle um das gleiche zu tun.
Aktualisiert Antwort: ich denke, dass dies funktionieren wird. Versuchen Sie dies:
Diese zeigen unintegrated änderungen vom Hauptzweig auf Ihrer release-Zweig. Ich glaube, Sie können die top-änderungsliste Zahl minus 1 zu finden, Ihre Quelle änderungsliste.
interchanges
ist eine undokumentierte Notgedrungen CLI-Funktion. Um mehr zu erfahren, geben Siep4 help interchanges
um mehr zu erfahren über diesen Befehl.Wieder, ich denke dies funktionieren wird. Möglicherweise gibt es einige spezielle Fälle, wo es nicht, aber es ist meine beste Vermutung auf eine schwierige und wichtige Aufgabe.
main
nachdem führen Sieintegrate
aber, bevor Ihrsubmit
. Die Annahmen basieren auf der änderungsliste zahlen ist fast immer zu schlampig."p4 integrierte" für mich gearbeitet. Suchen Sie nach "Kopie von" in der Beschreibung