Apa perbedaan antara "Rollback ..." dan "Back Out Submitted Changelist #####" di Perforce P4V

198

Saya ingin membalikkan perubahan dari salah satu checkin saya. Di menu konteks klik kanan daftar perubahan tertentu, ada dua opsi ini:

  • Kembalikan ...
  • Daftar Keluar yang Dikirimkan

Apa perbedaan antara keduanya? Dalam situasi apa saya harus menggunakan keduanya?

Dave Andersen
sumber
3
Dalam hal ini, 'Back Out Submitted Changelist' adalah pilihan yang tepat untuk situasi saya (hanya ingin mengembalikan perubahan dari checkin). Terima kasih atas jawaban yang bagus.
Dave Andersen

Jawaban:

222

Kedua operasi ini mengembalikan satu set file ke keadaan sebelumnya dan pada dasarnya cara yang lebih cepat, lebih aman untuk membatalkan kesalahan daripada menggunakan p4 obliterateperintah (dan Anda tidak memerlukan akses admin untuk menggunakannya).

Dalam kasus "Kembalikan ...", ini bisa berupa sejumlah file, bahkan seluruh depo. Anda dapat memerintahkannya untuk mundur ke revisi, daftar perubahan, atau label tertentu. File-file dikembalikan ke keadaan mereka pada saat pembuatan revisi, daftar perubahan, atau label.

Dalam kasus "Back Out Submitted Changelist #####", operasi pemulihan dibatasi untuk file yang dikirimkan dalam daftar perubahan #####. File-file tersebut dikembalikan ke keadaan sebelum Anda mengirimkan daftar perubahan itu, asalkan tidak ada perubahan yang dilakukan pada file-file itu sejak itu. Jika perubahan berikutnya dilakukan pada salah satu file itu, Perforce akan memberi tahu Anda bahwa file-file itu sudah usang. Anda harus menyinkronkan ke revisi kepala dan kemudian menyelesaikan perbedaan. Dengan cara ini Anda tidak akan secara tidak sengaja menampik setiap perubahan yang sebenarnya ingin Anda pertahankan.

Kedua operasi bekerja dengan mengirimkan revisi lama sebagai revisi baru. Ketika Anda melakukan "Kembalikan ...", Anda mengembalikan file ke keadaan di mana mereka berada pada titik waktu tertentu , terlepas dari apa yang telah terjadi pada mereka sejak itu. Saat Anda melakukan "Mundur ...", Anda mencoba untuk membatalkan perubahan yang Anda buat pada titik waktu tertentu , sambil mempertahankan perubahan yang telah terjadi sejak itu.

gagak
sumber
18
Saya pikir "Back Out Submitted Changelist #####" akan mencoba menyimpan perubahan yang dibuat untuk file yang sama setelah daftar perubahan yang diberikan.
Ian Ringrose
1
@Ian: Pengamatan yang bagus. Ketika saya menulis ini, saya berpikir untuk segera memperbaiki kesalahan. Seperti biasanya, jika Anda menyadari bahwa Anda ingin membatalkan sesuatu lebih lama , itu menjadi lebih rumit. Saya memperbaiki jawaban saya.
gagak
@IanRingrose Saya baru saja melakukan operasi "backout", dan sepertinya tidak berusaha untuk menjaga perubahan yang dibuat sesudahnya. Saya harus melakukan sinkronisasi dan kemudian menyelesaikannya untuk mendapatkan kembali perubahan yang diajukan setelah backout.
gdw2
@ gdw2, saya pikir jika Anda melakukan "Rollback" maka Anda tidak akan mendapatkan opsi untuk "menyelesaikan untuk mendapatkan perubahan kembali yang diajukan setelah ..."
Ian Ringrose
1
Meskipun file dikembalikan ke keadaan semula, metadata tidak. Mencoba untuk mengembalikan integrasi dari cabang lain tidak akan memungkinkan Anda untuk melakukan integrasi itu lagi karena metadata mengatakan itu sudah terintegrasi.
Will Brode
17

Membalikkan pengajuan daftar perubahan

Anda tidak dapat membatalkan pengiriman daftar perubahan yang berhasil, tetapi Anda dapat membalikkan perubahan yang sebelumnya dikirimkan dengan dua cara:

Rollback mengembalikan file atau set file kembali ke daftar perubahan, tanggal atau revisi yang ditentukan. Setiap perubahan yang dilakukan setelah titik waktu tersebut tidak dipertahankan. Mundur menghapus perubahan spesifik yang dibuat pada daftar perubahan, tanggal atau revisi tertentu tetapi memungkinkan pengguna untuk menyimpan perubahan yang dibuat dalam revisi berikutnya.

Untuk perinciannya, silakan merujuk ke https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html

Smartmarkey
sumber
8

Backout mengembalikan atau membatalkan perubahan kami. Cara melakukannya adalah bahwa, P4 membatalkan perubahan dalam daftar perubahan (default atau baru) di ruang kerja lokal kami. Kami kemudian harus mengirim / melakukan daftar perubahan yang didukung ini sebagaimana kami melakukan daftar perubahan lainnya. Bagian kedua penting di sini, karena tidak secara otomatis membackup daftar perubahan pada server, kita harus mengirimkan daftar perubahan yang didukung (yang masuk akal setelah Anda melakukannya, tetapi saya awalnya menganggap itu melakukan itu secara otomatis).

Seperti yang ditunjukkan oleh orang lain, Rollback memiliki kekuatan lebih besar - Ia dapat mengembalikan perubahan ke tanggal tertentu, daftar perubahan, atau revisi #

pengguna841717
sumber
4

Kembalikan ... akan meminta Anda untuk memilih folder untuk kembalikan, yaitu, itu akan berfungsi pada folder tertentu, dan Anda dapat kembalikan ke label atau daftar perubahan atau tanggal. Back out berfungsi pada file dalam daftar perubahan tertentu.

akf
sumber
4

Saya menjelaskan hal ini kepada pengguna dengan membandingkan daftar-daftar Perforce dengan stack (dari struktur data).

Mundur menghapus satu item dari mana saja di tumpukan.

Rolling back menghapus n item dari atas tumpukan.

gmaghera
sumber
0

Paling sederhana, perbedaannya adalah salah satu dari pluralitas:

  • Backout mundur dari daftar perubahan tunggal (baik yang terbaru atau tidak). yaitu itu membatalkan daftar perubahan tunggal.
  • Rollback mengembalikan perubahan sebanyak yang diperlukan untuk mencapai daftar perubahan sebelumnya. yaitu itu membatalkan beberapa daftar perubahan.

Saya dulu lupa yang mana dan akhirnya harus berkali-kali mencarinya. Untuk memperbaiki masalah ini, bayangkan memutar kembali sebagai beberapa rotasi lalu semoga fakta bahwa rollback jamak akan membantu Anda (dan saya!) Ingat yang mana. Backout terdengar 'kurang jamak' dari pada rollback ke saya. Bayangkan mundur dari tempat parkir tunggal .

Jadi, mnemoniknya adalah:

  • Kembalikan → beberapa rotasi
  • Backout → mundur dari tempat parkir mobil tunggal

Saya harap ini membantu!

darrenp
sumber