SVN Repository Corruption - SvnRepo/DB/Current

SVN Repository Corruption - SvnRepo/DB/Current

Baru -baru ini salah satu repositori di server SVN saya rusak. Setelah memeriksa kami menemukan bahwa ada masalah dengan file SVNRepo/DB/saat ini rusak karena sektor -sektor buruk di hardisk saya. Saya mencoba memeriksa repositori ini tetapi gagal.

Bagaimana memulihkan repositori svn yang rusak -

Sebelum mulai pemulihan, kita harus tahu tentang file ini. File ini berisi nomor revisi terbaru dari repositori Anda. Pada setiap komit server SVN meningkatkan nilai ini dengan +1 dan tetap pada revisi terakhir.

Sekarang jika Anda ingat versi repositori Anda, cukup buat ulang file baru dan masukkan nomor itu di file ini. Tetapi jika Anda tidak mengingatnya, maka masalahnya dimulai, tetapi jangan khawatir. Ikuti langkah -langkah di bawah ini untuk menemukan nomor revisi.

  • Masukkan nomor apa saja -

    Masukkan angka dan cobalah untuk tetap lebih tinggi dari yang diharapkan revisi terakhir. Dalam kasus saya, saya telah menempatkan 99999 di file DB/saat ini.

    [Email Dilindungi]: ~ $ Cat DB/Saat Ini 99999 
  • Repositori cadangan -

    Sekarang gunakan perintah berikut untuk membuat cadangan repositori ini. Saat Anda menjalankan perintah berikut, itu mungkin berakhir dengan kesalahan seperti di bawah ini.

    [email dilindungi]: ~ $ svnadmin dump/path/to/repo>/backup/myrepo.dump * dumped revisi 0. * Dumped Revisi 1 ... * Dumped Revisi 576. * Revisi 577 yang dibuang. * Dumped Revisi 578. Svnadmin: E160006: Tidak ada revisi seperti itu 579  

    Sesuai output Anda, kami mendapatkan bahwa repositori kami memiliki 578 revisi. Anda bisa memasukkan nilai ini di file DB/saat ini. Tetapi jika ada lagi file yang rusak, maka lanjutkan ke langkah -langkah berikut.

  • Repositori cadangan lagi -

    Sekarang kami memiliki nomor revisi terakhir, jadi tentukan revisi dari 0 ke revisi terakhir ke cadangan.

    [Email Dilindungi]: ~ $ svnadmin dump -r 0: 578/path/to/repo>/cadangan/myrepo.membuang 
  • Menciptakan kembali repositori baru -

    Sekarang hapus repositori lama yang rusak dan buat yang baru dengan nama yang sama atau nama lain.

    [Email Dilindungi]: ~ $ mv/path/to/repo/backup/[email dilindungi]: ~ $ svnadmin membuat/path/to/repo 
  • Muat repositori dari cadangan -

    Sekarang muat data repositori dari file cadangan menggunakan perintah berikut.

    [Email Dilindungi]: ~ $ Svnadmin Load/Path/to/Repo < /backup/myrepo.dump