Mengapa Distributed Version Control System itu lebih enak dipake

Menurut saya, karena bisa commit dan cabang sesuka hati tanpa harus “mengganggu” orang! Kalau sudah dirasa puas, baru deh di-push ke repositori bersama.

Contoh kasus:

Andai saya sedang mengerjakan suatu fitur. Proses pengerjaan sangat mungkin melibatkan berbagai eksperimen pendahuluan sebelum benar-benar menulis kode yang akan membentuk fitur yang kita kerjakan. Eksperimen yang saya maksud ini contohnya adalah potongan kode-kode pendek yang hanya berupa proof of concept. Berawal dari proof of concept inilah baru kita menyusun kode sebenarnya yang nantinya akan kita simpan di repositori utama (okeh, ini memang agak-agak membuat hal terdistribusi menjadi terpusat).

Selain berbentuk proof of concept, eksperimen dapat juga berbentuk beberapa alternatif cara pembuatan fitur. Setelah kita mencoba beberapa alternatif yang ada, salah satu akan dipilih sebagai kode yang benar-benar menjadi fitur yang dikerjakan.

Dalam pembuatan alternatif maupun proof of concept sangat mungkin kita perlu menyimpan apa yang sudah kita buat. Agar seluruh perubahan dapat ditelusuri, maka tentunya akan lebih baik jika perubahan tersebut kita simpan dalam Version Control System (VCS) yang kita pakai.

Jika kita menggunakan VCS yang terpusat, seluruh kode eksperimen kita ini akan tersimpan dalam repositori utama. Sesuatu yang menurut saya bisa “mengganggu” orang lain atau membuat “sampah” pada repositori utama tersebut. Cabang dapat dibuat dan dihapus dari repositori tersebut namun tetap saja seluruh perubahan akan tersimpan. Padahal, mungkin sebenarnya hanya kode versi final yang perlu disimpan.

Sedangkan kalau kita tidak ingin “mengotori” repositori utama, kita akan cenderung untuk tidak menyimpannya dalam VCS. Proses penyimpanan/backup/penelusuran akan dilakukan secara manual. Lalu, apa gunanya VCS?

Jika kita menggunakan VCS yang terdistribusi, kode-kode eksperimen ini dapat disimpan dengan nyaman pada cabang lokal yang kita miliki. Setelah kita punya satu versi yang dirasa cukup layak untuk dijadikan versi final, kita bisa mengirimnya ke repositori utama. “Bersih” bukan?

Leave a Reply