Jika saya menjalankan svn rm file
, file dihapus dari copy pekerjaan lokal.
Apa yang saya lakukan sekarang adalah:
$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file
Bagaimana saya menghindari svn juga menghapus file lokal saat menggunakan svn rm
?
svn
version-control
Juanjo Conti
sumber
sumber
Jawaban:
Anda menginginkan
--keep-local
opsi baris perintah. Ini menghapus file dari kontrol versi tanpa menghapusnya dari sistem file Anda.Catatan: The
--keep-local
hanya mempengaruhisvn rm
salinan Anda. Pengguna lain mungkin memiliki salinan lokal mereka sendiri dari file yang dihapus kecuali ada konflik antara salinan lokal mereka dan repositori karena perubahan yang mereka buat. Ini mungkin bukan hasil yang diinginkan. Lihat komentar di bawah.sumber
Menghapus file dari SVN tanpa menghapusnya secara lokal tidak menjadi masalah umum. Salah satu contoh yang menonjol adalah file .classpath dalam proyek Eclipse. Menempatkan file konfigurasi ini di bawah SVN luar biasa selama semua mesin yang digunakan dalam proyek memiliki instalasi Eclipse dan Java yang sama. Setelah kondisi ini dilanggar, komitmen mulai merusak proyek Eclipse lainnya. Ini adalah titik yang harus dihapus file dari SVN tanpa menghapus ist di mana pun.
melakukan pekerjaan dengan sempurna pada satu mesin dan pada saat itu.
Masalahnya adalah mesin lain mungkin kehilangan file itu (saat pembaruan) atau menghidupkannya kembali (saat komit). Kelemahan SVN adalah tidak menangani
--keep-local
dalam repositori atau menyebarkannya ke copy pekerjaan lainnya. Oleh karena itu pada semua mesin lain perintah di atas harus dijalankan - terbaik sebelum komit atau pembaruan.Ini, tentu saja, akan bekerja 90%, paling banter. Penghapusan dan re-versi akan terjadi secara tiba-tiba. Solusi saya adalah memiliki setiap mesin, saya punya akses langsung atau tidak langsung, lakukan
Ini sangat jelek sehingga sulit disebut "solusi". Namun demikian selalu memungkinkan perbaikan cepat dari kecelakaan selanjutnya.
sumber
Saya tidak punya jawaban untuk pertanyaan yang tepat ini, tapi saya punya jawaban untuk pertanyaan terkait, yaitu bagaimana menghapus semua file (yaitu bukan yang spesifik) dalam direktori dari kontrol versi tanpa menghapusnya secara lokal. Solusi ini berasal dari implementasi Scientific Linux.
ls -a .svn
harus memperlihatkan direktori svn yang menyimpan data kontrol. Secara sederhana:
rm -r .svn
akan menyingkirkan direktori ini. Kemudian ketikkan:
svn status
akan menghasilkan 'peringatan: direktori ini bukan kesalahan copy pekerjaan', karena tidak lagi di bawah kontrol versi.
Saya harap ini membantu.
sumber