Teori Version Control System
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.Misalnya, jika anda adalah seorang desainer grafis atau desainer web dan anda ingin menyimpan setiap versi dari gambar atau layout yang anda buat, maka Version Control System (VCS) merupakan sebuah solusi
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, dan lainnya. Dengan menggunakan VCS dapat berarti jika anda telah mengacaukan atau kehilangan berkas, anda dapat dengan mudah mengembalikannya.
Version Control System Lokal
Kebanyakan orang melakukan pengontrolan versi dengan cara menyalin berkas-berkas pada direktori lain (mungkin dengan memberikan penanggalan pada direktori tersebut, jika mereka rajin). Metode seperti ini sangat umum karena sangat sederhana, namun cenderung rawan terhadap kesalahan. Anda akan sangat mudah lupa letak direktori anda sedang berada, selain itu dapat pula terjadi ketidaksengajaan penulisan pada berkas yang salah atau menyalin pada berkas yang bukan anda maksudkan.Untuk mengatasi permasalahan ini, para programmer mengembangkan berbagai VCS lokal yang memiliki sebuah basis data sederhana untuk menyimpan semua perubahan pada berkas yang berada dalam cakupan revision control. Ilustrasinya dapat dilihat pada gambar berikut.
Version Control System Terpusat
Permasalahan berikutnya yang dihadapi adalah para pengembang perlu melakukan kolaborasi dengan pengembang pada sistem lainnya. Untuk mengatasi permasalahan ini maka dibangunlah Centralized Version Control Systems (CVCS). Sistem ini, di antaranya CVS dan Subversion (SVN) memiliki sebuah server untuk menyimpan setiap versi berkas, dan beberapa klien yang dapat melakukan checkout berkas dari server pusat. Untuk beberapa tahun, sistem seperti ini menjadi standard untuk version control. Ilustrasi CVCS pada gambar berikut:Sistem seperti ini memiliki beberapa kelebihan, misalnya, setiap orang dapat mengetahui apa yang orang lain lakukan pada proyek. Walau demikian, sistem dengan tatanan seperti ini memiliki kelemahan serius. Kelemahan nyata yang direpresentasikan oleh sistem dengan server terpusat. Jika server mati untuk beberapa jam, maka tidak ada seorang pun yang bisa berkolaborasi atau menyimpan perubahan terhadap apa yang mereka telah kerjakan.
Version Control System Terdistribusi
Dalam sebuah DVCS (Distributed Version Control System) seperti Git, klien tidak hanya melakukan checkout untuk snapshot terakhir setiap berkas, namun mereka (klien) memiliki salinan penuh dari repositori tersebut. Jadi, jika server mati, dan sistem berkolaborasi melalui server tersebut, maka klien manapun dapat mengirimkan salinan repositori tersebut kembali ke server. Setiap checkout pada DVCS merupakan sebuah backup dari keseluruhan data.Dengan DVCS, seandainya pun satu server repository lenyap beserta data di dalamnya, anda dan rekan-rekan anda sesama developer masih tetap memiliki salinan lengkap dari repository, dan dapat menggunakan server yang lain yang masih hidup.
0 comments:
Post a Comment