Saya memiliki direktori kerja SVN. Saya membuat beberapa perubahan di direktori itu, dan itu muncul di svn status
. Tetapi apakah ada cara bagi saya untuk menghapus semua perubahan saya di sana dan hanya mendapatkan semuanya dari bagasi menggunakan baris perintah?
195
Saya menggunakan kombinasi jawaban orang lain untuk menghasilkan solusi ini:
Kembalikan perubahan SVN lokal normal
Hapus perubahan lain dan mendukung penghapusan file / folder dengan spasi, dll.
Jangan lupa untuk mendapatkan file terbaru dari SVN
sumber
sumber
svn cleanup . --remove-ignored
Jika Anda tidak memiliki perubahan, Anda selalu dapat benar-benar teliti dan / atau malas dan ...
Tapi, tidak ada yang benar-benar, jangan tidak melakukan itu kecuali jika Anda benar-benar yakin bahwa opsi nuke-dari-ruang apa yang Anda inginkan !! Ini memiliki keuntungan juga nuking semua build cruft, file sementara, dan hal-hal yang diabaikan SVN.
Solusi yang lebih tepat adalah dengan menggunakan perintah revert:
-R menyebabkan subversi berulang dan mengembalikan semua yang ada di dalam dan di bawah direktori kerja saat ini.
sumber
svn nuke-from-space
Tidak ada jawaban di sini yang saya inginkan. Inilah yang saya pikirkan:
Diuji di Linux; mungkin bekerja di Cygwin, tetapi bergantung pada (saya percaya) ekstensi khusus GNU yang memungkinkan xargs untuk dibagi berdasarkan pada
'\0'
bukan spasi putih.Keuntungan dari perintah di atas adalah tidak memerlukan aktivitas jaringan untuk mereset kotak pasir. Anda mendapatkan apa yang Anda miliki sebelumnya, dan Anda kehilangan semua perubahan Anda . (penafian sebelum seseorang menyalahkan saya untuk kode ini menghancurkan pekerjaan mereka) ;-)
Saya menggunakan skrip ini pada sistem integrasi berkelanjutan di mana saya ingin memastikan build bersih dilakukan setelah menjalankan beberapa tes.
Sunting : Saya tidak yakin ini berfungsi dengan semua versi Subversion. Tidak jelas apakah
svn status
perintah selalu diformat secara konsisten. Gunakan dengan risiko Anda sendiri, seperti halnya perintah yang menggunakanrm
perintah selimut .sumber
svn revert akan membatalkan perubahan lokal yang Anda buat
sumber
Anda dapat menggunakan perintah berikut untuk mengembalikan semua perubahan lokal:
sumber
Akan menghapus file apa pun yang telah dimodifikasi. Sepertinya saya ingat mengalami masalah dengan pemulihan ketika file dan direktori mungkin telah ditambahkan.
sumber
svn kembali
sumber
Jika Anda berada di windows, loop berikut ini akan mengembalikan semua perubahan yang tidak dikomit ke ruang kerja Anda:
Jika Anda ingin menghapus semua perubahan yang tidak dikomit dan semua objek tidak berversi, itu akan membutuhkan 2 loop:
sumber