Revision Control

Sekali-sekali marilah menulis tentang pekerjaan, karena pekerjaan juga merupakan gudang ilmu dan cara terbaik untuk memahami suatu ilmu adalah dengan mengajarkannya ke orang lain.

Saya adalah seseorang yang bidang pekerjaannya berkutat dengan yang namanya source code (sebelumnya mohon maaf untuk bapak JS. Badudu, beberapa istilah kalau di terjemahkan malah terdengar asing, jadi saya memakai istilah aslinya, atau serapan bebas versi saya sendiri). Source code identik dengan software, namun saya bukanlah seorang software engineer tetapi hardware engineer…wannabe😀 yang sama-sama berurusan dengan source code. Kalau anda pernah mendengar suatu bahasa pemrograman bernama VHDL atau Verilog maka itulah yang saya utak-atik hampir setiap hari.

Jadi apa kaitannya antara source code dengan revision control?

Mari dengarkan percakapan berikut,

X : Aaaaaaaaaaaaaaaagh…. %^$#$#@@!!!
X : AAAAAAAAAAAAAAAA…. (mulai berteriak-teriak histeris)
Y : Ono opo to mas/mbak…?
X : Ini, file-file ku… TERDELETE!!

Kalau merasa pernah mengalami kejadian diatas, maka anda membutuhkan revision control.

Mari dengarkan percakapan yang lain,

X : Aaaaaaaaaaaaaaaagh…. %^$#$#@@!!!
X : AAAAAAAAAAAAAAAA…. (mulai berteriak-teriak histeris)
Y : Ono opo to mas/mbak…?
X : Ini, source code ku… abis tak utak-atik dikit, malah ERROR… lupa gimana balikin lagi kaya tadi… hiks...

Kalau merasa pernah mengalami kejadian diatas, maka anda membutuhkan revision control.

Atau apakah anda pernah melihat direktori yang seperti ini di komputer anda,

versioning

Maka anda sangat membutuhkan revision control.

Revision control adalah suatu sistem manajemen file yang akan mencatat perubahan yang kita lakukan pada file-file tersebut. File dalam suatu sistem revision control dapat dibayangkan seperti lapisan-lapisan transparansi yang ditumpuk vertikal. Jika kita melihatnya dari atas akan tampak suatu kesatuan utuh dari file tersebut. Lapisan pertama dapat saja berisi judul transparansi itu, lapisan kedua berisi sebaris kalimat, lapisan berikutnya berisi poin-poin topik, dan seterusnya. Selain dilihat dari atas, kita dapat pula secara bebas mengambil lapisan transparansi dari urutan tumpukan tertentu dan melihatnya. Kita dapat pula membuang beberapa transparansi yang di atas, da memulainya lagi dari urutan berapapun yang kita inginkan.

Kalau anda tidak terbiasa dengan transparansi, analogi yang lain adalah panjat tebing. Pada saat melakukan panjat tebing, kita memanjat dulu beberapa meter dan kemudian membuat kaitan di dinding untuk mengikatkan tali pengaman kita. Setelah itu kita baru mulai memanjat lagi dan membuat kaitan berikutnya. Apabila pada suatu ketika kita terpeleset, maka kita akan tertahan di kaitan terakhir yang kita pasang, apabila itu tidak kuat menahan beban, maka kaitan-kaitan dibawahnya akan mampu menahan beban kita dan kita tidak jatuh bebas menghujam bumi. Demikian pula dengan revision control, apabila kita mengalami kemandegan pada suatu titik, maka kita dengan mudah dapat kembali kepada suatu versi yang kita telah nyaman dengannya.

Revision control software yang paling konservatif dan sangat populer digunakan adalah CVS. Namun karena beberapa kelemahan, program ini mulai ditinggalkan dan beralih ke Apache Subversion (SVN). Baik SVN maupun CVS menganut sistem server terpusat untuk menyimpan seluruh data, hal ini sangat berbahaya, karena ketika server itu mengalami crash, maka seluruh usaha versioning akan hilang tanpa bekas. Oleh karena itu, banyak pengembang software mulai beralih ke distributed revision control. Dengan distributed revision control, setiap orang akan memiliki local copy dari seluruh repository sehingga apabila salah satu komputer bermasalah maka masih ada banyak repository lain yang selamat. Hanya perubahan yang terjadi di satu komputer itu saja yang akan hilang. Dua sistem distributed revision control yang populer adalah Git dan Mercurial. Saya sendiri hanya memiliki pengalaman dengan SVN dan sekarang beralih ke Mercurial sehingga pada tulisan berikutnya cukup Mercurial saja yang dibahas.😀

bersambung…

catatan kaki:
Untuk penjelasan lebih detail (dan visual) mengenai revision control, bisa mengunjungi situs ini (khususnya Mercurial), dan ini adalah animasi visual bagaimana software-software populer ‘berkembang’ dengan revision control.

2 Comments

  1. Posted Desember 17, 2010 at 10:44 am | Permalink | Balas

    Ini bukan bidang saya, namun saya hanya ingin menanggapi, bahwa jika kita menulis untuk sharing ilmu kita pada orang lain, maka semoga amal kita diterima oleh Nya.
    Saya pernah ditegur halus oleh mantan bos (CEO Bank BUMN), beliau mengatakan, agar saya lebih banyak menulis masalah yang berkaitan dengan ilmu dan bidang saya, karena akan berguna untuk orang lain. Masalahnya, menulis serius dengan bahasa sederhana ternyata tidak mudah, tak semudah membuat proposal atau feasibilty study.

    Di satu sisi, banyak teman anak, keponakan, yang ingin lebih banyak belajar tentang kehidupan sehari-hari, masalah rumah tangga, anak, keluarga dan lainnya.
    Intinya, Syafiq bisa menyumbangkan pemikiran melalui tulisan di blog. Dan tulisan kita yang sederhana, ternyata bermanfaat bagi orang lain (saya beberapa kali diundang sebagai pembicara gara-gara tulisan di blog).
    Semangat ya….

    • Posted Desember 17, 2010 at 4:05 pm | Permalink | Balas

      Sepakat bu, perlu lebih banyak berpikir untuk menuliskan sesuatu yang teknikal agar mudah dipahami oleh pembaca yang lebih umum. Terkadang menurut kita ini hal yang lumrah dan sederhana karena kita tiap hari berkutat dengan hal itu, namun mungkin saja tidak demikian dengan orang lain.

      Terimakasih semangatnya😀

2 Trackbacks

  1. […] About ← Revision Control […]

  2. […] adalah bagian ketiga dari seri tulisan saya tentang revision control. Tulisan pertama dapat dibaca disini, dan yang kedua […]

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: