Bagaimana cara mengembalikan check-in TFS?

92

Saya ingin mengembalikan perubahan yang saya buat baru-baru ini di TFS. Di Subversion, ini sangat mudah. Namun, tampaknya sakit kepala yang luar biasa di TFS:

Opsi 1: Dapatkan Versi Sebelumnya

  1. Dapatkan versi sebelumnya dari setiap file secara manual
  2. Lihat untuk mengedit
  3. Gagal - pembayaran (di VS2008) memaksa saya untuk mendapatkan versi terbaru

Opsi 2: Dapatkan TFS Power Tools

  1. Unduh Team Foundation Power Tools
  2. Keluarkan perintah kembalikan dari baris cmd
  3. Gagal - tidak akan berfungsi jika ada perubahan lain yang menunggu keputusan

Opsi 3: Urungkan Perubahan Secara Manual

  1. batalkan perubahan saya secara manual, lalu lakukan set perubahan baru

Pertanyaan

Bagaimana cara mengembalikan ke set perubahan sebelumnya di TFS?

Jason
sumber
2
VSS tidak memiliki rollback. Mereka memang memiliki fitur lain yang kebetulan bernama "rollback" tetapi dalam istilah TFS ini benar-benar sebuah Destroy. (a) Anda hanya dapat melakukannya dari ujung; itu tidak akan berfungsi jika ada perubahan tambahan yang telah diperiksa setelah yang Anda ingin putar kembali (b) itu SECARA PERMANEN MENGHAPUS perubahan dari database
Richard Berg
1
Oh betapa saya merindukan kemudahan rollback VSS.
Greg
2
Saya menemukan masalah ini baru-baru ini - mengapa sih sangat sulit untuk memutar kembali di TFS. Roll-back itu salah satu fungsi dasar kendali sumber
JohnIdol
2
Ini terlalu menyakitkan di TFS!
Jon Kragh
1
Beralih ke Mercurial! Saya berganti pekerjaan dan mengikat diri saya ke TFS. Saya telah menulis skrip PowerShell untuk membuatnya tampak seperti Hg dari baris perintah sejak saat itu.
Sumo

Jawaban:

63
  1. Unduh dan instal Team Foundation Power Tools .
  2. Buka prompt perintah Visual Studio
  3. Arahkan ke direktori di sistem file tempat TFS dipetakan. Jika Anda tidak melakukannya, Anda akan mendapatkan pesan kesalahan "Tidak dapat menentukan ruang kerja" saat mencoba untuk memutar kembali
  4. Pastikan semua yang lain sudah terdaftar atau disimpan
  5. jalankan rollback tfpt untuk membuka antarmuka.
  6. Pilih set perubahan yang ingin Anda kembalikan
  7. Periksa versi baru dari file yang Anda putar kembali

Kerugian besar dari alat ini adalah ia ingin menyegarkan semua yang ada di ruang kerja Anda sebelum Anda dapat menggabungkan. Saya mengatasi masalah ini dengan membuat ruang kerja baru hanya untuk rollback yang dipetakan langsung ke tempat di pohon sumber tempat file yang terpengaruh berada.

Jika Anda memerlukan bantuan untuk mencari tahu perubahan mana yang akan diputar kembali, saya menemukan alat peninjau kode di add-in Team Foundation Side Kicks gratis sangat membantu.

Hel elephant
sumber
Anda dapat mencoba cara ini, tetapi berhati-hatilah, alat tidak didokumentasikan dengan baik, dan bahkan jika Anda dapat melewati semua kesalahan, Anda mungkin dapat atau tidak dapat benar-benar melakukan rollback. (Saya baru mencoba selama 2 jam)
alkimia
1
Teknik ini berhasil untuk saya. Saran ruang kerja sangat bagus (dan penting jika Anda berurusan dengan basis kode yang besar).
cloggins
1
Peringatan ... ada tangkapan 22 jika Anda menggunakan versi TFS dan Visual Studio yang tidak cocok. Saya menggunakan VS2010 dengan TFS2008 (kasus klasik IT tidak mengejar dev) dan TF.EXE dengan VS2010 sekarang memiliki rollback ... tetapi tidak bekerja melawan TFS2008. Dan tfpt 2010 telah membatalkan rollback, jadi saya tidak bisa melakukannya dengan cara lama.
Simon Gillbee
7
perintah 'rollback' dipindahkan dari Power Tools untuk VS2010, jadi sekarang Anda hanya perlu mengetik 'tf rollback': social.msdn.microsoft.com/Forums/en/tfspowertools/thread/…
Dan
Mulai dari TFS Power Tools versi Agustus 2011, untuk melakukan rollback, Anda tidak perlu menggunakan baris perintah lagi.
joerage
24

