Version Control, Kenapa?

Kustiawanto Halim
Auto Personalia
Published in
3 min readMar 20, 2017

Pada judul dari blog ini sengaja digunakan kata tanya kenapa. Lalu kenapa? Kenapa Version Control? Dalam post kali ini saya akan mencoba menjelaskan kenapa dan ada apa dengan Version Control.

Version Control itu apa?

Version control sejatinya adalah sistem yang dapat menyimpan perubahan yang dilakukan terhadap suatu file ataupun sekumpulan file, sehingga kita dapat melakukan mengatur versi dari file tersebut. Maksudnya seperti apa? Secara sederhana kita dapat menganggap Version Control adalah sistem yang akan mencatat setiap perubahan yang kita lakukan terhadap file yang ada, lalu dengan adanya catatan ini, kita dapat menggunakannya untuk merubah versi file yang ada (seperti kembali ke versi sebelumnya).

Version Control System akan sangat bermanfaat apabila kita bekerja pada lingkungan yang sangat fragile dimana akan sering melakukan perubahan terhadap versi dari file yang ada menyesuaikan dengan kondisi, seperti source code. Pentingnya pemanfaatan VCS akan terlihat apabila mengerjakan sebuah project secara bersama-sama dalam team.

Local vs Centralized vs Distributed VCS

Penggunaan local VCS biasa digunakan oleh banyak orang untuk melakukan pencatatan terhadap perubahan file yang dilakukan. Hal ini berangkat dari masalah yang ada, yaitu tanpa adanya pencatatan, maka untuk melakukan versioning seseorang harus menyimpan beberapa versi file yang ada pada folder yang berbeda dan memindahkannya secara manual. Tapi semenjak adanya Local VCS, kita tidak perlu melakukan itu :D

Local VCS

Namun permasalahan baru muncul, yaitu apabila kita bekerja dalam team sehingga dibutuhkan kolaborasi dengan team member yang lainnya dalam menyelesaikan suatu file, maka penggunaan Local VCS sudah tidak dapat diterapkan. Karena alasan tersebut berkembanglah metode Centralized VCS.

Dengan menggunakan metode ini, maka pencatatan perubahan file akan disimpan pada server sehingga pengguna yang ingin mengakses pencatatan hanya cukup melakukan akses kepada server sehingga memudahkan pengguna apabila ingin berkolaborasi dengan team member lainnya.

Centralized VCS

Namun masih terdapat masalah yang muncul yaitu apabila server yang digunakan untuk menyimpan pencatatan mengalami masalah, maka seluruh pencatatan yang sudah disimpan tidak akan ada gunanya. Seluruh file yang ada berpotensi hilang. Lalu berkembanglah sistem yang digunakan dewasa ini, Distributed VCS.

Apa yang menjadi perbedaan pada Distributed VCS adalah kita tidak hanya mengupload pencatatan pada server, tetapi yang kita lakukan sebenarnya adalah mirroring pencatatan local yang ada ke server, sehingga setiap pengguna sebenarnya masih memiliki penatatan yang tersimpan, sehingga apabila terjadi masalah dengan server maka team member lainnya masih dapat melakukan back-up.

Distributed VCS

Banyak sekali VCS yang bisa digunakan, diantaranya adalah Git, Mercurial, Bazaar, dan Darcs. Dalam PPL kali ini, yang digunakan adalah Git dengan server menggunakan GitLab.

--

--

Kustiawanto Halim
Auto Personalia

Mobile Apps Developer (Android, iOS, Flutter) | IoT enthusiast