Saya memiliki banyak perubahan di folder yang berfungsi, dan ada sesuatu yang kacau mencoba melakukan pembaruan.
Sekarang ketika saya mengeluarkan 'svn cleanup' saya mendapatkan:
>svn cleanup .
svn: In directory '.'
svn: Error processing command 'modify-wcprop' in '.'
svn: 'MemPoolTests.cpp' is not under version control
MemPoolTests.cpp adalah file baru yang ditambahkan oleh pengembang lain dan diturunkan dalam pembaruan. Itu tidak ada di folder kerja saya sebelumnya.
Apakah ada yang bisa saya lakukan untuk mencoba dan bergerak maju tanpa harus checkout salinan baru dari repositori?
Klarifikasi: Terima kasih atas saran tentang memindahkan direktori dan menghapus salinan baru. Saya tahu itu adalah pilihan, tetapi ini adalah salah satu yang ingin saya hindari karena ada banyak perubahan yang bersarang di beberapa direktori (ini seharusnya merupakan cabang ...)
Saya berharap cara yang lebih agresif melakukan pembersihan, mungkin suatu saat memaksa file SVN mengalami masalah dengan kembali ke keadaan yang diketahui (dan saya mencoba menghapus copy pekerjaan itu ... itu tidak membantu).
Jawaban:
Saat memulai semuanya bukan merupakan pilihan ...
Saya menghapus file log di
.svn
direktori (Saya juga menghapus file yang menyinggung.svn/props-base
), melakukan pembersihan, dan melanjutkan pembaruan saya.sumber
find . -type f -name lock
sudo rm -rf | find . -type f -name lock
.svn/prop-base
saya miliki.svn/[pristine|tmp|entries|format|wc.db]
Banyak hal telah berubah dengan SVN 1.7, dan solusi populer menghapus file log di direktori .svn tidak layak dengan pindah ke implementasi database copy pekerjaan.
Inilah yang saya lakukan yang tampaknya berhasil:
Itu semua sedikit membingungkan, proses bijak. Pada dasarnya, apa yang kami lakukan adalah menghapus .svn yang korup lalu membuat .svn baru untuk jalur checkout yang sama. Kami kemudian memindahkan .svn baru ini ke direktori kerja lama kami dan memperbaruinya ke repo.
Saya baru saja melakukan ini di TSVN dan sepertinya berfungsi dengan baik dan tidak memerlukan checkout lengkap dan unduh.
-Ya
sumber
svn cleanup --force
. Dan tentu saja semua menambah, menghapus, dan (dengan 1.8) operasi penggantian nama hilang.Melihat
http://www.anujvarma.com/svn-cleanup-failedprevious-operation-has-not-finished-run-cleanup-if-it-was-interrupted/
Ringkasan perbaikan dari tautan di atas (Terima kasih kepada Anuj Varma)
sumber
Jika semuanya gagal:
sumber
Verion terbaru (saya menggunakan 1.9.5) menyelesaikan masalah ini dengan menambahkan opsi "Break locks" pada menu pembersihan. Pastikan kotak centang ini dipilih saat melakukan pembersihan.
sumber
Jawaban ini hanya berlaku untuk versi sebelum 1.7 (terima kasih @ ŁukaszBachman) .
Subversion menyimpan informasinya per folder (dalam .svn), jadi jika Anda hanya berurusan dengan subfolder Anda tidak perlu checkout seluruh repositori - hanya folder yang telah dibobol:
Ini akan memberi Anda copy folder borked yang berfungsi dengan baik, tetapi perubahan Anda masih didukung di borked_dir.bak. Prinsip yang sama berlaku dengan Windows / TortoiseSVN.
Jika Anda memiliki perubahan dalam folder yang terisolasi, lihat di
atau
sumber
svn up
repo yang sama yang berada di tengah-tengahsvn up
di tab yang berbeda - saya lupa saya telah melakukan itu dan meninggalkannya tidak lengkap pada malam sebelumnya..svn
direktori.Kemudian
Semoga ini bisa membantu
sumber
Saya memiliki masalah yang sama persis. Saya tidak bisa melakukan, dan pembersihan akan gagal.
Menggunakan klien baris perintah saya bisa melihat pesan kesalahan yang menunjukkan bahwa itu gagal untuk memindahkan file dari
.svn/props
ke.svn/prop-base
.Saya melihat file tertentu dan menemukan bahwa itu ditandai hanya-baca. Setelah menghapus atribut read-only saya dapat membersihkan folder dan komit perubahan saya.
sumber
Mungkin saja Anda memiliki masalah dengan dua nama file yang berbeda hanya dengan huruf besar. Jika Anda mengalami masalah ini, membuat direktori copy yang berfungsi tidak akan menyelesaikan masalah.
Filesystem Windows saat ini (mis. Jelek) hanya tidak grok perbedaan antara
Filename
danFILEname
. Anda memiliki dua kemungkinan perbaikan:svn rename -m "broken filename case" http://server/repo/FILEname http://server/repo/filename
sumber
Jalankan
svn cleanup
perintah di terminal (jika gagal dari Eclipse yang merupakan kasus saya):Saya mencoba berbagai solusi yang dijelaskan di sini, tetapi tidak ada yang berhasil .
Tim Aksi → Pembaruan ke kepala gagal:
Tim Aksi → Pembersihan gagal dengan kesalahan yang sama.
Solusi yang berhasil bagi saya: jalankan perintah pembersihan svn di terminal .
Perintah itu berhasil.
Kemudian Tim → Pembaruan di Eclipse bekerja lagi.
Catatan: versi SVN saya adalah 1.9.3.
Periksa juga jawaban Chris jika
svn cleanup
tidak berhasil.sumber
Saya sudah coba lakukan
svn cleanup
melalui konsol dan mendapat kesalahan seperti:Jadi saya membuat file ini secara manual (kosong) dan melakukannya
svn cleanup
lagi. Kali ini selesai OK.sumber
Saya memiliki masalah yang sama. Bagi saya penyebabnya adalah konflik dengan EasySVN dan (TortoiseSVN atau hanya SVN). Saya memiliki pembaruan otomatis dan melakukan dengan EasySVN (yang tidak berfungsi).
Ketika saya mematikan ini, saya tidak dapat membersihkan, melakukan, atau memperbarui. Tidak satu pun dari solusi di atas yang berfungsi, tetapi mem-boot ulang lakukan :)
sumber
Saya baru saja mengalami masalah yang sama pada Windows 7 64-bit. Saya menjalankan konsol sebagai administrator dan menghapus direktori .svn dari direktori masalah (mendapat kesalahan tentang log atau sesuatu, tetapi mengabaikannya). Kemudian, di penjelajah, saya menghapus direktori masalah yang tidak lagi ditampilkan sebagai di bawah kontrol versi. Kemudian, saya menjalankan pembaruan dan hal-hal berjalan seperti yang diharapkan.
sumber
Jika masalahnya adalah sensitivitas huruf besar-kecil (yang bisa menjadi masalah saat memeriksa ke Mac, serta Windows) dan Anda tidak memiliki opsi untuk memeriksa ke sistem * nix, yang berikut ini akan berfungsi. Inilah proses dari awal:
(Checkout terjadi ... lalu ...)
Di sini SVN sedang mencoba memeriksa dua file dengan nama yang mirip yang hanya berbeda berdasarkan kasus -
Header_3_noBookmark.gif
danHeader_3_nobookmark.gif
. Filesystem Mac default untuk tidak sensitif huruf dengan cara yang menyebabkan SVN tersedak dalam situasi seperti ini. Begitu...Namun, berlari
svn cleanup
tidak bekerja, seperti yang kita tahu.spacer.gif
bukan masalah di sini ... Hanya tidak bisa melewati kesalahan sebelumnya ke file berikutnya. Jadi saya menghapus semua file dari direktori selain.svn
, dan menghapus log SVN. Ini membuat pembersihan berfungsi, sehingga saya bisa memeriksa dan mengganti nama file yang menyinggung.Setelah ini, saya dapat kembali ke direktori root proyek, dan berlari
svn up
untuk memeriksa sisanya.sumber
Setiap kali saya memiliki masalah yang sama saya menggunakan rsync (NB: Saya menggunakan Linux atau Mac OS X) untuk membantu seperti:
Dengan begitu Anda memiliki checkout baru, tetapi dengan file kerja yang sama. Bagi saya ini selalu berfungsi seperti pesona.
sumber
Saya bertemu dengan itu belakangan ini. Trik untuk saya adalah setelah memilih "Bersihkan", dalam dialog opsi popup, centang "Break Locks", dan kemudian "OK". Itu berhasil membersihkan bagi saya.
sumber
Subclipse menjadi bingung oleh perilaku penguncian Windows yang benar-benar jahat. Unlocker adalah temanmu. Ini dapat menemukan file yang terkunci dan melepaskan kunci secara paksa.
sumber
(Sebelum Anda mencoba memindahkan folder dan melakukan checkout baru.)
Hapus folder file yang menyinggung berada di - ya, bahkan
.svn
folder, kemudian lakukansvn cleanup
di folder paling atas / orang tua.sumber
Saya menghadapi masalah yang sama. Setelah beberapa pencarian di Internet ditemukan artikel di bawah ini . Kemudian menyadari bahwa saya login sebagai pengguna yang berbeda dari pengguna yang saya gunakan untuk mengatur SVN di bawah, masalah izin pada dasarnya.
sumber
Ketika saya menghadapi masalah ini dengan TortoiseSVN (Windows), saya pergi ke Cygwin dan menjalankan ' svn cleanup ' dari sana; itu membersihkan dengan benar untuk saya, setelah semuanya bekerja dari TortoiseSVN.
sumber
Jawaban di sini tidak membantu saya, tetapi sebelum memeriksa proyek lagi, saya menutup dan membuka Eclipse (Subversive adalah klien SVN saya) dan masalahnya hilang.
sumber
Ini mungkin tidak berlaku dalam semua situasi, tetapi ketika saya baru-baru ini mengalami masalah ini, "perbaikan" saya adalah untuk memutakhirkan paket Subversion pada sistem saya. Saya telah menjalankan 1.4.something, dan ketika saya memutakhirkan ke yang terbaru (1.6.6 dalam kasus saya) checkout berhasil.
(Saya memang mencoba mengunduhnya kembali, tetapi checkout ke direktori bersih selalu terhenti di tempat yang sama.)
sumber
Penguncian hanya-baca terkadang terjadi pada drive jaringan dengan Windows. Coba putuskan dan sambungkan kembali. Kemudian bersih-bersih dan perbarui.
sumber
Setelah melalui sebagian besar solusi yang dikutip di sini, saya masih mendapatkan kesalahan.
Masalahnya adalah OS X tidak sensitif huruf . Memeriksa direktori yang memiliki dua file dengan nama yang sama, tetapi huruf besar yang berbeda menyebabkan masalah. Misalnya, ApproximationTest.java dan Approximationtest.java tidak boleh berada di direktori yang sama. Segera setelah kami menyingkirkan salah satu file, masalah hilang.
sumber
Saya mengalami masalah ketika mengikuti Pembaruan, SVN menunjukkan folder sebagai konflik. Anehnya, ini hanya dapat dilihat melalui baris perintah - TortoiseSVN berpikir semuanya baik-baik saja.
svn cleanup
,svn revert
,svn update
Dansvn resolve
semua berhasil di memperbaiki ini.Saya akhirnya memecahkan masalah sebagai berikut:
Setelah itu, semuanya baik-baik saja.
Perhatikan bahwa saya tidak memiliki perubahan lokal, jadi saya tidak tahu apakah Anda akan berisiko jika melakukannya. Saya tidak menggunakan metode hapus / perbarui yang disarankan oleh orang lain - saya masuk ke keadaan ini dengan mencoba itu pada direktori my_dir / sub_dir / sub_sub_dir (yang dimulai dengan gejala yang sama) - jadi saya tidak ingin mengambil risiko memperburuk keadaan lagi!
Tidak cukup pada topik, tetapi mungkin membantu jika seseorang menemukan posting ini seperti yang saya lakukan.
sumber
Tidak tidak Tidak! Jika Anda menggunakan SVN 1.7 atau lebih tinggi, perintah pembersihan harus melakukan pekerjaan!
Saya juga membuat beberapa percobaan dan menemukan bahwa solusi (setidaknya di Eclipse ) menjalankan pembersihan hanya untuk folder yang ditentukan dalam pesan kesalahan dan bukan seluruh proyek!
sumber
Saya
sudo chmod 777 -R .
berhasil mengubah izin. Tanpasudo
, itu tidak akan berhasil, memberi saya kesalahan yang sama seperti menjalankan perintah lain.Sekarang Anda dapat melakukan
svn update
atau apa pun, tanpa harus menghapus seluruh direktori Anda dan membuatnya kembali. Ini sangat membantu, karena IDE atau editor teks Anda mungkin sudah membuka tab tertentu, atau memiliki masalah sinkronisasi. Anda tidak perlu memotong dan mengganti direktori kerja Anda dengan metode ini.sumber
Saya memecahkan masalah ini dengan menyalin beberapa direktori .svn rekan saya ke tambang dan kemudian memperbarui copy pekerjaan saya. Itu solusi yang bagus, cepat dan bersih.
sumber
Ada beberapa saran yang sangat bagus di jawaban sebelumnya, tetapi jika Anda memiliki masalah dengan TortoiseSVN di Windows (produk yang bagus, tapi ...) selalu mundur ke baris perintah dan lakukan "pembersihan svn" sederhana terlebih dahulu.
Dalam banyak keadaan klien Windows tidak akan menjalankan perintah pembersihan, tetapi pembersihan berfungsi dengan baik menggunakan utilitas baris perintah SVN.
sumber
Saat menghadapi masalah serupa, penggabungan manual dalam tampilan sinkronisasi repositori membantu menyelesaikan masalah.
Satu nama file bertentangan dengan yang lain dan jelas menyebutkan masalah ini. Mengganti nama file yang lebih baru ke nama lain menyelesaikannya.
sumber