Solusi # 1 Anda akan berfungsi: 1. dapatkan versi sebelumnya dari setiap file secara manual

  1. periksa untuk mengedit

  2. Check in file dan Abaikan perubahan server saat diminta.

Alasan mengapa gagal untuk Anda adalah karena Anda harus mengaktifkan opsi "Dapatkan versi item terbaru saat pembayaran". Matikan opsi ini dengan membuka Alat ... Opsi ... Kontrol Sumber ... Server Visual Studio Tema Foundation dan hapus centang "Dapatkan versi item terbaru saat check out"

Bersulang

Happer
sumber
2
Baru saja melakukannya dengan cara ini setelah berjuang selama 2 jam dengan Power Tools dan tidak berhasil ... dengan TFS tidak mendukung fungsi dasar ini ...
alkimia
Fungsionalitas ditambahkan ke TFS 2010 / Visual Studio 2010.
Robaticus
2
Untuk memperjelas ini bukan rollback yang sebenarnya. Ini mendapatkan versi yang lebih lama. Bukan hal yang sama.
Ryan Cromwell
+1 untuk menunjukkan masalah dengan setelan Dapatkan item versi terbaru pada pembayaran!
Sir Crispalot
18

Rollback telah dipindahkan dari tfpt.exe ke tf.exe, Alat Kontrol Versi Team Foundation.

TF - Team Foundation Version Control Tool, Version 10.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Rolls back the changes in a single or a range of changesets:
tf rollback /changeset:changesetfrom~changesetto [itemspec] [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]

tf rollback /toversion:versionspec itemspec [/recursive]
            [/lock:none|checkin|checkout] [/version:versionspec]
            [/keepmergehistory] [/noprompt] [/login:username,[password]]
Kevin Lo
sumber
1
Apakah ada cara untuk melakukan ini secara langsung dari Visual Studio?
Kyle Delaney
14

Anda memiliki dua opsi untuk mengembalikan (mengembalikan) kumpulan perubahan di Kontrol Versi TFS 2010. Opsi pertama adalah menggunakan Antarmuka Pengguna (jika Anda memiliki versi terbaru dari TFS 2010 Power Tools diinstal).

Rollback Changeset di UI untuk TFS 2010

Opsi lainnya adalah menggunakan aplikasi baris perintah kontrol versi TFS 2010:

tf.exe rollback

Saya memiliki informasi tentang kedua pendekatan pada entri blog saya yang tersedia di sini: http://www.edsquared.com/2010/02/02/Rollback+Or+Undo+A+Changeset+In+TFS+2010+Version+Control.aspx

Ed Blankenship
sumber
14

Cara lain untuk membuat opsi 1 Anda berfungsi adalah dengan membalik urutan langkah-langkahnya:

  1. Lihat itemnya
  2. Dapatkan Versi Tertentu ke versi lama
  3. Lapor masuk (mengabaikan dialog "versi server peringatan lebih baru") ATAU di bagian konflik dari dialog Perubahan Tertunda selesaikan konflik tersebut dengan mempertahankan versi lokal.

Ini akan berfungsi meskipun Anda telah menetapkan Dapatkan Saat Pembayaran Terbaru.

Dave Roberts
sumber
1
Tidak berhasil untuk saya. Tetapi itu pasti karena beberapa kepala peniti mengatur TFS dengan kebijakan konyol.
SHODAN
5

Untuk referensi, jika Anda menggunakan TFS 2010 , berikut ini tautan ke Rollback Command (Kontrol Versi Team Foundation) .

Untuk mengembalikan set perubahan tertentu , buka Visual Studio Command Prompt (2010) , navigasikan ke direktori ruang kerja TFS Anda, dan ketik perintah:

tf rollback /changeset:C12345

di mana 12345nomor perubahan Anda. Setelah ini, ini akan menunjukkan kepada Anda log dari apa yang dilakukannya dan Anda harus menyelesaikan konflik penggabungan.

Иван Грозный
sumber
4

Sebenarnya tidak memiliki opsi rollback adalah fitur TFS;)

