Kami menggunakan file batch untuk menghasilkan kode, dan secara otomatis memeriksa file yang dihasilkan dari Team Foundation Server (TFS) sehingga dapat dibuat ulang. Sebagian besar file-file ini tidak dimodifikasi, tetapi generator tidak mengetahui ini sebelumnya.
Perintah "tfs undo" membatalkan checkout, tetapi meminta jika beberapa telah dimodifikasi (yang kami tidak ingin lakukan). Kami juga tidak ingin memeriksa file yang dihasilkan segera.
Apakah ada perintah (atau serangkaian perintah) untuk membatalkan checkout semua file yang tidak dimodifikasi tanpa meminta pengguna?
tfs
version-control
tfvc
Robert Wagner
sumber
sumber
ADD
perubahan tanpa diminta (lihat jawaban Ray ).Jawaban:
Lihatlah perintah Undo Unchanged dari Power Tools Team Foundation Server Agustus 2011
Terima kasih Matt Florence untuk pembaruan tautan.
Terima kasih Ray Vega untuk sintaks yang sebenarnya .
sumber
Instal Team Foundation Server Power Tools dan jalankan yang berikut dari baris perintah menggunakan tfpt.exe di root direktori ruang kerja proyek Anda:
c:\myProject> tfpt uu . /noget /recursive
Termasuk
/noget
sangat dianjurkan karena mencegah 'mendapatkan terbaru' semua file proyek Anda yang tergantung pada jumlah total dapat memakan waktu yang sangat lama.sumber
cd
ke tempat direktori ruang kerja Anda (misalnya, milik sayac:\myProject
) atau secara eksplisit memasukkannya setelah ituuu
(mengganti periode.
dengan itu)@Mike & @ray terima kasih,
Saya ingin membuatnya lebih mudah.
Di VS, di menu Alat, klik "Alat Eksternal".
Klik Tambah.
Masukkan judul.
Perintah: tfpt.exe
Argumen: uu. / noget / rekursif
Direktori Awal: [Anda dapat memilih dari tombol panah].
Dua perintah baru ditambahkan ke menu Tools.
Gunakan saat dibutuhkan.
Nikmati,
Ofir
sumber
Visual studio akan tahu jika file yang diperiksa memiliki perubahan atau tidak ada.
PERINGATAN: Metode ini juga menghapus file baru , yaitu file yang belum masuk ke TFS. Jika Anda ingin menyimpan file-file ini maka cukup kecualikan mereka dari set file yang Anda "batalkan".
sumber
Be aware that this method also removes added files that are not yet checked in from TFS.
... Ya, itu adalah diskualifikasi yang cukup cepat.Diperbarui pertanyaan ini dengan jawaban ketika bekerja dengan TFS2017 dan VS2017 / VS2019 saja.
Alat-alat listrik tidak ada untuk TFS 2017 dan yang lama tidak dapat bekerja dengan baik bersama dengan itu, tetapi tampaknya sebagian besar fungsi telah dipindahkan ke VS2017 itu sendiri atau plugin (lihat di bawah).
Visual Studio 2017/2019 Extension
Beberapa tindakan seperti membatalkan file yang tidak berubah telah dipindahkan ke
ekstensi untuk VS2017
ekstensi untuk VS2019
Lokasi tombol "Batalkan Tidak Berubah":
Bug yang dikenal
Anda harus membuka 'Source Control Explorer' (dan biarkan terbuka) sehingga 'Undo Unchanged' ditampilkan di menu Tindakan pada tampilan Pending Changes. dilaporkan di sini .
Ekstensi Integrasi Windows Shell
Selain itu, Anda masih dapat mengatur integrasi shell Windows melalui installer yang terpisah yang tidak lagi ditautkan ke TFS Power Tools.
Integrasi shell windows tidak bekerja persis sama dengan powertools sebelumnya, tetapi tindakan paling penting berhasil bagi saya.
sumber
Jika Anda cukup memeriksa kembali semua file yang Anda periksa, TFS cukup pintar untuk mencari tahu mana yang berubah dan hanya memasukkannya dalam set perubahan yang direkam di server.
TFS melakukan ini dengan membandingkan hash MD5 dari isi file sebelum dan sesudah check-in.
Ini semua dengan asumsi bahwa proses pembuatan Anda murni memperbarui set file yang sama, yaitu Anda tidak akan pernah memiliki kasus di mana file yang dihasilkan pada generasi sebelumnya tidak diperlukan pada generasi berikutnya (yaitu Anda ingin menunda penghapusan untuk file itu) atau file tersebut berganti nama.
Jika proses Anda berpotensi membutuhkan penghapusan file, taruhan terbaik Anda mungkin dengan melihat perintah Power Tools Team Foundation ( tfpt ) dan menggunakan perintah online tfpt yang hanya akan memeriksa file yang telah berubah, dan akan cukup pintar untuk pend menghapus untuk semua file yang tidak lagi diperlukan atau diubah namanya dan ditambahkan pend.
Semoga berhasil,
Martin.
sumber
Berhati-hatilah bahwa TFS yang dibatalkan tidak akan mengembalikan kembali nilai "Tanggal Dimodifikasi" Sistem File. Ini sangat menyebalkan terutama jika Anda menggunakan alat seperti robocopy untuk menyinkronkan mesin jarak jauh. Bahkan setelah Anda membatalkan check out, jika Anda menyimpan file dengan demikian memperbarui nilai "Tanggal Dimodifikasi", nilai yang diperbarui akan bertahan bahkan setelah checkout dibatalkan.
sumber
Ada beberapa poin mengenai opsi uu untuk tfpt (disarankan di sebagian besar jawaban lain) yang tidak jelas bagi saya pada awalnya. Pertama, ini adalah bantuan baris perintah yang dapat diakses dengan perintah
tfpt uu /?
Sekarang izinkan saya memecah perintah yang direkomendasikan di jawaban lain.
tfpt uu
menetapkan bahwa kami ingin menggunakan perintah 'Batalkan Tidak Berubah'..
menunjukkan (saya kira) bahwa direktori kerja saat ini harus digunakan sebagai filespec./noget
memastikan bahwa 'dapatkan versi terbaru' tidak dipanggil sebelum membatalkan file yang tidak diubah./recursive
memastikan bahwa bukan hanya filespec yang akan dipertimbangkan tetapi semua folder dan file anak rekursif. Ini tampaknya tergantung pada filespec - jika tidak ada yang disediakan maka seluruh ruang kerja diproses.Jadi ada beberapa hal yang perlu diperhatikan di sini mengenai perintah dari atas ...
Saya telah menemukan bahwa perintah berikut ini berfungsi paling baik untuk saya - ini akan memproses seluruh ruang kerja.
tfpt uu /noget
Perhatikan bahwa masih tergantung pada direktori kerja di tfpt menggunakannya untuk menentukan ruang kerja mana yang harus diproses. Tetapi selama Anda memberikan path ke file atau folder di dalam ruang kerja, Anda baik untuk pergi.
sumber
Saya bisa melihat pendekatan Ray LionFang di atas. Tidak dapat berkomentar di sana karena saya tidak memiliki perwakilan. Meskipun saya suka pendekatan ini karena tidak ada perubahan yang diperlukan untuk Alat dll ........
....... ada masalah dengan pendekatan itu dalam memukul "Tidak Untuk Semua" mempertahankan beberapa file yang tidak dimodifikasi. Tampaknya melakukan sesuatu seperti Membatalkan file yang tidak dimodifikasi hingga menyentuh file pertama yang benar-benar dimodifikasi dan kemudian mengabaikan sisa file yang tidak dimodifikasi, jika itu masuk akal. Saya hanya melihat efek ini sesekali.
Solusi potensial untuk mengikuti proses di atas tetapi alih-alih menekan "Tidak Untuk Semua", tekan "Tidak" untuk setiap file. Karena ini bisa memakan waktu cukup lama tergantung pada jumlah file yang Anda kerjakan, apa yang biasanya saya lakukan adalah menekan "ALT + N", dan itu hanya mempercepat semua file sambil membatalkan SEMUA file yang tidak dimodifikasi.
sumber
Sejauh yang saya mengerti, di TFS jika Anda checkout proyek tim, seluruh proyek diperiksa dan Anda tidak memiliki kendali atas file mana yang diturunkan. Jika Anda ingin mencegah checkin ke file tertentu, Anda dapat menguncinya.
Di tempat kerja, kita semua membenci TFS.
sumber