Contoh Penggunaan Subversion

Sebelum memulai bekerja dengan subversion, ada beberapa konsep yang harus dipahami mengenai version control. Diantaranya adalah versioning model dan mekanisme delta. Aplikasi version control yang berbeda dapat mengimplementasikan konsep ini secara berbeda pula.

# Permasalahan file sharingMisalnya ada dua programmer Endy dan Anton, sedang bekerja di sebuah file yang sama. Mari kita lihat apa yang terjadi bila kita tidak menggunakan version control, tetapi mengandalkan mekanisme file sharing. Mekanisme file sharing ini menyimpan file dalam sebuah repository yang terletak di sebuah komputer yang salah satu foldernya dishare, atau di FTP server, atau yang paling primitif, source code diletakkan di dalam USB Flashdisk.

Ketika akan mulai bekerja, Endy dan Anton akan mengambil file yang sama dari dalam repository. Setelah itu Endy dan Anton mulai bekerja di folder lokal masing-masing.

img1 img2

Kebetulan Endy selesai lebih dulu. Kemudian dia segera menyimpan perubahan di repository. Tidak lama kemudian Anton selesai bekerja dan mengirimkan perubahan yang sudah dilakukanya ke dalam repository.

img3 img4

Tanpa adanya aplikasi Version Control yang baik, perubahan yang dibuat oleh Anton akan menimpa perubahan yang telah disimpan Endy sebelumnya. Bayangkan jika jumlah programmer tak hanya dua, melainkan puluhan atau bahkan ratusan orang. Maka akan terjadi kekacauan. Permasalahan File sharing ini dapat diselesaikan dengan dua pendekatan yaitu model Lock-Edit-Unlock, dan model Checkout-Edit-Merge.

# Model lock-edit-unlockModel lock-edit-unlock adalah model yang dipilih oleh Microsoft untuk mengembangkan version controlnya yaitu Visual Source Save. Dengan skenario yang sama, kita akan melihat bagaimana model ini mengatasi masalah file sharing.

Read more of this post

Menggunakan Subversion

sumber

# Membuat project baru

Jika kita bergabung ke dalam sebuah tim pengembangan perangkat lunak yang sudah berjalan, kemungkinan besar sudah tersedia repository dan server Subversion yang sudah terisi data dan kita tinggal menggunakannya. Namun jika kita baru memulai project pengembangan perangkat lunak, kita harus membuat repository baru yang masih kosong.

Pada bagian ini, kita akan melihat bagaimana memmulai project baru, membuat repository kosong dan beberapa pertimbangan yang perlu diperhatikan dalam mengatur folder repository.

# Membuat repository baruCara membuat repository baru menggunakan TortoiseSVN sangatlah mudah, pertama-tama buatlah sebuah folder baru yang masih kosong, misalnya D:\svnrepo, folder ini nantinya akan berisi repository-repository proyek pengembangan perangkat lunak. Kemudian buat lagi sebuah folder baru didalam D:\svnrepo, misalnya : dataviewer.

Setelah folder untuk menyimpan repository dan folder untuk menyimpan proyek selesai dibuat, kita sudah siap untuk membuat repository baru, caranya sangat mudah. Buka windows explorer, klik kanan di jendela explorer sebelah kanan, pilih menu:
[ TortoiseSVN > Create repository here... ]

Kemudian akan muncul jendela yang akan menanyakan apakah tipe dari repository yang akan digunakan? Terdapat dua pilihan, yaitu: Native Filesystem (FSFS) atau Barkeley DB (BDB). Pilih FSFS, kemudian klik OK.

Setelah selesai, maka repository sukses dibuat dan kita akan melihat beberapa file dan folder dibuat secara otomatis oleh Subversion. File-file ini digunakan oleh Subversion untuk menyimpan semua data kode sumber, dan digunakan untuk menyimpan keterangan-keterangan yang diperlukan oleh subversion. Kita tidak akan pernah mengedit file-file ini secara langsung, kecuali file-file yang berada dalam folder hooks. File yang berada dalam folder hooks disebut dengan Hooks script yang merupakan file executable dan dijalankan oleh subversion pada event-event tertentu.

Kita tidak perlu membahas secara detail semua file yang dibuat secara otomatis oleh Subversion. Yang harus kita perhatikan adalah alamat dari folder yang telah kita buat tadi, yaitu : D:\svnrepo\dataviewer. Alamat ini nantinya akan kita gunakan sebagai alamat untuk mengakses repository.