Untuk mengembalikan perubahan:

  1. Lihat versi khusus apa pun dari perubahan yang Anda inginkan
  2. Edit-> Pilih Semua-> Salin teks di file
  3. Periksa versi file apa pun yang ada di server
  4. Tempel di atas file dan check in.

Dan sekarang semua perubahan perantara Anda sebelum rollback juga disimpan! Sungguh fitur yang hebat!

CamelBlues
sumber
Awalnya saya pikir ini sarkastik, tetapi solusi ini mungkin benar-benar berfungsi untuk kita yang tidak cukup beruntung telah diberikan izin rollback.
EBarr
Kecuali jika nanti perubahan dilakukan pada file yang sama yang sebenarnya ingin Anda simpan.
Robert Jeppesen
Kasar tapi ini satu-satunya cara saya bisa melakukan ini di TFS. Jika saya melakukan checkout kemudian mengambil versi lama TFS akan AutoMerge ke versi terakhir setiap kali saya mencoba untuk memeriksanya kembali.
Steve
1

Jika Anda melakukan 1 check-in dan Anda hanya ingin membatalkannya, ada set perubahan # yang terkait dengannya. Lakukan riwayat pada folder yang dimaksud untuk melihat kumpulan perubahan yang buruk. Buka untuk melihat detailnya (semua file diubah, dll).

Saya percaya bahwa Anda dapat memulihkan atau membatalkan set perubahan dari layar itu, tetapi Visual Studio saya baru saja macet ketika saya mencoba melakukan ini. / Sigh - Saya pasti berbagi rasa sakit Anda.

Di mana saya mengunduh TFS di situs ini?

Ben Scheirman
sumber
Tidak, rollback dari History UI hanya ditambahkan di TFS 2010.
Richard Berg
1

Ben Scheirman - dialog Changeset Details tidak memiliki fungsi rollback.

jlo
sumber
1

Pilihan lainnya adalah TFSPlus . Addin Visual Studio ini menambahkan (antara lain) perintah Dapatkan Versi ini ke jendela riwayat. Jika Anda telah memeriksa file, itu akan menggantinya dengan versi itu. Jika Anda melakukan pemeriksaan setelahnya, Anda akan secara efektif melakukan rollback ke versi itu.

Ia bekerja pada file individu dan bukan pada set perubahan lengkap.

Damir Arh
sumber
1

Dapatkan Versi Tertentu

Dalam Jenis Versi drop-down pilih Jenis sebagai Changeset

Gunakan tombol Changeset ... untuk menemukan Changeset Anda atau ketik saja, jika Anda mengetahui nomor ini.

Setelah Anda memiliki Changeset tertentu.

Periksa

Mendaftar

Guru
sumber
0

Tak satu pun dari solusi ini yang berhasil bagi saya. Solusi Dave Roberts adalah yang paling dekat dengan apa yang sebenarnya saya kerjakan. Saya tidak mengaktifkan Dapatkan versi item terbaru saat check out, namun tampaknya ini adalah kebijakan server.

Solusi saya untuk ini adalah memeriksa file untuk diedit, mendapatkan versi tertentu, kemudian ketika konflik terdeteksi menggunakan alat penggabung (dan secara manual tidak menggabungkan perubahan) sehingga file tersebut dalam kondisi seperti itu.

Saya akan pergi dengan membandingkan dengan versi tertentu dan menyalin seluruh file lalu menempelkannya di atas yang lama.

Masih harus ada cara yang lebih mudah untuk melakukan ini!

PJUK
sumber
0

Solusi di atas adalah untuk TFS2008. TFS2010 memiliki fitur rollback built-in. lihat artikel ini untuk detailnya.

StarCub
sumber
Kecuali bahwa VS2010 (tf) tidak berfungsi terhadap TFS2008 dan karena TFPT 2010 tidak memiliki rollback lagi, Anda disemprot.
Simon Gillbee
0

Instal versi terbaru TFS Power Tools (Agustus 2011), dan Anda dapat mengklik kanan pada kumpulan perubahan dan memilih "Rollback Seluruh Changeset". Tidak ada yang lebih mudah dari itu.

Ini tersedia di sini: http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f

Ini diisyaratkan di bawah Peningkatan Penjelajah Tim di halaman di atas:

Yang baru dalam rilis ini adalah kemampuan untuk [..] dengan mudah mengembalikan perubahan dalam kontrol versi.

Evgeniy Berezovsky
sumber