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
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!
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.
Sie finden diese in Perforce 2013.1 eingeführte Funktion möglicherweise nützlich:
%Vor%Tags und Links version-control perforce shelve shelving unshelve