Bagikan melalui


Perintah putar kembali (Kontrol Versi Team Foundation)

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Anda dapat menggunakan perintah Kontrol Versi Team Foundation (TFVC) tf rollback untuk mengembalikan efek satu atau beberapa set perubahan pada satu atau beberapa item yang dikontrol versi. Perintah ini tidak menghapus set perubahan dari riwayat versi item. Sebagai gantinya, perintah ini membuat serangkaian perubahan tertunda di ruang kerja Anda yang meniadakan efek set perubahan yang Anda tentukan.

Prasyarat

Untuk menggunakan perintah ini, Anda harus memiliki izin Baca, Cek Keluar, dan Cek Masuk yang diatur ke Izinkan. Untuk informasi selengkapnya, lihat Izin TFVC default.

Sintaks

tf rollback /toversion:VersionSpec ItemSpec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/login:username,[password]] [/noprompt]
tf rollback /changeset:ChangesetFrom~ChangesetTo [ItemSpec] [/recursive] [/lock:none|checkin|checkout] [/version:VersionSpec]
[/keepmergehistory] [/noprompt] [/login:username,[password]]

Parameter

Argumen

Argumen

Keterangan

<ChangesetFrom>~<ChangesetTo>

Gunakan argumen ini dengan /changeset opsi untuk menentukan set perubahan yang ingin Anda gulung balik. Anda dapat menentukan set perubahan dengan cara berikut:

  • Set perubahan tunggal, misalnya /changeset:C11
  • Rentang set perubahan, misalnya /changeset:C7~C20
  • Tanggal, misalnya /changeset:D09/30/09
  • Rentang tanggal, misalnya /changeset:D09/23/09~D10/07/09
  • Set perubahan terbaru, /changeset:Tip atau /changeset:T

<ItemSpec>

Gunakan argumen ini untuk menentukan satu atau beberapa item yang ingin Anda gulung balik. Jika Anda menggunakan opsi , /toversion Anda harus menentukan argumen ini.

Untuk informasi selengkapnya tentang cara TFVC mengurai spesifikasi item, lihat Menggunakan perintah kontrol versi Team Foundation.

Catatan

Anda dapat menentukan lebih dari satu itemspec argumen.

<VersionSpec>

Nilai yang disediakan pengguna untuk /version opsi dan /toversion opsi .

Gunakan argumen ini dengan /toversion opsi untuk mengembalikan file ke statusnya dalam set perubahan tertentu. Anda dapat menentukan versi dengan cara berikut:

  • Set perubahan tunggal, misalnya /toversion:C32
  • Tanggal tengah malam, misalnya /toversion:D06/19/09
  • Tanggal dan waktu, misalnya /toversion:D06/19/09T14:32
  • Label, misalnya /toversion:LTestLabel
  • Versi di ruang kerja yang dipetakan ke direktori saat ini, /toversion:W
  • Versi di ruang kerja tertentu, misalnya /toversion:WResolveRIConflicts;AKerry

Untuk informasi selengkapnya tentang cara TFVC mengurai versionspec, lihat Menggunakan perintah kontrol versi Team Foundation.

Opsi

Opsi

Keterangan

/changeset

Gunakan opsi ini untuk menentukan satu atau beberapa set perubahan spesifik yang ingin Anda negasikan.

/keepmergehistory

Opsi ini hanya berpengaruh jika satu atau beberapa set perubahan yang Anda gulung balik menyertakan perubahan cabang atau penggabungan . Tentukan opsi ini jika Anda ingin penggabungan di masa mendatang antara sumber yang sama dan target yang sama untuk mengecualikan perubahan yang Anda gulung balik.

/lock

Tentukan opsi ini untuk mencegah pengguna lain cek masuk atau cek keluar item hingga Anda selesai menggulung balik semua perubahan terkait. Untuk informasi selengkapnya, lihat Memahami jenis kunci.

Opsi kunci:

  • None. Default. Tidak ada kunci yang diterapkan. Jika file yang Anda gulung balik telah dikunci, opsi ini akan menghapus kunci.
  • Checkin. Mengunci item hingga Anda melepaskan kunci dengan melakukan check-in. Pengguna lain dapat memeriksa item yang ditentukan, tetapi pengguna tidak dapat memeriksa revisi hingga kunci dihapus. Anda tidak dapat mengunci file yang sudah dikunci.
  • Checkout. Mencegah pengguna melakukan check-in atau memeriksa item terkunci hingga Anda menghapus kunci dengan melakukan check-in.

/login

Untuk informasi tentang opsi ini, lihat Menggunakan opsi untuk mengubah cara fungsi perintah.

/noprompt

Gunakan opsi ini untuk menekan kotak dialog apa pun yang akan muncul selama operasi ini.

/recursive

Tentukan opsi ini jika Anda ingin operasi menyertakan item dalam subfolder.

/toversion

Tentukan opsi ini untuk mengembalikan file ke statusnya dalam set perubahan tertentu. Saat Anda menggunakan opsi ini, Anda meniadakan efek dari semua set perubahan yang telah diterapkan sejak versi yang Anda tentukan.

/version

Menentukan versi file dan folder saat ini yang ingin Anda gulung balik.

Keterangan

Perintah tf rollback meniadakan efek dari setiap set perubahan yang Anda tentukan untuk setiap item yang Anda tentukan. Tabel berikut mencantumkan bagaimana operasi meniadakan setiap jenis perubahan.

