Tutorial Kilat Menggunakan Version Control System dengan TortoiseSVN

  • Untuk pekerjaan kantor/sekolah/organisasi, saya sering terpaksa membuat file-file yang “serupa tapi tak sama”, seperti “Data Penjualan 2008.xls”, “Data Penjualan 2008 revisi.xls”, “Data Penjualan 2008 dengan revisi dari Anton.xls”, “Data Penjualan 2008 FINAL.xls”, “Data Penjualan 2008 FINAL 2.xls”, dan seterusnya. Saya pusing sekali dengan penamaan yang amburadul seperti ini, tidak adakah cara lain untuk mengatur versi-versi dari dokumen ini?
  • Bagaimana puluhan atau ratusan developer untuk sebuah proyek open source (yang kebanyakan tidak pernah bertemu muka di dunia nyata) bisa berkolaborasi untuk mengerjakan satu program komputer tanpa ada konflik satu sama lain?
  • Saya pernah mengepalai pembuatan sebuah proyek seperti booklet perusahaan atau yearbook sekolah yang melibatkan banyak orang. Karena saya kurang cakap dalam mengatur pekerjaan (banyak orang seperti ini lho) atau bawahan saya bodoh (lebih banyak lagi orang seperti ini), beberapa orang melakukan modifikasi pada satu file yang sama. Akhirnya banyak waktu terbuang karena modifikasi harus disatukan kembali. Bagaimana saya bisa menghalangi hal ini agar tidak terjadi lagi?

Jawaban dari pertanyaan-pertanyaan di atas adalah: Version Control System, atau biasa disingkat VCS (ada juga yang menyebutnya Source Code Management (SCM) sih).

h2. Cara Kerja VCS

Bayangkan VCS sebagai sebuah buku jurnal (jurnal dalam arti “buku yang mencatat peristiwa”) mengenai file-file kamu. Buku harian tersebut punya ciri-ciri seperti:

  • Setiap halaman mencatat isi dari file-file kamu pada detik tertentu. Tidak ada masalah jika file-file itu akan berubah di masa depan, yang penting adalah isi dari file yang sekarang sudah tercatat rapi.
  • Isi jurnal tidak dapat dihapus (kecuali kamu membuang bukunya, atau menggunakan cara-cara licik lainnya seperti merobek halaman). Hal ini berarti sekali suatu file tercatat dalam buku, isi file pada saat catatan ditulis masih dapat diakses walaupun file aslinya diubah atau hilang.
  • Buku tersebut bisa dibaca oleh banyak orang. Bahkan banyak orang menaruh buku hariannya di internet sehingga setiap orang bebas membaca jurnal file-file yang mereka buat.

Kalau kamu sudah mengerti konsep di atas, selamat! Berarti kamu sudah bisa menulis buku harian dengan baik dan benar :D dan setengah jalan dalam memahami VCS. Sekarang kamu tinggal menghafal (kok jadi kayak sejarah!?!?!) istilah-istilah yang dipakai dalam VCS:

  • Repository / repositori adalah buku jurnal yang sudah sering kita sebut. Biasanya repository berbentuk kumpulan file yang tersimpan dalam suatu server.
  • Sebuah revision / revisi adalah satu halaman jurnal.
  • Checkout adalah mulai membaca buku (sebelumnya kamu belum pernah membaca buku ini, kamu mau mulai baca sekarang). Checkout akan men-download file-file yang ada pada revisi terakhir dari server ke dalam suatu folder di komputer kamu. (sebenarnya kamu bisa men-download revisi berapapun, tetapi gak asyik dan jarang digunakan.) Setelah itu kamu dapat mengutak-atik file yang sudah ada di komputer kamu dengan bebas (namanya sandbox, yaitu tempat anak kecil bermain-main dengan pasir).
  • Update adalah memperbaharui file yang sudah pernah saya download dengan versi yang terbaru. Ilutrasinya seperti ini: saya sedang “membaca” halaman/revisi 100 yang merupakan revisi terakhir, lalu A menulis halaman baru/revisi baru. Update akan membawa saya ke revisi terbaru yang baru saja ditulis A, yaitu 101.
  • Commit adalah menulis satu halaman dalam jurnal. Pada kenyataannya tidak semua orang yang bisa checkout bisa melakukan commit (kalau bisa, proyek open source bisa amburadul).
  • Revert adalah mengembalikan isi file-file di sandbox (file yang sudah pernah kamu download) yang sudah kamu modifikasi. Semua isi file akan kembali ke sesaat setelah update terakhir.
  • Revert to Revision …: bukankah tadi saya bilang bahwa kita bisa membaca halaman manapun dari suatu jurnal? Revert to Revision… sama dengan membuka suatu revisi apapun pada repository.

Praktek dengan TortoiseSVN

SVN adalah suatu VCS yang lumayan banyak digunakan di dunia karena sederhana dan robust. SVN dibuat sebagai pengganti CVS, sistem yang sudah sepuh dan berdebu di lemari (tetapi masih banyak digunakan oleh proyek-proyek tua). Sistem VCS seperti CVS dan SVN dulunya hanya digunakan oleh kalangan tertentu (“dari developer, untuk developer”), tetapi sekarang tidak lagi berkat beberapa malaikat yang resah melihat ketidakadilan yang terjadi di dunia.

