Apakah svn memiliki perintah `revert-all`?

159

Jika saya ingin membuang semua perubahan saya, dan kembali ke kode yang ada di repositori, saya melakukan hal berikut:

$ rm -fr *
$ svn up

Ini cukup mudah, tapi saya bertanya-tanya apakah ada satu perintah yang akan menyelesaikan ini, seperti:

$ svn revert-all
Eric Wilson
sumber
Siapa yang menggunakan -fr bukan -rf? Ada alasan mengapa itu diucapkan rimraf, bukan rimfer.
Jimmy Hoffa
@JimmyHoffa Apa alasannya?
Eric Wilson
3
Wilson dari konvensi! Kebaktian, tuan! Tanpa disiplin dan tradisi budaya kita, kita hanyalah orang biadab! Saya katakan, selamat siang pak!
Jimmy Hoffa
Lihat juga: stackoverflow.com/questions/239340/… | stackoverflow.com/questions/6204572/…
Ciro Santilli 郝海东 冠状 病 六四 事件 事件 法轮功

Jawaban:

306

Anda bisa melakukannya:

svn revert -R .

Ini tidak akan menghapus file baru apa pun yang tidak di bawah kontrol versi. Tetapi Anda dapat dengan mudah menulis skrip shell untuk melakukannya seperti:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done
Juan Carlos Muñoz
sumber
2
Selamat datang di SO, dan terima kasih atas jawaban yang saksama, karena svn revert -Rtidak setara dengan dua perintah yang saya berikan.
Eric Wilson
1
Untuk menghapus semua file yang tidak di bawah kontrol versi di baris perintah Windows, jawabannya ada di sini: stackoverflow.com/a/1502365/1385429
Christiaan Westerbeek
Mashzo pengguna menunjukkan (dalam jawaban yang sekarang dihapus) bahwa -Rbendera mungkin diperlukan untuk memastikan bahwa direktori yang tidak berversi juga dihapus, sebagai bagian dari membuang semua perubahan. Pertimbangkan untuk memasukkan ini ke dalam jawaban Anda, jika itu cocok untuk Anda.
Jeremy Banks
27

Ada sebuah perintah

svn revert -R .

ATAU
Anda dapat menggunakan --depth = infinity, yang sebenarnya sama seperti di atas:

svn revert --depth=infinity 

svn revertpada dasarnya berbahaya, karena seluruh tujuannya adalah untuk membuang data — yaitu, perubahan yang tidak dikomit. Setelah Anda kembali, Subversion tidak memberikan cara untuk mengembalikan perubahan yang tidak dikomit itu

bilash.saha
sumber
7
-Rsetara dengan--depth=infinity
Michael Burr
4
Cmd "svn revert -R" tidak memiliki direktori saat ini di sintaks .. itu harus "svn revert -R."
boddhisattva
Saat ini, posnya terdengar seperti -Rsaling eksklusif --depth-infinityketika tidak.
ahnbizcad
@ ahnbizcad Bukankah keduanya sama persis sinonim?
Nyergud
Itu maksudku. Jawaban ini membuat keduanya terdengar berbeda ketika tidak. "saling eksklusif" = kebalikan dari sinonim
ahnbizcad
17

Gunakan sakelar rekursif - rekursif (-R)

svn revert -R .
Chris
sumber
0

Untuk mengembalikan file yang dimodifikasi:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'
Taylor Hawkes
sumber
Saya pikir perubahan format saya mewakili apa yang Anda inginkan. Kembalikan jika Anda tidak menyukainya. Dan terima kasih, ada baiknya untuk mengingat masa lalu yang buruk dari SVN ... :)
Eric Wilson