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

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

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

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


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 .

0

Untuk mengembalikan file yang dimodifikasi:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.