Untuk mengetahui apakah repository yang telah kita buat sukses, maka cobalah dengan mengakses repository tersebut menggunakan repo-browser dari TortoiseSVN. Berikut ini langkah-langkah menampilkan isi repository menggunakan repo-browser:

  1. Munculkan windows explorer context (pop-up) menu dengan melakukan klik-kanan jendela bagian kanan dari windows explorer.
  2. Pilih menu [ TortoiseSVN > Repo-browser ]
  3. Setelah itu akan muncul jendela input yang meminta kita untuk memasukkan alamat repository yang akan dilihat. Masukkan alamat URL : file:///D:\svnrepo\dataviewer kemudian klik OK
  4. Setelah semuanya dilakukan, akan muncul jendela Repo-browser

Bisa kita lihat bahwa repository yang barus saja kita buat berhasil dan tentu saja isinya masih kosong.

Read more of this post

Instalasi TortoiseSVN

sumber
Dalam tutorial ini akan dibahas aplikasi client dari subversion yaitu TortoiseSVN. Langkah-langkah instalasinya sebagai berikut:

  1. Aplikasi TortoiseSVN dapat didwonload dari alamat http://tortoisesvn.tigris.org.
  2. Setelah di download double click file hasil downloadnya, dalam hal ini adalah TortoiseSVN-1.4.3.8645-win32-svn-1.4.3.msi, kemudian ikuti instruksi selanjutnya dengan menggunakan konfigurasi default.


Setelah selesai proses instalasi, restart windows agar proses integrasi TortoiseSVN dengan windows explorer berjalan sukses, seperti yang ditunjukkan gambar diatas.

Instalasi Subversion

sumber
Untuk menginstal Subversion langkah-langkah yang dilakukan adalah sebagai berikut :

  1. Pertama-tama silahkan download Subversion Package versi windows dari website http://subversion.tigris.org.
  2. Hasil download adalah berupa file .exe,  double click file tersebut dan ikuti langkah-langkah instalasi selanjutnya tanpa merubah konfigurasi apapun, cukup gunakan konfigurasi default.
  3. Lakukan pengecekan apakah Subversion sukses terinstal dengan membuka “Command Prompf
    [ Start > Run > cmd ]
  4. Ketikkan “svn” pada command prompf, jika proses instalasi berhasil maka akan muncul pesan “type svn help for usage

Sampai disini Subversion sudah dapat digunakan dengan protokol file:///. Protokol ini mensyaratkan repository harus berada didalam komputer lokal. Protokol file juga bisa mengakses repository yang berada di mesin/komputer yang berbeda dengan menggunakan mekanisme file sharing, namun cara ini sangat tidak dianjurkan karena dapat memunculkan kemungkinan error yang belum dapat di prediksi sepenuhnya.

Cara yang lebih baik untuk mengakses repository Subversion adalah dengan menggunakan protokol svn://. Protokol ini memerlukan program svnserve dijalankan disisi repository server untuk mendengarkan dan merespon perintah svn client.

Ada dua cara untuk menjalankan svnserve di windows, cara pertama adalah menjalankan svnserve dengan “Command prompt“. Tetapi cara ini sangat tidak praktis, karena jendela command prompt akan selalu tampil selama svnserve berjalan. Jika jendela command prompt secara tidak sengaja ditutup, maka program svnserve juga akan berhenti. Masalah lain akan timbul jika komputer server mati atau restart tanpa terjadwal, svnserve tidak otomatis dijalankan, sehingga layanan subversion melalui protokol svn:// tidak dapat diakses oleh pengguna.

Cara kedua adalah dengan menginstall svnserve sebagai windows service, sehingga svnserve akan berjalan di background secara transparan. Kita juga dapat mengelola service svnserve dengan lebih baik, misalnya dengan menjalankanya menggunakan User System, autostart ketika windows baru saja dinyalakan dan lain-lain. Caranya sangat gampang, jalankan command berikut ini di dalam command prompt:

sc create Subversion binpath= “c:/program files/subversion/bin/svnserve.exe –service –root d:/cvsrepo” displayname= “Subversion” start= auto obj= “NT AUTHORITY\LocalService”

