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 tf rollback Team Foundation Version Control (TFVC) 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, atur izin Read, Check Out, dan Check In diatur ke Izinkan. Untuk informasi selengkapnya, lihat izin TFVC Default.

Sintaksis

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

Deskripsi

<ChangesetFrom>~<ChangesetTo>

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

  • Satu set perubahan, 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, /changeset:Tip, atau /changeset:T terbaru

<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.

Nota

Anda dapat menentukan lebih dari satu argumen itemspec.

<VersionSpec>

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

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

  • Satu set perubahan, 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.

Pilihan

Opsi

Deskripsi

/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 cabang atau menggabungkan perubahan. 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 opsi Gunakan 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.

Komentar

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
menambahkan, cabang , atau batalkan penghapusan menghapus
mengedit mengedit
pengodean pengodean
mengganti nama/memindahkan mengganti nama/memindahkan
menghapus batalkan penghapusan
menggabungkan Perubahan yang meniadakan perubahan apa pun yang digabungkan ke cabang saat ini.

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

  • Anda mengembalikan set perubahan di mana perubahan menambahkan terjadi. Operasi pembatalan menyebabkan perubahan putar kembali dan perubahan penghapusan .

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

  • Dalam changeset 132, Anda menggabungkan dari $/BranchA/File1.txt ke $/BranchB/File1.txt. Perubahan dalam penggabungan tersebut termasuk mengedit perubahan dalam changeset 92 dan 104. Dalam changeset 162, Anda mengembalikan set perubahan 132, yang menghasilkan perubahan rollback 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 perintah tf rollback.

Kode keluar 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 dicek masuk 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 opsi /keepmergehistory jika Anda ingin penggabungan di masa mendatang antara sumber yang sama dan target yang sama untuk mengecualikan set perubahan yang mencakup dalam operasi penggabungan sebelumnya. Misalnya:

  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 untuk $/BranchA/Util.cs pada bulan Juli tidak sesuai untuk $/BranchB/Util.cs. Anda dapat menggunakan perintah rollback untuk meniadakan perubahan ini. Saat Anda menggunakan perintah untuk mengembalikan perubahan penggabungan atau perubahan cabang , Anda memiliki keputusan untuk dibuat.

    • Jika Anda ingin perubahan yang Anda buat $/BranchA/Util.cs pada bulan Juli untuk 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 dalam $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Jika Anda menghilangkan 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 opsi /keepmergehistory 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 pada BranchA mungkin tidak cocok dengan konten di BranchB.