Wie kann ich Perforce Shelving verwenden, damit eine Person eine Änderung erstellt und eine andere Person sie einreicht?

8

Ich möchte, dass BenutzerA in der Lage ist, eine Änderungsliste in Perforce zu erstellen und sie dann zu verschieben. Ich möchte dann BenutzerB in der Lage sein, diese Änderungsliste zu speichern und sie abzuschicken.

Das hört sich einfach an, aber Perforce scheint nicht so zu funktionieren, wie ich es erwarten würde. Wenn BenutzerB 'p4 unshelve -s 1234' ausführt, werden alle geänderten Dateien aus der Änderung 1234 nicht angezeigt, aber die Metadaten der Änderung (Beschreibung, Job-Fixes) werden nicht mitgebracht! Dies bedeutet, dass BenutzerB einen kopierten CL in einen ganz neuen CL kopieren und abschicken kann (indem er die Beschreibung und die Korrekturen manuell neu erstellt), aber dabei den alten CL in der Hand hält.

Das logische Ding wäre hier für UserB bis

  1. Unshelve the CL
  2. Sehen Sie sich die Metadaten des hinterlegten CLs an
  3. Kopieren Sie diese Metadaten in einen neuen CL
  4. Reichen Sie den neuen CL ein
  5. Löschen Sie den alten CL
Das empfiehlt die Perforce-Dokumentation sogar. Es gab ein kleines Problem: UserB darf die gelöschten CLs eines anderen Benutzers nicht löschen! Nur UserA und ein p4-Administrator können seinen zurückgesetzten CL löschen. Ich verstehe nicht, warum die Dokumentation genau richtig ist.

Hat schon mal jemand dieses Problem gehabt? Wie hast du es gelöst?

EDIT: Ich sollte klarstellen, dass meine Frage sehr verallgemeinert ist. Ich arbeite an einem Tool, bei dem UserA der Entwickler ist und UserB das Build-System selbst ist. Ein Entwickler würde einen CL zurückstellen und dann das Build-System unshelve und validieren Sie es mit einer Reihe von Builds und Tests (automatisch die CL, wenn es alle diese Tests bestanden). Es wird erwartet, dass sich jeder Entwickler daran erinnert, seine gelöschten CLs zu löschen, wenn das Build-System sie übermittelt hat. Das scheint ein Fehler zu sein!

    
Jay Spang 19.03.2012, 04:16
quelle

2 Antworten

2

Was ist, wenn das Build-System eine Erfolgs- oder Fehlerbenachrichtigung zurücksendet und der Entwickler die Änderungsliste selbst einreichen darf?

Der Versuch, die Übermittlung einer Änderungsliste zu automatisieren, könnte schwierig werden, wenn Dateien aufgelöst werden müssen. Sie können möglicherweise einige davon automatisieren, aber nicht, wenn es Konflikte gibt.

    
Mike O'Connor 19.03.2012 14:20
quelle
1

Sie finden diese in Perforce 2013.1 eingeführte Funktion möglicherweise nützlich:

%Vor%     
Bryan Pendleton 14.08.2013 16:51
quelle