Jaka jest różnica między „wycofaniem…” a „wycofaniem przesłanej listy zmian #####” w Perforce P4V


198

Chcę cofnąć zmiany z jednego z moich kont. W menu kontekstowym danej listy zmian prawym przyciskiem myszy dostępne są dwie opcje:

  • Wycofywanie ...
  • Cofnij przesłaną listę zmian

Jaka jest różnica między tymi dwoma? W jakich sytuacjach powinienem użyć jednego z nich?


3
W tym przypadku opcja „Wycofaj przesłaną listę zmian” była właściwą opcją w mojej sytuacji (chcę tylko przywrócić zmiany z zameldowania). Dzięki za świetne odpowiedzi.
Dave Andersen

Odpowiedzi:


222

Obie te operacje przywracają zestaw plików do poprzedniego stanu i są zasadniczo szybszymi, bezpieczniejszymi sposobami cofania błędów niż użycie p4 obliterate polecenia (i nie potrzebujesz dostępu administratora, aby z nich korzystać).

W przypadku „Cofania ...” może to być dowolna liczba plików, nawet cały skład. Możesz nakazać jej przywrócenie do określonej wersji, listy zmian lub etykiety. Pliki są przywracane do stanu, w jakim były w momencie tworzenia tej wersji, listy zmian lub etykiety.

W przypadku „Back Out Submitted Changelist #####” operacja przywracania jest ograniczona do plików przesłanych na liście zmian #####. Pliki te są przywracane do stanu, w jakim były przed przesłaniem tej listy zmian, pod warunkiem, że od tego czasu nie wprowadzono żadnych zmian w tych plikach. Jeśli w którymkolwiek z tych plików dokonano kolejnych zmian, Perforce poinformuje, że pliki te są nieaktualne. Będziesz musiał zsynchronizować z wersją głowy, a następnie rozwiązać różnice. W ten sposób nie blokujesz przypadkowo żadnych zmian, które faktycznie chcesz zachować.

Obie operacje polegają zasadniczo na przesłaniu starych wersji jako nowych wersji. Kiedy wykonujesz „Cofanie ...”, przywracasz pliki do stanu, w jakim były w określonym momencie , niezależnie od tego, co się z nimi stało. Wykonując polecenie „Wycofaj ...”, próbujesz cofnąć zmiany dokonane w określonym momencie , zachowując zmiany, które nastąpiły od tego czasu.


18
Myślę, że „Back Out Submitted Changelist #####” spróbuje zachować zmiany, które zostały wprowadzone w tych samych plikach po danej liście zmian.
Ian Ringrose

1
@Ian: Dobra obserwacja. Kiedy to napisałem, zastanawiałem się nad natychmiastowym poprawieniem błędu. Jak to zwykle bywa, jeśli zdasz sobie sprawę, że chcesz cofnąć coś znacznie później , staje się to bardziej skomplikowane. Poprawiłem swoją odpowiedź.
kruk

@ IanRingrose Właśnie wykonałem operację „wycofania” i wygląda na to, że nie próbuje ona zachować zmian, które zostały wprowadzone później. Musiałem przeprowadzić synchronizację, a następnie rozwiązać, aby odzyskać zmiany, które zostały przesłane po wycofaniu.
gdw2

@ gdw2, myślę, że jeśli zrobiłeś „Cofanie”, nie dostałbyś opcji „rozwiązać, aby odzyskać zmiany, które zostały przesłane po ...”
Ian Ringrose

1
Chociaż pliki są przywracane do stanu, w jakim były, metadane nie są. Próba wycofania integracji z innej gałęzi nie pozwoli na jej ponowne wykonanie, ponieważ metadane mówią, że jest już zintegrowana.
Will Brode,

17

Odwróć przesłanie listy zmian

Nie można cofnąć pomyślnego przesłania listy zmian, ale można cofnąć wcześniej przesłane zmiany na dwa sposoby:

Wycofanie przywraca plik lub zestaw plików z powrotem do określonej listy zmian, daty lub zmiany. Wszelkie zmiany dokonane po tym czasie nie są zachowywane. Wycofać się usuwa określone zmiany dokonane przy danej liście zmian, dacie lub rewizji, ale pozwala użytkownikowi zachować zmiany wprowadzone w kolejnych wersjach.

Szczegółowe informacje można znaleźć na stronie https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html


8

Wycofanie przywraca lub cofa nasze zmiany. W ten sposób P4 cofa zmiany na liście zmian (domyślnej lub nowej) w naszym lokalnym obszarze roboczym. Następnie musimy przesłać / zatwierdzić tę listę zmian wycofanych, podobnie jak inne listy zmian. Druga część jest tutaj ważna, ponieważ nie wycofuje automatycznie listy zmian na serwerze, musimy przesłać listę zmian (co ma sens po tym, jak to zrobisz, ale początkowo zakładałem, że robi to automatycznie).

Jak zauważyli inni, Cofanie ma większe uprawnienia - może przywracać zmiany do określonej daty, listy zmian lub wersji #


4

Cofnij ... poprosi cię o wybranie folderu do wycofania, tzn. Będzie działał na określonych folderach i możesz wycofać do etykiet, list zmian lub dat. Cofnij działa na plikach na określonych listach zmian.


4

Wyjaśniam to użytkownikom porównując listy zmian Perforce ze stosem (ze struktur danych).

Wycofanie usuwa jeden element z dowolnego miejsca na stosie.

Wycofanie usuwa n przedmiotów z góry stosu.


0

Najprościej mówiąc, różnica polega na wielu:

  • Wycofanie wycofuje się z jednej listy zmian (najnowszej lub nie). tzn. cofa pojedynczą listę zmian.
  • Cofanie wycofuje zmiany tak bardzo, jak to konieczne, aby przejść do poprzedniej listy zmian. tzn. cofa wiele list zmian.

Kiedyś zapominałem, który z nich jest, i musiałem to wielokrotnie sprawdzać. Aby rozwiązać ten problem, wyobraź sobie, że cofasz się o kilka obrotów, a mam nadzieję, że fakt, że cofanie jest liczbą mnogą, pomoże ci (i mnie!) Zapamiętać, który z nich jest który. Wycofanie brzmi dla mnie „mniej mnogiej” niż wycofanie . Wyobraź sobie wycofywanie się z jednego miejsca parkingowego.

Zatem mnemonik to:

  • Wycofanie → wiele obrotów
  • Wycofanie → wycofanie z jednego miejsca parkingowego dla samochodu

Mam nadzieję, że to pomoże!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.