Pages

Monday, June 14, 2010

SVN

(coolpie - Juni 2010)

Apa itu SVN

SVN adalah singkatan dari Subversion, yaitu aplikasi revision control open source yang paling banyak dipakai saat ini.

Apa itu "Revision Control" ?

Revision control adalah kegiatan dimana suatu kumpulan source code dari suatu project/aplikasi dapat dimaintain didalam suatu sistem yang dapat melakukan tracking terhadap perubahan-perubahan (revisions) yang terjadi pada source code tersebut, sekaligus mencatat informasi siapa yang melakukan perubahan dan apa yang diubah.

Dengan mencatat perubahan-perubahan ini, suatu source code dapat dengan mudah dilihat status perubahaannya.

Hal-hal yang dapat dilakukan, antara lain yaitu melabelkan revisi ini sebagai release 1, release 2, beta, dst (release management).

Melakukan bactracking ke versi-versi sebelumnya, jika file source code di komputer kita corrupt/rusak, maka kita dapat mengambil ulang (revert) source code dengan versi tersebut dari server.

Sistem revision control juga sangat berguna, dikala dibutuhkan kolaborasi dengan banyak developer pada suatu project. Dengan menggunakan sistem revision control, para developer dapat bekerja secara paralel (concurrent) untuk memasukkan perubahan-perubahan ke dalam source code (selama tidak terjadi konflik).

Mengapa SVN ?

SVN adalah aplikasi yang defacto paling banyak dipakai saat ini di bidangnya yaitu sistem revision control.

SVN adalah penerus dari aplikasi revision control sebelumnya yang dulu banyak dipakai, yaitu CVS (Concurrent Version System).

Apa bedanya SVN dengan sistem revision control yang lain ?

SVN yang merupakan penerus dari CVS, pada dasarnya adalah sistem revision control yang bersifat "centralized", yaitu repositori disimpan di satu tempat terpusat dan dimanage oleh SVN server.

Berbeda dengan SVN dan CVS, ada juga revision control yang mempunyai sifat terdistribusi, contoh: Mercurial, Git.

Siapa yang membuat SVN ?

SVN dikembangkan dan disponsori oleh perusahaan CollabNet mulai tahun 2000 dengan model project opensource.

Tahun 2010 SVN diadopsi menjadi top-level project Apache Foundation.

Bagaimana menggunakan SVN ?

SVN adalah sistem client-server, dimana aplikasi server SVN terinstall di komputer/server dimana repositori source code berada. Untuk melakukan koneksi ke SVN server diperlukan aplikasi SVN client, SVN client dapat berbentuk aplikasi command line ataupun GUI.

Untuk di sisi server dapat digunakan aplikasi SVN server yang disediakan CollabNet, atau juga dapat menggunakan VisualSVN.

VisualSVN adalah SVN server yang sangat mudah diinstall, dikonfigurasi, dan digunakan. Visual SVN juga mempunyai GUI interface yang sederhana tapi lengkap untuk melakukan administrasi server SVN, seperti manajemen repositori dan user.

Untuk SVN di sisi client, khususnya Untuk developer yang terbiasa di Windows, dapat menggunakan berbagai macam SVN client, salah satunya yang terkenal ialah TortoiseSVN, dengan TortoiseSVN perintah-perintah SVN sudah terintegrasi dengan Windows Explorer (memakai klik kanan).

Untuk versi SVN client yang paling basic, juga tersedia SVN command line dari CollabNet.

Apa perintah-perintah dasar dari SVN ?

checkout:
adalah proses awal dimana developer mentransfer suatu project dari SVN repositori ke komputer pribadinya (disebut local copy)

commit:
adalah proses memasukkan perubahan dari lokal copy developer ke repositori

update:
adalah proses memasukkan perubahan dari repositori ke local copy developer

perintah lain yang sering dipakai:
add, delete, ignore, import, export, relocate

Apa itu "conflict resolution" ?

SVN adalah revision control system yang tidak melakukan locking terhadap satu keseluruhan file dalam proses kolaborasi antar developer.

Jadi dimungkinkan seorang developer mengupdate bagian atas dari suatu file, dan developer lain mengupdate bagian yang lain dari file tersebut.

Hal ini akan berjalan lancar selama baris yang diedit tidak saling konflik, dan jika terjadi konflik, maka SVN akan memberitahu bagian mana (baris mana) yang konflik dan adalah keputusan bersama dari para developer tadi untuk mengkomunikasikan bagian manakah yang akan dipakai.

Dalam proses conflict resolution ini, aplikasi SVN juga memberikan kemudahan dengan menyertakan sistem "diff" yaitu untuk melihat perbedaan baris dari dua file.

Dimana informasi lebih lanjut dan dimana mendapatkan SVN ?

SVN di Apache:
http://subversion.apache.org/

Situs SVN lama (tigris):
http://subversion.tigris.org/

TortoiseSVN:
http://tortoisesvn.tigris.org/

Buku tentang SVN, sekualitas buku OReilly:
http://svnbook.org/

VisualSVN Server:
http://www.visualsvn.com/

SVN di wikipedia
http://en.wikipedia.org/wiki/Apache_Subversion

--oo00oo--