Tentang Version Control


Tentang Version Control
Apa itu version control, dan kenapa anda harus peduli? Version control adalah sebuah sistem yang mencatat setiap perubahan terhadap sebuah berkas atau kumpulan berkas sehingga pada suatu saat anda dapat kembali kepada salah satu versi dari berkas tersebut.
Contoh mudahnya :
Jika anda adalah seorang desainer grafis atau desainer web dan anda ingin menyimpan setiap versi dari gambar atau layout yang anda buat (kemungkinan besar anda pasti ingin melakukannya), maka Version Control merupakan sebuah solusi bijak untuk digunakan.

Sistem ini memungkinkan anda untuk mengembalikan berkas anda pada kondisi/keadaan sebelumnya, mengembalikan seluruh proyek pada keadaan sebelumnya, membandingkan perubahan setiap saat, melihat siapa yang terakhir melakukan perubahan terbaru pada suatu objek sehingga berpotensi menimbulkan masalah, siapa yang menerbitkan isu, dan lainnya. Dengan menggunakan Version Control dapat berarti jika anda telah mengacaukan atau kehilangan berkas, anda dapat dengan mudah mengembalikannya.

Kemampuan menggunakan version control merupakan hal yang masih langka ditemukan di kalangan programmer Indonesia. Tidak banyak buku, tutorial ataupun tempat pelatihan yang menyediakan bahan pembelajaran dalam bahasa indonesia. Bahkan di banyak perusahaan software consultant, version control ini masih jarang digunakan.

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 bencana dan 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 sebuah tim 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. Version control mampu :

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

Jumlah maksimal programmer yang dapat bekerja sama tanpa menggunakan version control adalah satu orang (Endy, 2006). Jika dalam sebuah tim pengembang software terdapat sebuah tim programmer yang lebih dari satu, version control adalah tools yang wajib digunakan.

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 kelemahan-kelemahan 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.

 

 

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