Яка різниця між “відказом…” та “Завантажити резервний список змін #####” у Perforce P4V


198

Я хочу змінити зміни з одного з моїх чеків. У контекстному меню правої кнопки миші певного списку змін є два варіанти:

  • Відкат ...
  • Вимкнути поданий список змін

Яка різниця між цими двома? У яких ситуаціях я повинен використовувати будь-яку?


3
У цьому випадку "Back Back Submitted Change List" був правильним варіантом для моєї ситуації (бажаючи лише повернути зміни з реєстрації). Дякую за чудові відповіді.
Дейв Андерсен

Відповіді:


222

Обидві ці операції відновлюють набір файлів до попереднього стану і по суті є швидшими, безпечнішими способами скасування помилок, ніж використання p4 obliterateкоманди (і для їх використання вам не потрібен доступ адміністратора).

У випадку з "відкатом ..." це може бути будь-яка кількість файлів, навіть ціле депо. Ви можете повідомити про це відкат до певної редакції, списку змін або мітки. Файли відновлюються до стану, в якому вони були під час створення цієї версії, списку змін чи мітки.

У випадку "Back Back Submitted Changelist #####" операція відновлення обмежена файлами, які були подані у список змін #####. Ці файли відновлюються до стану, в якому вони були до того, як ви подали цей список змін, якщо з тих пір жодних змін до цих файлів не було. Якщо в будь-який із цих файлів були внесені подальші зміни, Perforce скаже вам, що ці файли застаріли. Вам доведеться синхронізувати з головною редакцією, а потім вирішити відмінності. Таким чином, ви ненароком не обмежуєте жодних змін, які ви насправді хочете зберегти.

Обидві операції працюють, по суті подаючи старі редакції як нові зміни. Виконуючи "відкат ...", ви відновлюєте файли до стану, в якому вони були в певний момент часу , незалежно від того, що з ними сталося. Виконуючи "Back out ...", ви намагаєтесь скасувати внесені вами зміни в певний момент часу , зберігаючи зміни, що відбулися з тих пір.


18
Я думаю, що "Back Out Submitted Changelist #####" намагатиметься зберегти зміни, внесені до тих самих файлів після даного списку змін.
Ян Рінроуз

1
@Ian: Гарне спостереження. Коли я це писав, я думав, як негайно виправити помилку. Як це зазвичай буває, якщо ви зрозумієте, що хочете скасувати щось набагато пізніше , це стає складніше. Я уточнив свою відповідь.
ворон

@IanRingrose Я щойно зробив операцію "резервного копіювання", і, схоже, вона не намагається зберегти зміни, які були внесені згодом. Мені довелося зробити синхронізацію, а потім вирішити, щоб повернути зміни, які були подані після резервного копіювання.
gdw2

@ gdw2, я думаю, якби ти зробив "відкат", тоді ти не отримав би можливість "вирішити, щоб повернути зміни, які були внесені після ..."
Ян Рінгроуз,

1
Хоча файли відновлюються до стану, в якому вони були, метадані - ні. Спроба відкатати інтеграцію з іншої гілки не дозволить вам виконати цю інтеграцію ще раз, оскільки метадані говорять, що її вже інтегровано.
Буде Брод

17

Скасувати подання списку змін

Ви не можете скасувати подання успішного списку змін, але ви можете скасувати раніше подані зміни двома способами:

Відкат відновлює файл або набір файлів назад до визначеного списку змін, дати чи версії. Будь-які зміни, внесені після цього моменту, не зберігаються. Резервне копіювання видаляє конкретні зміни, внесені в певний список змін, дату чи версію, але дозволяє користувачеві зберігати зміни, внесені в наступних редакціях.

Для детальної інформації зверніться до https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html


8

Резервне копіювання відновлює або скасовує наші зміни. Це робиться так, що P4 скасовує зміни у списку змін (за замовчуванням чи новим) на нашому локальному робочому просторі. Потім ми повинні надіслати / скористатись цим резервним списком змін, як і інші списки змін. Друга частина тут важлива, оскільки вона автоматично не створює резервного копіювання списку змін на сервері, ми повинні подати список змін змін (який має сенс після того, як ви це зробите, але я спочатку припускав, що він робить це автоматично).

Як вказують інші, відкат має більші повноваження - він може відновити зміни до певної дати, списку змін або редакції #


4

Відкат ... запропонує вам вибрати папку для відкату, тобто вона буде працювати над певними папками, і ви зможете відкатати до міток чи змінних списків або дат. Резервне копіювання працює на файли в певних списках змін.


4

Я пояснюю це користувачам, порівнюючи списки змін Perforce зі стеком (із структур даних).

Резервне копіювання видаляє один елемент з будь-якої точки стека.

Повернення назад видаляє n елементів із верхньої частини стека.


0

Найпростіше, різниця полягає в множині:

  • Резервне копіювання виходить із одного списку змін (останнього чи ні). тобто він скасовує єдиний список змін.
  • Відкат відхиляє зміни стільки, скільки потрібно, щоб потрапити на попередній список змін. тобто він скасовує декілька списків змін.

Раніше я забував, що таке, і, зрештою, потрібно багато разів його шукати. Щоб виправити цю проблему, уявіть собі, як відкрутити декілька обертів, тоді, сподіваємось, факт, що відкат є множиною, допоможе вам (і мені!) Запам'ятати, який з них є. Зворотний зв'язок для мене звучить "менше множини", ніж відкат . Уявіть, що вибираєтеся з одного місця для паркування.

Отже, мнемонічне:

  • Відкат → кілька обертів
  • Зворотний рух → назад з одного місця для паркування автомобіля

Я сподіваюся, що це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.