Buat mas Arie, mohon bantuannya untuk sekedar mencoba :)

Daripada gw ngomong doang kan mendingan coding + implementasi, 'tul ga? 
=)) Nah ini salah satu usaha gw

BTW situs Buku Ruby sekarang pake cron untuk otomatis mengupdate data 
dari Launchpad, kira2 5 menit sekali... jadi kalo di-refresh, agak sabar 
yach karena gak instant, tapi pasti muncul koq..

------------------------------------------------------------------------

Taken from: 
http://buku.ruby-id.web.id/articles/Cara%20Kerja%20Situs%20Web%20Buku%20Ruby.markdown.txt

------------------------------------------------------------------------


  Situs Web Buku Ruby

Berawal dari Arie <http://ariekusumaatmaja.wordpress.com/> yang lagi 
keracunan git, akhirnya gw jadi ikutan2 pingin nyoba Bazaar 
<http://bazaar-vcs.org/>.

Selidik punya selidik, akhirnya nekat mbikin account di Launchpad 
<http://launchpad.net/>, trus mbikin project, mbikin team (yang pada 
awalnya masih sendirian, nggak tahu deh kalo sekarang), trus mbikin 
branch Bazaar sendiri.

Setelah penuh susah payah memindahkan repository Subversion Buku Ruby 
asli yang 25 MB ituh!! (walaupun berhasil). Jadi kepikiran gimana 
caranya mbikin "wiki" tapi "powered by Bazaar".

Kupikir, untuk menampilkannya kan file-filenya tinggal dicheckout dari 
repository Bazaar, lalu ditampilkan pake formatting yang diinginkan, 
misalnya Markdown, Textile, dsb.

Jadilah mbikin repository satu lagi yaitu simple 
<https://code.launchpad.net/%7Eruby-id/bukuruby/simple>.

Oh ya perlu diketahui kalo mbikin branch itu di Bazaar sangat mudah. 
Lebih gampang daripada mbikin repository di Subversion. Udah gitu, bisa 
langsung "remote" lagi. Maksudnya, langsung muncul di sana tuh... di 
Launchpad.


    Cara makenya

Pertama Anda harus install Bazaar <http://bazaar-vcs.org/> terlebih dahulu.

Kalo di Ubuntu sih gampang:

|sudo aptitude install bzr
|

Untuk mendownload file-file di sini silakan "clone" atau "branch" (sama 
saja, cuma istilah doang) branch yang diinginkan. Di sini branch standar 
(induk)-nya adalah ~ruby-id/bukuruby/simple.

|bzr branch http://bazaar.launchpad.net/~ruby-id/bukuruby/simple
|

Itu akan mendownload branch 'simple' beserta historynya, jadi Anda bisa 
commit lokal dan nantinya bisa di-push juga.

Tapi jika tidak ingin download banyak, dan nggak butuh commit lokal, 
bisa pake checkout saja. Ini lebih hemat bandwidth:

|bzr checkout http://bazaar.launchpad.net/~ruby-id/bukuruby/simple
|


    Server Situs Web Buku Ruby

Server Buku Ruby juga tersedia secara gratis koq! Dan source codenya 
boleh dipelototin oleh siapa pun.

Cara downloadnya:

|bzr branch http://bazaar.launchpad.net/~ceefour/bukuruby/simple
bzr branch http://bazaar.launchpad.net/~ceefour/bukuruby/web
|

Jangan lupa simple-nya didownload dulu karena Situs Buku Ruby 
membutuhkan file-file tersebut sebagai data. Dan dua repository tersebut 
harus ditaruh di tempat yang sama, berdampingan gitu lho...

Kalo udah selesai tinggal:

|cd web
ruby script/server
|

Oh ya dia butuh gem SuperRedCloth, BlueCloth, dan juga sqlite3-ruby:

|sudo gem install SuperRedCloth
sudo gem install BlueCloth
sudo gem install sqlite3-ruby
|

Sebenarnya sqlite3-ruby tidak diperlukan tapi saya nggak tahu gimana 
caranya matiin ActiveRecord. Cape juga deh ya..


    Commit lokal

Kalo Anda tadi pake 'bzr branch' dan bukan 'bzr checkout' maka Anda bisa 
commit lokal sesuka hati, mau kembali ke history sebelumnya juga nggak 
masalah.

Jadi sebaiknya gunakan 'bzr branch' :)


    Menambah materi / modifikasi

Untuk mengedit file, tinggal edit file tersebut lalu:

|bzr ci
|

Untuk menambah file, bikin dulu filenya lalu:

|bzr add
bzr ci
|


    Berkontribusi kembali

Untuk berkontribusi, Anda bisa mem-push perubahan Anda ke Bazaar server 
favorit Anda.

Yang paling gampang dan murah (alias *GRATIS*), adalah di Launchpad 
<http://launchpad.net/>.

Apabila Anda register account, Anda bisa membuat SSH key yang bisa 
digunakan untuk "push" ke server Bazaar di Launchpad.

Anda tidak harus push ke branch aslinya... Ini kan decentralized SCM, 
bo'! Bikin aja branch sendiri, kenapa takut?

Misalnya user ariekeren ingin ngepush ke branchnya sendiri, dengan 
branch bernama 'simple', yang ditujukan untuk proyek 'bukuruby':

|bzr push sftp://[EMAIL PROTECTED]/~ariekeren/bukuruby/simple
|

Nanti tinggal laporan ama admin... (saya :-) untuk mencantumkan branch 
Anda di halaman proyek BukuRuby (harusnya sih otomatis).


    Merge from upstream

Ada kalanya Anda ingin merge dari upstream:

|bzr merge http://bazaar.launchpad.net/~ceefour/bukuruby/simple
|

Jangan kuatir, meski Anda punya commit lokal, tapi Anda tetep dapat 
mengikuti perkembangan dari upstream.

Namanya juga decentralized gituuuuuu...


    Merge TO upstream

Bagaimana kalo ingin merge ke upstream?

Caranya... tinggal kasih tau admin branch Anda yang mana yang ingin 
di-merge. Maka admin akan me-review dan nanti dia yang akan melakukan 
merge. Jadi Anda relax saja di rumah. :)


    Contoh-contoh

Ngepush artikel:

|[EMAIL PROTECTED]:/media/prestige/home/ceefour/project/bukuruby/simple$ bzr 
push
Using saved location: sftp://[EMAIL PROTECTED]/~ruby-id/bukuruby/simple/
Pushed up to revision 8.
|

Ngepush web:

|[EMAIL PROTECTED]:/media/prestige/home/ceefour/project/bukuruby/web$ bzr push 
sftp://[EMAIL PROTECTED]/~ceefour/bukuruby/web

Pushed up to revision 7.
|


    Apaan sih ini?

Sebenarnya proyek ini banyak bersifat experimental. Pingin tau apa sih 
itu Bazaar, apa itu Launchpad, dan bagaimana menggunakan decentralized 
SCM beserta toolsnya dan bagaimana workflownya.

Namanya juga belajar. Kalo gak bernoda ya nggak pinter2 :P

Thanks ya...

~ Hendy <http://www.hendyirawan.com/>



-- 
Hendy Irawan
www.hendyirawan.com


Kirim email ke