Langsung ke konten utama

Pengertian VERSION CONTROL



 


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. Sebagai contoh dalam buku ini anda akan menggunakan kode sumber perangkat lunak sebagai berkas yang akan dilakukan version controlling, meskipun pada kenyataannya anda dapat melakukan ini pada hampir semua tipe berkas di komputer.

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 System (VCS) 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 VCS dapat berarti jika anda telah mengacaukan atau kehilangan berkas, anda dapat dengan mudah mengembalikannya. Ditambah lagi, anda mendapatkan semua ini dengan overhead yang sangat sedikit.

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 dimana direktori anda sedang berada, selain itu dapat pula terjadi ketidak sengajaan 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

Salah satu perkakas VCS yang populer adalah rcs, kakas ini masih didistribusikan dengan berbagai komputer pada masa kini. Bahkan sistem operasi Mac OS X menyertakan rcs ketika menginstal Developer Tools. Kakas ini pada dasarnya bekerja dengan cara menyimpan kumpulan patch dari satu perubahan ke perubahan lainnya dalam format khusus pada disk; ini kemudian dapat digunakan untuk menciptakan kembali wujud/keadaan suatu berkas pada suatu saat dengan cara menggunakan patch yang berkesesuaian dengan berkas dan waktu yang diinginkan.

Version Control Systems 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 (CVCSs). Sistem ini, diantaranya CVS, Subversion, dan Perforce, 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

Sistem seperti ini memiliki beberapa kelebihan, terutama jika dibandingkan dengan VCS lokal. Misalnya, setiap orang pada tingkat tertentu mengetahui apa yang orang lain lakukan pada proyek. Administrator memiliki kendali yang mantap atas siapa yang dapat melakukan apa; dan adalah jauh lebih mudah untuk mengelola sebuah CVCS dibandingkan menangani database lokal pada setiap client.

Walau demikian, sistem dengan tatanan seperti ini memiliki kelemahan serius. Kelemahan nyata yang direpresesntasikan oleh sistem dengan server terpusat. Jika server mati untuk beberapa jam, maka tidak ada seorangpun yang bisa berkolaborasi atau menyimpan perubahan terhadap apa yang mereka telah kerjakan. Jika harddisk yang menyimpan basisdata mengalami kerusakan, dan salinan yang beran belum tersimpan, anda akan kehilangan setiap perubahan dari proyek kecuali snapshot yang dimiliki oleh setiap kolaborator pada komputernya masing-masing. VCS lokal juga mengalami nasib yang sama jika anda menyimpan seluruh history perubahan proyek pada satu tempat, anda mempunyai resiko kehilangan semuanya.

Version Control System Terdistribusi

Inilah saatnya bagi Distributed Version Control Systems untuk mengambil tempat. dalam sebuah DVCS (seperti Git, Mercurial, Bazaar atau Darcs), 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

Lebih jauh lagi, kebanyakan sistem seperti ini mampu menangani sejumlah remote repository dengan baik, jadi anda dapat melakukan kolaborasi dengan berbagai kelompok kolaborator dalam berbagai cara secara bersama-sama pada suatu proyek. Hal ini memungkinkan anda untuk menyusun beberapa jenis alur kerja yang tidak mungkin dilakukan pada sistem terpusat, seperti hierarchical model. Dan Version Control yang sering saya gunakan saat ini adalah GITHUB:).

Komentar

Postingan populer dari blog ini

Pengertian MVC (Model, View & Controller)

  Pengertian MVC MVC adalah sebuah arsitektur perancangan kode program. Tujuannya untuk memecah kode program utama menjadi 3 komponen terpisah dengan tugas yang spesifik. Ketiga komponen tersebut adalah:  1. Model(Pengaksesan database) 2. View(Tampilan design/User Interface) 3. Controller(Alur logika program) Gabungan Model-View-Controller inilah yang disingkat sebagai MVC. Ide awal dari perlunya konsep MVC adalah agar aplikasi yang dibuat bisa mudah dikelola dan dikembangkan, terutama untuk aplikasi besar. Sebagai contoh, seorang web designer bisa fokus merancang bagian View saja, yakni tampilan design website yang terdiri dari kode HTML dan CSS plus sedikit JavaScript. Kode program untuk berkomunikasi dengan database bisa ditangani oleh programmer yang secara khusus bagian Model. Serta programmer lain mengatur alur logika program di bagian Controller. Dengan pemisahan seperti ini, kerja tim menjadi mudah dikelola. Selain itu dengan penerapan konsep MVC yang baik, setiap bag...

Spesifikasi Laptop ASUS X441B

Asus X441BA-GA901T merupakan notebook dengan layar 14.0 Inch (16:9) LED backlit HD (1366x768) 60Hz Glare Panel with 45% NTSC dan dilengkapi dengan sistem operasi Windows 10. Notebook ini dilengkapi dengan prosesor AMD Dual-Core A9-9420 APU (3.00 – 3.60 GHz, 1 MB Cache). Spesifikasi :    -Processor : AMD Dual-Core A9-9420 APU (3.00 – 3.60 GHz, 1 MB Cache) -Kamera : VGA Web Camera -VGA : AMD RadeonTM R5 Graphics -Baterai : 3 Cells 36 Whrs Battery -Fitur : Bluetooth, WiFi, DVD Super Multi, Multi-format card reader (SD/SDHC), 1 -x COMBO audio jack, 1 x VGA port, 1 x Type A USB3.0 (USB3.1 GEN1), 1 x Type -C USB3.0 (USB3.1 GEN1), 1 x USB 2.0 port(s), 1 x RJ45 LAN Jack for LAN insert, 1 x HDMI -Layar : 14.0" (16:9) LED backlit HD (1366x768) 60Hz Glare Panel with 45% NTSC Operation System (OS) : Windows 10   Kesimpulan : Menurut saya ini laptop lumayan worth it untuk dipakai buat programming dan saya sedang menggunakannya sekarang. Akan tetapi ketika ingin men develop android di...

5 Negara Dengan Koneksi Internet Tercepat

1. Australia Koneksi internet di Australia termasuk dalam peringkat 5 dengan koneksi internet tercepat dunia dengan kecepatan 26,25 Mbps. Koneksi wifi cepat dan gratis dapat ditemukan dengan mudah di negara tersebut. Boim sudah membuktikannya sendiri ketika berkunjung ke Australia. Dikabarkan Australia memiliki koneksi wifi gratis yang meliputi daerah Central Business Distric Melbournse seluas 600.000 meter persegi. 2. Singapura Negara tetangga kita Singapura juga termasuk dalam negara dengan koneksi internet tercepat dunia dengan kecepatan 30,05 Mbps. Menurut kabar, Singapura sedang mengembangkan sistem koneksi 5G untuk kecepatan jaringan internet. Kabar dari teknologi ini sudah banyak tersebar sejak tahun 2014 lalu. 3. Korea Selatan Posisi teratas ternyata ditempati oleh Korea Selatan dengan kecepatan 37,5 Mbps. Saking kencangnya kecepatan koneksi internet ini, untuk mengunduh data sebesar 5 gb, pengguna hanya membutuhkan waktu sekitar 2,5 menit saja. Hal ini dipengaruhi juga oleh k...