Bagaimana cara memperbaiki repositori yang rusak (yang memiliki direktori .svn terpusat)?

19

Saya baru-baru ini memutakhirkan instalasi TortoiseSVN saya ke versi 1.7.1. Ini memaksa saya untuk meningkatkan copy pekerjaan saya juga. Pembaruan menghapus semua (kecuali satu) direktori .svn dari semua subdirektori yang hanya menyisakan satu di root.

Sekarang tiba-tiba (tentu saja; saya mencurigai perangkat lunak antivirus saya) ada kesalahan ketika saya misalnya mencoba untuk membersihkan copy pekerjaan. Saya juga tidak bisa melakukan apa pun.

Pesan kesalahan saat membersihkan adalah:

Pembersihan gagal memproses jalur berikut: C: \ svn

Tidak dapat membuka file 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base': Sistem tidak dapat menemukan file yang ditentukan.

Saya melacak kesalahan terkait dengan keberadaan satu direktori dalam copy pekerjaan. Jika saya ganti namanya maka semuanya berfungsi. Ketika itu ada saya mendapatkan kesalahan. Saya juga menghapusnya dan memeriksanya kembali. Tidak ada perubahan, kesalahan berlanjut.

Dengan versi sebelumnya saya dapat memperbaiki kerusakan di .svn dengan mudah: cukup hapus folder yang menyinggung dan periksa lagi. Saya tidak bisa melakukan ini lagi karena sekarang dir .svn terpusat.

Apa yang bisa saya lakukan untuk memperbaiki copy pekerjaan saya?

Heinrich Ulbricht
sumber

Jawaban:

21

Tidak dapat membuka file 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base

Saya hanya memiliki kesalahan yang sama dan saya benar-benar harus membuat file itu dengan notepad dan kemudian pembersihan berhasil.

Dave Storm
sumber
1
Tetapi apakah itu aman untuk dilakukan? Akankah "pembersihan svn" membuat file itu tidak kosong lagi? (Karena sudah pasti sebelumnya, bukan?)
hans_meine
Saya dapat memverifikasi bahwa metode ini berfungsi, saya tidak yakin apa hasil / kerugian dari membuat file kosong - tetapi tidak membuatnya, tidak mengizinkan saya untuk "melanjutkan dengan komit"
nrathaus
4

Alih-alih membuat file kosong (yang tidak berani saya lakukan), saya melakukan checkout segar sementara hanya pada direktori yang terpengaruh (menentukan revisi yang sama) dan menyalin file yang hilang dari subfolder .svn yang baru ke dalam direktori kerja yang rusak. .

Untuk mengilustrasikan hal ini lebih lanjut, dalam kasus saya, file yang dikeluhkan oleh svn adalah .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base, yang persis jalan yang dapat ditemukan di checkout parsial yang segar.

hans_meine
sumber
3

Kami memiliki masalah yang sama setelah memutakhirkan dari versi yang lebih lama ke Tortoise SVN 1.7.7.

Karena saya tidak menemukan solusi lain, saya menghapus copy pekerjaan lokal dan memeriksanya lagi. Sekarang berfungsi dengan baik.

Tomas Chlouba
sumber
2

Saya mendapatkan masalah sementara saya membatalkan penggabungan. Saya tidak bisa melakukan tindakan SVN. Pada melakukan pembersihan SVN itu memberikan kesalahan bahwa tidak dapat menemukan file yang ditentukan yang menyebabkan kegagalan pembersihan.

Saya membuat file dummy dengan nama persis di folder yang ditentukan dan melakukan pembersihan SVN.

Kemudian saya bisa melanjutkan.

pengguna304100
sumber
0

Saya memiliki masalah yang sama, di mana dikatakan bahwa file C:\working_copy\dir\file.xmltidak dapat ditemukan. Saya telah menghapus dirdirektori. Dalam kasus saya, cukup menambahkan dirfolder & file.xmlfile baru (dengan teks kosong) memungkinkan pembersihan untuk dilanjutkan, maka saya dapat memperbarui kembali copy pekerjaan yang benar.

jevon
sumber
0

Masalah saya adalah bahwa saya perlu mengkonfigurasi ulang semua proyek di IDE saya jika saya check out dari repositori awal, saya tidak peduli tentang menyimpan perubahan.

Saya telah menghapus direktori .svn dan checkout repositori di direktori yang sama.

Masalah terselesaikan: Saya dapat melakukan semua operasi svn dan proyek masih dikonfigurasi dalam IDE

Serov Shapoval
sumber