2009-03-27

subversion server di debian, tortoiseSVN sbg client di windows

lagi nyari solusi untuk kolaborasi source code dengan rekan satu team. dari saran ifnu, aku coba pake subversion (http://subversion.tigris.org), untuk instalasi windows tinggal donlod versi windowsnya dan install bla2 selese.

ubuntu, debian:
apt-get install subversion
Dulu aku kira ini cuman bs dipake di bahasa pemrograman tertentu, trnyata bisa untuk semuanya (jadi malu :P) .. Jadi critanya di kantor gw, krn developernya kluar masuk jd susah mantau versi terbaru dari aplikasi.

berikut diterjemahin dari svn-book, hasil browsing2 di internet dan share pengalaman.

Apakah subversion itu?
subversion : sistem tersentralisasi untuk share informasi.
intinya adalah repositori yang merupakan pusat dari data. repositori ini sebetulnya mirip dengan file-server, bedanya ia mengingat setiap perubahan yang terjadi di file dan folder tersebut.

di bukunya dijelasin kasus yg sering banget terjadi di kantorku baik sekarang maupun dulu, yaitu mengerjakan satu project yang sama beramai-ramai dengan source code terpusat di server, rese bgt kalo kita ngerjain ABCDE tiba user numpukin dengan EFGH, hangus lah kerjaan kita .. hiks2. misalnya :


ada 2 user, harry dan sally. mereka bertugas untuk mengerjakan project yang sama sehingga mereka mengakses ke repository yang sama. harry & sally mengedit project A, harry merubah menjadi A' dan sally menjadi A'', asumsi harry melakukan proses penyimpanan terlebih dahulu, sehingga project A sekarang menjadi project A'. baru setelah itu sally melakukan penyimpanan. nah pada proses ini ada kemungkinan sally menumpuk atau menimpa pekerjaan harry dengan pekerjaannya.

kalo yang diatas menggunakan metode file sharing, subversion menggunakan metode solusi copy-modify-merge.

detail kasus persis seperti yang dicontohkan diatas, cuman sekarang menggunakan subversion. harry merubah project menjadi A' dan sally merubah menjadi A'', sementara sally sudah menyimpan ke server (commit) terlebih dahulu. ketika harry melakukan penyimpanan ke repository, harry akan mendapat mesej error bahwa modul dia tidak update (karena versioning terakhir adalah sally).


harry harus melakukan checkout file2 ke repository, setelah proses checkout selesai, baru harry bisa melakukan perubahan dan commit ke repository. lha tapi gimana kalo harry dan sally melakukan edit di file yang sama? wew tetep bisa. subversion mengistilahkan ini dengan conflict. confilct dapat diresolve dengan membandingkan file yang di repository dan file yang ada di komputer harry. bisa dicek satu2 perbedaannya baru kemudian di-merge.

hal ini sangat memudahkan, karena kalo dulu pasti ada proses teriak2an dulu kalo lagi arisan koding di kantor hehhehehehehe

Langkah2 settingnya:
1. buat direktori subversion, misal ada di /var/svn/baru/usermng
mkdir -p /var/svn/baru/usermng
2. buat subversionnya :
sudo svnadmin create /var/svn/baru/usermng
3. import data yang akan dipantau
sudo svn import /opt/coding/usermanaj file://var/svn/baru/usermng -m "Aplikasi Subversion"
4. Setting apache
a. Cara Mudah :
apt-get install apache2 libapache2-svn
b.Cara Susah :
menyusul
5. Edit Konfigurasi apache svn yang ada di /etc/apache2/mods-available/dav_svn.conf (<-- lokasi ini kalo instalasi apache liwat apt-get)
DAV svn <-- untuk enabling repository #SVNParentPath /var/svn/baru/usermng <-- Path Repository untuk handling multiple svn SVNPath /var/svn/aplikasi/baru/usermng <-- Path Repository AuthType Basic  AuthName "Aplikasi Subversion" <-- Keterangan AuthUserFile /var/svn/passwd <-- Password file Require valid-user 
6. Ubah kepemilikan folder aplikasi jadi milik si apache
chown -R www-data: /var/svn/aplikasi
7. Buat password file :
httpasswd -c /var/svn/passwd detanto

Untuk clientnya, misalnya di windows; musti install tortoiseSVN yang bisa diunduh di http://tortoisesvn.tigris.org/, letak versi terbaru pada saat blog ini ditulis ada disini, filenya mayan besar; sekitar 19MB.

setelah diinstall, setiap kita klik kanan akan muncul 2 shortcut baru, SVN Checkout dan TortoiseSVN beserta link2nya.

Contoh Penerapan :
1. dari contoh diatas, kita sudah membuat satu repository untuk source code user manajemen (usermng). Misal kita buat satu folder baru "User", kita klik kanan trus pilih SVN Checkout (kalo gambarnya kurang jelas, tinggal diklik aja)


2. Akan muncul dialog box seperti dibawah ini :
masukkan url repository-nya; misalnya http://10.1.2.7/svn/usermng, setelah klik ok, akan muncul permintaan untuk memasukkan user dan password, masukkan user yang telah dicreate seperti contoh diatas :

apabila otorisasi berhasil, tortoiseSVN ini akan langsung memeriksa ke repository server semua filenya. apabila di folder kita blum ada maka akan diupdate ke folder tersebut :

setelah proses selesei, bila dilihat di windows explorer tampilannya akan seperti ini

tortoiseSVN akan menambahkan tanda di icon folder atau file, tanda cawang hijau brarti source yang disini source yg tidak mengalami konflik, atau subversion statusnya normal.

Pertanyaannya : ada ga subversion buwat database? gw blun tau, bahkan blun googling jugak heheheheheehe, paling gampang si semua aktivitas database didokumentasiin ke script trus folder script itu di register ke subversion, selesei :D

Tidak ada komentar: