Geben Sie für einen seriösen Build (der zum Testen vorbereitet wird) explizit die gewünschte Beschriftungs- oder Änderungslistennummer an , synchronisieren Sie sie mit dem Etikett und binden Sie sie in Build-Artefakte ein.
Wenn keine p4 counter change
Änderungsliste (oder Bezeichnung) angegeben ist, verwenden Sie diese , um die aktuelle Änderungsnummer abzurufen und aufzuzeichnen. Sie müssen jedoch immer noch alles mit dieser Änderungsnummer synchronisieren.
Ich glaube nicht, dass Sie genau das erreichen können, was Sie wollen, da im Allgemeinen ein ganzer Arbeitsbereich nicht mit einer bestimmten Änderungslistennummer synchronisiert ist. Man kann einige Dateien explizit mit älteren Revisionen synchronisieren, und dann ist eine einzelne Änderungslistennummer bedeutungslos. Aus diesem Grund ist ein neues sync
erforderlich, um sicherzustellen, dass eine einzelne Änderungslistennummer die Codeversion genau wiedergibt.
Zu den Kommentaren: Ja, meine Antwort ist für Konfigurationsmanager gedacht, die einen Build für die Qualitätssicherung vorbereiten. Unsere Entwickler werden normalerweise nicht als Teil eines Builds synchronisiert. Sie führen vor dem Senden einen Build durch, damit sie sicherstellen können, dass ihre Änderungen den Build oder die Tests nicht beschädigen. In diesem Zusammenhang machen wir uns nicht die Mühe, ein Repository-Label einzubetten.
Bei Ihrem Ansatz gehen Sie davon aus, dass Ihr gesamter Arbeitsbereich zum Zeitpunkt Ihrer letzten Übermittlung der Änderungsliste mit head synchronisiert wurde und dass die Änderungsliste alle geöffneten Dateien enthält. Es ist zu leicht, sich in diesen Annahmen zu irren, schwer zu erkennen und in Bezug auf verlorene Zeit schrecklich teuer. Auf der anderen Seite ist die Lösung des Problems einfach und ohne Nachteile. Und da eine Änderungslistennummer explizit angegeben werden kann, spielt es keine Rolle, welche Revision Sie benötigen oder wie schnell sich die Codebasis ändert.
p4 changes | head -1
scheint einfacher als die meisten dieser Lösungen.