Keterangan :

  1. sc perintah windows untuk mengelola service, mempunyai beberapa option antara lain: create, start, delete
  2. binpath berisi perintah untuk menjalankan perintah yang akan dijalankan sebagai windows service.
  3. svnserve.exe modul subversion untuk menerima dan mengirim response perintah subversion melalui protokol svn://
  4. –service option svnserve untuk menjalankanya dalam mode service.
  5. –root d:/svnrepo option untuk menggunakan folder tersebut sebagai tempat dimana semua repository Subversion akan disimpan
  6. displayname nama yang nantinya akan ditampilkan di jendela service sebagai pengenal dari service
  7. start mode penjalanan service ketika windows pertama kali dinyalakan, dalam hal ini auto, artinya service svnserve akan otomatis dijalankan ketika windows pertama kali dinyalakan.
  8. obj option ini disarankan oleh microsoft untuk memilih user yang akan menjalankan service.

Catatan:

  • Antara tanda = dengan nilai dari option harus diberi satu spasi. contoh start= auto, jika anda mengetikan start=auto atau start = auto perintah tersebut akan gagal.
  • Perintah tersebut harus diketik dalam satu baris.
  • Artikel ini didasarkan pada Windows XP SP2. Belum dilakukan pengetesan untuk versi windows yang lainya.

Keuntungan Menggunakan Subversion

sumber

Subversion merupakan salah satu aplikasi Version Control yang sifatnya gratis dan legal (opensource). Selain itu subversion sudah menjadi standard de facto version control di dunia opensource. Misalnya, situs kolaborasi terbesar di dunia sourceforge.net sudah bermigrasi ke Subversion begitu juga situs dev.java.net sudah bermigrasi ke subversion.

CollabNet membuat subversion sebagai pengganti langsung dari CVS yang sudah tidak dapat mendukung model pengembangan software dewasa ini. CVS mempunyai beberapa kekurangan , antara lain :

  1. Tidak mendukung atomic commit
  2. Tidak mendukung penyimpanan file binary
  3. Tidak mendukung rename file atau folder
  4. Tidak dapat menyimpan perubahan pada file yang sudah didelete
  5. Ijin akses tidak dapat diatur per folder

Subversion mengatasi semua kelemahan dari CVS dengan sangat elegan. Dengan desain seperti ini Subversion dapat diandalkan untuk mencatat semua perubahan sumber kode dengan sangat teliti. Terutama di era sekarang ini yang mengandalkan paradigma OOP dalam pengembangan software. OOP paradigma menggunakan metode “code by interface” yang terkadang memerlukan langkah refactoring dengan menganti nama method, class (file) atau nama package (folder). CVS tidak dapat mencatat perubahan kode program karena ada penggantian nama dari file atau folder.

Selain mengatasi kekurangan dari CVS, subversion juga mempunyai banyak keunggulan dibandingkan dengan CVS, antar lain :

  • Dapat dijalankan dalam beberapa protokol, antara lain: HTTP, file, svn dan svn+ssh.
  • Dapat melakukan otentikasi user melalui protokol LDAP

Cara Penggunaan Subversion

sumber

Untuk lebih jelasnya bagaimana sekenario version control digunakan, dapat di ilustrasikan dengan cerita berikut.

—||—

Endy dan Anton terlibat proyek pengembangan sebuah aplikasi untuk menampilkan data berupa text dan gambar dari dalam database. Endy dan Anton berdomisili di tempat yang berbeda dan masing-masing mempunyai kesibukan yang tidak dapat ditinggalkan pada jam kerja. Sehingga mereka mempunyai waktu yang sangat terbatas untuk bertatap muka secara langsung.

Anton menginstal version control server dan membuat repository untuk program tersebut di rumahnya yang terhubung ke internet 24 jam sehari, 7 hari seminggu. Semua kode program yang dibutuhkan disimpan dalam repository dan dapat diakses oleh mereka berdua.

Selama tenggat waktu pengembangan aplikasi tersebut keduanya silih berganti menambahkan kode ke dalam repository. Mengerjakan bagiannya masing-masing dan melakukan test terhadap setiap fungsi yang ditambahkan.

