SVN REPOSITORY REGRUPTION - SVNREPO/DB/Semasa

SVN REPOSITORY REGRUPTION - SVNREPO/DB/Semasa

Baru -baru ini salah satu repositori di pelayan SVN saya telah rosak. Selepas memeriksa kami mendapati bahawa terdapat masalah dengan fail svnrepo/db/semasa telah rosak kerana sektor buruk dalam hardisk saya. Saya cuba menyemak repositori ini tetapi gagal.

Cara memulihkan repositori SVN yang rosak -

Sebelum memulakan pemulihan kita harus tahu mengenai fail ini. Fail ini mengandungi bilangan semakan terkini repositori anda. Pada setiap pelayan komit SVN meningkatkan nilai ini dengan +1 dan simpan ini pada semakan terakhir.

Sekarang jika anda ingat versi repositori anda, cipta semula fail baru dan masukkan nombor itu dalam fail ini. Tetapi jika anda tidak mengingatnya, maka masalahnya bermula, tetapi jangan risau. Ikuti langkah di bawah untuk mencari nombor semakan.

  • Masukkan nombor mana -mana -

    Masukkan nombor dan cuba simpannya lebih tinggi daripada yang dijangkakan semakan terakhir. Dalam kes saya, saya telah memasukkan 99999 dalam fail db/semasa.

    [dilindungi e -mel]: ~ $ CAT DB/Semasa 99999 
  • Repositori sandaran -

    Sekarang gunakan arahan berikut untuk membuat sandaran repositori ini. Apabila anda menjalankan arahan berikut, ia mungkin berakhir dengan ralat seperti di bawah.

    [dilindungi e -mel]: ~ $ svnadmin dump/path/to/repo>/sandaran/myrepo.Dump * Dumped Revision 0. * Semakan yang dibuang 1 ... * Semakan yang dibuang 576. * Semakan yang dibuang 577. * Semakan yang dibuang 578. Svnadmin: E160006: Tiada Semakan 579  

    Mengikut output anda, kami mendapat repositori kami 578 semakan. Anda hanya boleh meletakkan nilai ini dalam fail db/semasa anda. Tetapi jika ada lagi fail yang rosak, maka teruskan langkah -langkahnya.

  • Repositori sandaran lagi -

    Sekarang kita mempunyai nombor semakan terakhir, jadi tentukan semakan dari 0 hingga semakan terakhir untuk sandaran.

    [dilindungi e -mel]: ~ $ svnadmin dump -r 0: 578/laluan/ke/repo>/sandaran/myrepo.pembuangan 
  • Buat semula repositori baru -

    Sekarang keluarkan repositori lama yang rosak dan buat yang baru dengan nama yang sama atau nama lain.

    [dilindungi e -mel]: ~ $ mv/path/to/repo/sandaran/[dilindungi e -mel]: ~ $ svnadmin create/path/to/repo 
  • Memuat repositori dari sandaran -

    Sekarang memuatkan data repositori dari fail sandaran menggunakan arahan berikut.

    [dilindungi e -mel]: ~ $ svnadmin beban/laluan/ke/repo < /backup/myrepo.dump