Ketika saya mencoba memperbarui beberapa file dari Subversion, saya mendapatkan kesalahan:
org.tigris.subversion.javahl.ClientException:
Checksum mismatch while updating 'D:\WWW\Project\\.svn\text-base\import.php.svn-base'; expected: '3f9fd4dd7d1a0304d8020f73300a3e07', actual: 'cd669dce5300d7035eccb543461a961e'
Mengapa saya mendapatkan ini? Bagaimana cara memperbaikinya?
Jika Anda menggunakan SVN 1.7+, ada solusi yang dijelaskan di sini .
Sekadar rekap:
svn update --set-depth empty
(catatan: ini akan menghapus file Anda, jadi buat salinannya dulu!)svn update --set-depth infinity
sumber
Saya punya masalah yang sama. Penyedia utama adalah antivirus "FortiClient" (antivirus + VPN CLient). Ketika saya menonaktifkannya - semua pembaruan / pembayaran dilakukan dengan benar
sumber
Saya menemukan cara yang lebih mudah untuk memperbaiki masalah ini. Anda tidak dapat melakukan ini langsung dari gerhana. Langkah:
Ini akan memulihkan folder basis teks di .svnfolder. Ketidakcocokan checksum saat memperbarui kesalahan tidak akan muncul lebih lanjut.
sumber
Ini terjadi pada saya menggunakan plug-in dan sinkronisasi Eclipse. File yang menyebabkan masalah tidak memiliki perubahan lokal (dan sebenarnya tidak ada perubahan jarak jauh sejak pembaruan terakhir saya). Saya memilih "kembali" untuk file tersebut, tanpa modifikasi lain pada file, dan semuanya kembali normal.
sumber
Saya mengalami kesalahan yang sama tetapi untuk satu file. Di IntelliJ IDEA saya dapat membuat salinan file, lalu masuk ke proyek dan menghapus file yang dimaksud, lalu berhasil berkomitmen. Kemudian, saya membuat file baru dengan nama yang sama dan menyalin isinya kembali ke dalamnya. Saya kira Anda akan kehilangan riwayat revisi tetapi berhasil.
sumber
Jika Anda memiliki rekan kerja yang bekerja dengan Anda:
1) minta dia untuk mengganti nama file yang menyebabkan masalah dan
commit
2) Anda
update
(sekarang Anda melihat file dengan checksum tidak valid dengan nama berbeda)3) ganti namanya kembali ke nama aslinya
4)
commit
(dan minta kolega Andaupdate
untuk mendapatkan kembali nama file dalam keadaan awalnya)Ini memecahkan masalah saya.
sumber
Saya menemukan solusi yang sangat bagus, yang MEMECAHKAN masalah saya. Caranya adalah dengan mengedit svn DB (wc.db).
Solusinya dijelaskan di halaman ini: http://www.exchangeconcept.com/2015/01/svn-e155037-previous-operation-has-not-finished-run-cleanup-if-it-was-interrupted/
Jika tautan turun, lihat dan ikuti petunjuk ini:
Saya menggunakan alat sqlite dari http://sqlitebrowser.org/ .
sumber
Saya menggunakan Tortoise SVN, setelah menelusuri semua solusi di halaman ini dan tidak berfungsi,
Saya akhirnya mencadangkan file masalah. dan gunakan
Repo Browser
hapus file masalah di dalamnya, lalu perbarui folder lokal sehingga file di folder lokal dihapus. Kemudian salin kembali file cadangan danAdd > Commit
, kemudian saya berhasil memperbarui.Satu-satunya kelemahan dari metode ini adalah riwayat file ini akan dihapus.
sumber
Untuk mengatasi ini ikuti langkah-langkah berikut ini:
Jika masih tidak berhasil. Coba ini. Ini hanya solusi:
Ini akan mendapatkan file versi terbaru dari repositori dan semua konflik akan diselesaikan.
sumber
memiliki masalah serupa di server tetapi direktori SVN sangat besar, tidak ingin menghapus dan menyinkronkan ulang jadi saya hanya membuat salinan file secara lokal dan kemudian menghapusnya. Ketika pembaruan berhasil dan menambahkan file kembali.
sumber
coba hapus file dan hapus referensi file dari entri file di bawah direktori .svn
sumber
Saya mengalami kesalahan serupa dan memperbaikinya sebagai berikut:
('Perbaikan' saya didasarkan pada asumsi yang mungkin atau mungkin tidak benar karena saya tidak tahu banyak tentang cara kerja subversi secara internal, tetapi pasti berhasil untuk saya)
Saya berasumsi bahwa .svn \ text-base \ import.php.svn-base diharapkan cocok dengan komit terbaru.
Ketika saya memeriksa file tempat saya mengalami kesalahan, file dasar TIDAK cocok dengan komit terbaru di repositori.
Saya menyalin teks dari komit terbaru dan menyimpannya di folder .svn, mengganti file yang salah (membuat salinan cadangan jika asumsi saya salah). (file ditandai hanya baca, saya mengosongkan bendera itu, menimpa, dan menyetelnya kembali ke hanya baca)
Saya kemudian bisa berkomitmen dengan sukses.
sumber
Solusi saya adalah:
sumber
1. 'perbarui ke pengembalian' centang 'hanya item ini' di bawah direktori 2. perbarui lagi centang 'rekursif sepenuhnya'
sumber