TortoiseSVN adalah sebuah GUI untuk SVN, sehingga menggunakan SVN sama mudahnya dengan menggunakan Microsoft Word (atau OpenOffice.org). Menggunakan Word atau OOo tidak bisa dikatakan mudah juga, jadi kamu perlu sedikit praktek. Pokoknya…

  1. Download TortoiseSVN dan install. TortoiseSVN akan menaruh menu-menu tambahan di context menu Explorer untuk folder (menu yang muncul saat klik kanan di folder tertentu).
  2. Buat sebuah repository lokal di folder mana saja (TortoiseSVN >> create repository here…).
  3. Buat satu folder baru di mana saja untuk tempat sandbox kita. Klik kanan di folder tersebut lalu SVN Checkout… Masukkan path repository yang baru kita buat ke field “URL to repository”.
  4. Mulai buat beberapa file asal-asalan di dalam folder sandbox.
  5. Klik kanan, lalu SVN Commit… Di dialog yang baru terbuka, masukkan log message (ringkasan perubahan untuk commit kali ini, misalnya “menyelesaikan bab 2”, “membetulkan salah ketik”). Jangan lupa centang file yang ingin kamu masukkan dalam repository, karena tidak semua file yang ada dalam folder harus diberi version control.
  6. Kalau benar, sekarang file-file yang sudah kena version control akan mendapat tanda cek hijau. Artinya file-file tersebut belum dimodifikasi sejak commit dan update terakhir. Kalau kamu coba memodifikasi satu file, file tersebut akan mendapat tanda silang merah yang berarti file telah dimodifikasi dan perubahan siap untuk di-commit.
  7. Cobalah untuk memodifikasi satu file lalu melakukan revert (cari sendiri ah menunya!). File terebut akan balik ke posisi semula.
  8. Cobalah untuk membuat satu folder sandbox yang lain (sebagai simulasi user kedua). Cobalah lakukan modifikasi di sandbox 1, commit di sandbox 1, modifikasi yang berbeda di sandbox 2 dalam file yang sama, lalu commit di sandbox 2. Akan terjadi konflik saat melakukan commit di sandbox 2 (bagaimana menyelesaikan konlik? RTFM !). Kalau sebelum modifikasi sandbox 2 kita melakukan update, konflik tidak akan terjadi.

Bacalah manual / help yang tersedia dalam TortoiseSVN. Masih banyak hal yang belum dibahas di dalam artikel ini, seperti patch, file locking, branching, merging… Selamat belajar!

Terus Apa Gunanya?

Selain menjawab pertanyaan-pertanyaan di awal artikel dan membuang-buang waktu dalam melakukan commit, menggunakan VCS masih punya kegunaan-kegunaan lain.

  • Repository dapat bertindak sebagai backup.
  • Kamu akan memiliki perasaan bahwa proyek yang kamu buat lebih dari seonggok file tanpa arti; file-file tersebut bertumbuh dan berkembang. Hal ini bisa menjadi motivasi untuk terus bekerja, dan motivasi sangat penting!
  • Dalam kasus pembajakan, log-log dari VCS bisa menjadi bukti kuat bahwa kamulah orang yang benar-benar membuat sebuah program. Dalam kasus open source, log-log VCS menjadi bukti hak kekayaan intelektual yang dimiliki masing-masing developer.
  • Pemimpin dapat melihat keaktifan dan produktivitas tiap anggota dalam proyek (walaupun produktivitas tidak berbanding lurus dengan jumlah commit, setidaknya mendekati).

Mengingat banyaknya kegunaan VCS, maka akan sangat baik kalau kita bisa menggunakannya.

8 comments

bagusss mas pencerahan diatas.

bagusss mas pencerahan diatas cuma saya masih asing dengan vCS dan juga belum pernah sama sekali saya menggunakannya ,,,,,,

Sangat membantu.

Terima kasih atas artikel untuk memulai menggunakan SVN...

Terima kasih untuk.

Terima kasih untuk penjelasanya ya..

Thanks atas infonya. Sangat.

Thanks atas infonya. Sangat berguna sekali. Kebetulan saya dan kawan-kawan mau coba mengembangkan proyek sistem operasi.

this is really interesting.

this is really interesting. thank you for sharing.
http://www.simplyrest.com/latex-mattresses

You should comment on the.

You should comment on the competition comparison of the blog. You can highlight it's mind boggling. Your blog exploration/tour will broaden your conversions. 338A Casino

http://leapon.net - informasi.

http://leapon.net - informasi mengenai cara pemakaian crystal x agar mendapat hasil yang optimal. Terimakasih bang admin salam sukses selalu !

VCS Problem.

Wisata Bagus

Click Disini

Tutorial ini lengkap, VCS sebenarnya bagi saya hal yang cukup sulit. Pusing untuk dapat paham. Harus dipelajari berkali-kali. Step by step yang diajarkan di artikel ini sangat membantu. Keep Blogging

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <pre> <i> <b>
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.

Recent comments