Setelah waktu yang ditentukan habis, Anton menginstal aplikasi di tempat klien. Semua kode program terbaru diambil dari repository dan dimasukkan ke dalam laptop untuk selanjutnya dibawa ke tempat presentasi. Setelah tiba di tempat klien, kode program tersebut mengalami error serius ketika dikompilasi. Anton tidak panik, dengan tenang segera melakukan koneksi lewat internet. Kemudian mengakses repository server dan melihat catatan perubahan kode program. Ternyata Endy menambahkan satu bonus fitur baru untuk melihat gambar dalam tampilan thumbnail yang dikerjakan semalam, pasti ini penyebabnya, karena hari sebelumnya Anton sudah memastikan bahwa semua fungsi program berjalan dengan baik dan siap untuk diimplementasikan.

Untungnya Endy tidak lupa untuk memberikan penanda (tag) terhadap perubahan yang dilakukanya semalam. Dengan cepat Anton mengambil kode program sesuai kondisi sebelum perubahan yang dibuat oleh Endy semalam (undo). Kali ini program berjalan dengan lancar tanpa ada satupun error. Berkat digunakanya Version Control dengan disiplin bencana yang ada di depan mata dapat dihindari.

—||—

Berdasarkan cerita diatas, jelas bahwa penggunaan Version Control dalam pengembangan software yang dilakukan oleh sebuah tim programmer sangatlah penting. Version control akan melakukan pencatatan setiap perubahan kode program. Dengan begitu, banyak sekali manfaat yang dapat diambil dan masalah yang dapat dihindari. Masih banyak lagi fitur-fitur version control yang akan kita bahas dalam bagian-bagian selanjutnya.

Version Control

Pernah denger Moto Ikatlah Ilmu dengan Menuliskannya(Ilmukomputer punya), jadi ni pas belajar SVN dari sumber yg gampang dimengerti, sekalian posting di blog. So, check this out:

Version control dikenal dengan banyak istilah. Ada yang menyebutnya sebagai Configuration Management Tool, Source code management atau Source Control. Dalam tutorial ini, istilah yang digunakan adalah Version Control.

Kemampuan menggunakan version control merupakan hal yang masih langka ditemukan di kalangan programmer Indonesia. Padahal kemampuan menggunakan version control adalah kemampuan wajib yang harus dimiliki oleh tim programmer.

Di seluruh dunia, ribuan programmer terlibat dalam pengembangan proyek opensouce, kolaborasi dalam skala raksasa seperti ini mustahil dilaksanakan tanpa adanya version control. Akan terjadi kekacauan jika kode sumber hanya diletakkan di website, kemudian dibagi ke semua programmer. Jika dua orang programmer bekerja dalam file yang sama, mereka akan saling menimpa pekerjaan temannya, dan jika terjadi kesalahan maka tidak akan mungkin mengembalikan keadaan kode ke keadaan sebelumnya tanpa usaha yang cukup besar.

Version control dapat membantu seorang/tim programmer pengembang perangkat lunak dengan menyediakan akses kepada setiap anggota tim tanpa harus saling menimpa pekerjaan anggota tim yang lain, seperti yang terjadi jika sebuah tim pengembang menggunakan sharing folder.

Hal-hal yang mampu dilakukan oleh Version control adalah:

  1. Mencatat perubahan code dan pembuat perubahan
  2. Menyediakan fungsi undo untuk mengembalikan keadaan code ke titik tertentu
  3. Melihat riwayat perubahan code, dari pertama dibuat hingga keadaan yang sekarang
  4. Memungkinkan penulisan code secara paralel tanpa ada kejadian anggota tim menimpa pekerjaan anggota tim yang lain.

Ada banyak aplikasi version control yang tersedia, beberapa aplikasi yang cukup terkenal antara lain :

  • Visual Source Safe, version control buatan microsoft. Terintegrasi dengan Visual Studio
  • CVS, version control dikembangkan oleh CollabNet yang dipimpin oleh Karl Fogel. CVS adalah version control yang dikembangkan dengan lisensi opensource dan sudah sangat banyak digunakan. CVS juga mempunyai software pendukung yang sangat besar, dan juga didukung oleh hampir semua IDE besar.
  • Subversion, dibuat dengan tujuan untuk menggantikan CVS yang mempunyai kelemahankelemahan sehingga tidak cocok lagi dengan paradigma pengembangan perangkat lunak yang sedang trend saat ini. Subversion ini dikembangkan oleh CollabNet dan dibuat oleh orang yang sama yang membuat CVS, Karl fogel.
Follow

Get every new post delivered to your Inbox.