Salam,
Pagi ini, rencana mau update+commit SmartU agar bisa membagi task ke programmer lain. Svn Smartu masih bermasalah, dan untuk kasus sebuku, kebetulan bisa update, tapi commit selalu gagal.
Karena penasaran, seharian penuh kerjaan cuma ngoprek svn, sampai gak sempat ngerjain yang lain (kecuali ikut presentasi mesin finger print).
Sebelumnya sudah coba "svnadmin recover /home/svn/smartu" dan selalu gagal.
Pagi ini coba download buku manual SVN, ada beberapa perintah svnadmin yang bisa dimanfaatkan dan beberapa hal yang mungkin bisa dicoba. Sayang sebagian besar tetap gagal.
Terpikir untuk backup database (karena sepertinya yang rusak adalah dabatase - Berkeley DB), kemudian coba buat svn baru, dan restore hasil backup database tersebut. Googling buat nyari cara backup database, sambil coba baca buku manualnya. Ada perintah db_dump dan db_load. Tapi waktu dicoba selalu gagal.
Dari sebuah site, lupa URLnya, ketemu ada petunjuk yang menganjurkan untuk menghapus semua file log.00*** dan file __db.** di folder db. Setelah buat backup, aku bereksperimen dengan backup tersebut, anggaplah smartu2.
*Pertama,* buat svn baru.
$ svnadmin create newsmartu
*Kedua,* hapus file-file yang dianggap tidak diperlukan di folder db (log.00* dan __db*).
$ rm log.00* | rm __db*
Selanjutnya recover svn-nya
$ svnadmin recover /home/svn/smartu2
Hasilnya recovery sukses.... (kenapa gak berhenti di sini kalau memang sudah sukses? karena suksesnya sementara, nanti juga error lagi).
*Ketiga,* buat backup database dari repository tersebut.
$ svnadmin dump /home/svn/smartu2 > smartu2.dump
Mulailah proses berjalan ...
* Dumped revision 0
* Dumped revision 1
... dst ....
Sayangnya proses terhenti di revisi 179. Lalu muncul pesan error PANIC seperti biasanya :((
Untunglah di buku manual ada petunjuk bahwa database Berkeley mendukung incremental backup, dan ada perintah untuk melakukan backup per revision, misalnya hanya ingin mengambil revisi 0 sampai 100, kemudian ambil lagi revisi 101 sampai 200 di file terpisah.
Jadi aku coba mengulangi tahap kedua (melakukan recover terhadap repository smartu2). Kemudian jalankan perintah.
$ svnadmin dump /home/svn/smartu2 180:300 --incremental > smartu2.180.300
Setiap kali proses berhenti di revisi tertentu, aku mengulangi perintah tersebut sampai ke revisi terakhir (1040)
$ svnadmin dump /home/svn/smartu2 301:600 --incremental > smartu2.301.600
$ svnadmin dump /home/svn/smartu2 357:600 --incremental > smartu2.357.600
.... dst ... sampai ..
$ svnadmin dump /home/svn/smartu2 801:1040 --incremental > smartu2.801.1040
*Keempat,* mulai restore data dump tersebut ke svn baru yang sudah dibuat.
$ svnadmin load /home/svn/newsmartu <>
$ svnadmin load /home/svn/newsmartu <>
... dst sampai ..
$ svnadmin load /home/svn/newsmartu <>
*Kelima,* setelah semua selesai di restore, coba checkout newsmartu. Sukses.
Masalah mulai muncul saat mau commit. Pesan errornya cuma bilang kalau gagal commit, tanpa ada alasan yang jelas ... :(( pusinggggg
--- makan dulu, jalan-jalan ke Mal, refreshing --------
*Keenam,* ternyata baru nyadar, kalau belum dibuat daftar user di repository yang baru #-o. Tinggal copy isi data yang ada di folder conf di repository lama ke folder conf di repository baru.
$ cp /home/svn/smartu2/conf/* /home/svn/newsmartu/conf
Coba commit, mulai diproses ... tapi terhenti lagi dengan pesan tidak ada permission di folder db untuk membuat subfolder. Nah, pesan ini jelas. Jadi, *ketujuh,* ubah hak milik folder repository yang baru tersebut menjadi milik user svn (soalnya selama proses menggunakan user root).
$ chown svn:user -R /home/svn/smartu2/*
Coba commit lagi ... SUKSES!!!!! \:D/
*Kedelapan,* biar gak capek-capek switch URL repository, coba rename repository baru dengan repository yang lama.
$ mv smartu smartu.old
$ mv newsmartu smartu
Coba lagi update dan commit, ... SUKSES!!! \:D/
Iseng-iseng dan penasaran seharian ternyata gak sia-sia ... ! \:D/
Ayo,,, siapa yang mau nraktir???? Semangat!
NB:
Moga-moga aja bener-bener sukses, gak kayak percobaan sebelumnya :D
Pagi ini, rencana mau update+commit SmartU agar bisa membagi task ke programmer lain. Svn Smartu masih bermasalah, dan untuk kasus sebuku, kebetulan bisa update, tapi commit selalu gagal.
Karena penasaran, seharian penuh kerjaan cuma ngoprek svn, sampai gak sempat ngerjain yang lain (kecuali ikut presentasi mesin finger print).
Sebelumnya sudah coba "svnadmin recover /home/svn/smartu" dan selalu gagal.
Pagi ini coba download buku manual SVN, ada beberapa perintah svnadmin yang bisa dimanfaatkan dan beberapa hal yang mungkin bisa dicoba. Sayang sebagian besar tetap gagal.
Terpikir untuk backup database (karena sepertinya yang rusak adalah dabatase - Berkeley DB), kemudian coba buat svn baru, dan restore hasil backup database tersebut. Googling buat nyari cara backup database, sambil coba baca buku manualnya. Ada perintah db_dump dan db_load. Tapi waktu dicoba selalu gagal.
Dari sebuah site, lupa URLnya, ketemu ada petunjuk yang menganjurkan untuk menghapus semua file log.00*** dan file __db.** di folder db. Setelah buat backup, aku bereksperimen dengan backup tersebut, anggaplah smartu2.
*Pertama,* buat svn baru.
$ svnadmin create newsmartu
*Kedua,* hapus file-file yang dianggap tidak diperlukan di folder db (log.00* dan __db*).
$ rm log.00* | rm __db*
Selanjutnya recover svn-nya
$ svnadmin recover /home/svn/smartu2
Hasilnya recovery sukses.... (kenapa gak berhenti di sini kalau memang sudah sukses? karena suksesnya sementara, nanti juga error lagi).
*Ketiga,* buat backup database dari repository tersebut.
$ svnadmin dump /home/svn/smartu2 > smartu2.dump
Mulailah proses berjalan ...
* Dumped revision 0
* Dumped revision 1
... dst ....
Sayangnya proses terhenti di revisi 179. Lalu muncul pesan error PANIC seperti biasanya :((
Untunglah di buku manual ada petunjuk bahwa database Berkeley mendukung incremental backup, dan ada perintah untuk melakukan backup per revision, misalnya hanya ingin mengambil revisi 0 sampai 100, kemudian ambil lagi revisi 101 sampai 200 di file terpisah.
Jadi aku coba mengulangi tahap kedua (melakukan recover terhadap repository smartu2). Kemudian jalankan perintah.
$ svnadmin dump /home/svn/smartu2 180:300 --incremental > smartu2.180.300
Setiap kali proses berhenti di revisi tertentu, aku mengulangi perintah tersebut sampai ke revisi terakhir (1040)
$ svnadmin dump /home/svn/smartu2 301:600 --incremental > smartu2.301.600
$ svnadmin dump /home/svn/smartu2 357:600 --incremental > smartu2.357.600
.... dst ... sampai ..
$ svnadmin dump /home/svn/smartu2 801:1040 --incremental > smartu2.801.1040
*Keempat,* mulai restore data dump tersebut ke svn baru yang sudah dibuat.
$ svnadmin load /home/svn/newsmartu <>
$ svnadmin load /home/svn/newsmartu <>
... dst sampai ..
$ svnadmin load /home/svn/newsmartu <>
*Kelima,* setelah semua selesai di restore, coba checkout newsmartu. Sukses.
Masalah mulai muncul saat mau commit. Pesan errornya cuma bilang kalau gagal commit, tanpa ada alasan yang jelas ... :(( pusinggggg
--- makan dulu, jalan-jalan ke Mal, refreshing --------
*Keenam,* ternyata baru nyadar, kalau belum dibuat daftar user di repository yang baru #-o. Tinggal copy isi data yang ada di folder conf di repository lama ke folder conf di repository baru.
$ cp /home/svn/smartu2/conf/* /home/svn/newsmartu/conf
Coba commit, mulai diproses ... tapi terhenti lagi dengan pesan tidak ada permission di folder db untuk membuat subfolder. Nah, pesan ini jelas. Jadi, *ketujuh,* ubah hak milik folder repository yang baru tersebut menjadi milik user svn (soalnya selama proses menggunakan user root).
$ chown svn:user -R /home/svn/smartu2/*
Coba commit lagi ... SUKSES!!!!! \:D/
*Kedelapan,* biar gak capek-capek switch URL repository, coba rename repository baru dengan repository yang lama.
$ mv smartu smartu.old
$ mv newsmartu smartu
Coba lagi update dan commit, ... SUKSES!!! \:D/
Iseng-iseng dan penasaran seharian ternyata gak sia-sia ... ! \:D/
Ayo,,, siapa yang mau nraktir???? Semangat!
NB:
Moga-moga aja bener-bener sukses, gak kayak percobaan sebelumnya :D
Comments