Jenis perubahan digulung balik Jenis perubahan putar kembali
tambahkan, cabang, atau batalkan penghapusan hapus
Mengedit Mengedit
pengodean pengodean
ganti nama/pindahkan ganti nama/pindahkan
hapus Membatalkan penghapusan
gabungkan Perubahan yang meniadakan perubahan apa pun yang digabungkan ke cabang saat ini.

Daftar berikut ini menyediakan beberapa contoh perubahan yang dihasilkan dari rollback perintah:

  • Anda mengembalikan set perubahan saat perubahan penambahan terjadi. Operasi putar kembali menyebabkan perubahan putar kembali dan perubahan penghapusan .

  • Anda mengembalikan set perubahan 521 tempat perubahan pengeditan terjadi. Operasi pembatalan menyebabkan perubahan putar kembali dan perubahan edit yang meniadakan perubahan edit dalam changeset 521.

  • Dalam changeset 132, Anda menggabungkan dari $/BranchA/File1.txt ke $/BranchB/File1.txt. Perubahan dalam penggabungan tersebut menyertakan perubahan edit dalam changeset 92 dan 104. Dalam changeset 162, Anda mengembalikan changeset 132, yang menghasilkan perubahan putar kembali dan perubahan edit ke $/BranchB/File1.txt yang meniadakan perubahan edit dalam changeset 92 dan 104.

Kode keluar

Kode keluar dari tabel berikut muncul setelah Anda menjalankan tf rollback perintah.

Keluar dari kode Deskripsi
0 Operasi berhasil menggulung balik semua item.
1 Operasi berhasil mengembalikan setidaknya satu item tetapi tidak dapat mengembalikan satu atau beberapa item.
100 Operasi tidak dapat mengembalikan item apa pun.

Contoh

Contoh berikut meniadakan efek set perubahan 23 pada semua item yang diubah dalam set perubahan tersebut:

c:\workspace> tf rollback /changeset:C23

Contoh berikut meniadakan efek changeset 23 pada file a.txt:

c:\workspace> tf rollback /changeset:C23 a.txt

Contoh berikut mengubah konten a.txt agar sesuai dengan versi yang diperiksa dengan changeset 23:

c:\workspace> tf rollback /toversion:C23 a.txt

Contoh berikut mengubah konten OurTeamProject agar sesuai dengan set perubahan terakhir yang diterapkan pada atau sebelum tengah malam pada 31 Agustus 2009:

c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/

Contoh opsi /keepmergehistory

Saat Anda mengembalikan set perubahan yang menyertakan cabang atau perubahan penggabungan, Anda biasanya ingin penggabungan di masa mendatang antara sumber yang sama dan target yang sama menyertakan perubahan tersebut. Namun, Anda dapat menggunakan /keepmergehistory opsi jika Anda ingin penggabungan di masa mendatang antara sumber yang sama dan target yang sama untuk mengecualikan set perubahan yang disertakan dalam operasi penggabungan sebelumnya. Contohnya:

  1. Pada 30 Juni 2009, Anda melakukan penggabungan penuh semua item dari $/BranchA/ ke $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    

    Anda memeriksa penggabungan ini sebagai bagian dari changeset 292.

  2. Pada bulan Juli, Anda membuat beberapa perubahan $/BranchA/Util.cs. Perubahan ini mencakup dalam changeset 297, 301, dan 305.

  3. Pada 1 Agustus 2009, Anda menggabungkan $/BranchA/Util.cs ke $/BranchB/Util.cs.

    c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
    

    Anda memeriksa perubahan sebagai bagian dari changeset 314. Hasil dari operasi ini adalah bahwa pengeditan yang Anda buat dalam changeset 297, 301, dan 305 ke $/BranchA/Util.cs sekarang juga diterapkan ke $/BranchB/Util.cs.

  4. Seminggu kemudian, Anda menyadari bahwa pengeditan yang Anda buat pada $/BranchA/Util.cs pada bulan Juli tidak sesuai untuk $/BranchB/Util.cs. Anda dapat menggunakan rollback perintah untuk meniadakan perubahan ini. Saat Anda menggunakan rollback perintah untuk mengembalikan perubahan penggabungan atau perubahan cabang , Anda memiliki keputusan untuk dibuat.

    • Jika Anda ingin perubahan yang Anda buat pada $/BranchA/Util.cs pada bulan Juli diterapkan kembali ke $/BranchB/Util.cs di penggabungan mendatang, masukkan perintah berikut:

      c:\workspace> tf rollback /changeset:314
      
    • Jika Anda ingin perubahan yang Anda buat pada $/BranchA/Util.cs pada bulan Juli tidak pernah diterapkan kembali ke $/BranchB/Util.cs di penggabungan mendatang, masukkan perintah berikut:

      c:\workspace> tf rollback /changeset:314 /keepmergehistory
      
  5. Beberapa minggu kemudian, Anda menggabungkan $/BranchA/ ke $ /BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Jika Anda menghilangkan /keepmergehistory opsi saat Anda menggulung balik, perubahan penggabungan berlaku untuk $/BranchB/Util.cs semua set perubahan yang diterapkan ke $/BranchA/Util.cs sejak changeset 292, termasuk changeset 297, 301, dan 305. Dengan kata lain, penggabungan membatalkan perubahan pemutaran kembali.

    • Jika Anda menyertakan /keepmergehistory opsi saat Anda menggulung balik, operasi penggabungan berlaku untuk $/BranchB/Util.cs semua set perubahan yang diterapkan ke $/BranchA/Util.cs sejak changeset 292, tidak termasuk changeset 297, 301, dan 305. Dengan kata lain, penggabungan tidak mengurungkan perubahan pembatalan. Oleh karena itu, konten di BranchA mungkin tidak cocok dengan konten di BranchB.