VERSION CONTROL

Artikel ini dibuat sebagai bentuk rasa tanggung jawab saya terhadap tugas yang diberikan oleh pak guru Akhmat Somat Safrudin pada pelatihan python di Yayasan Air Putih kemaren sore.

Dalam bahasa indonesia Version Control adalah Pengontrol versi(atau disebut juga pengontrol revisi, atau manajemen kode sumber) merupakan suatu sistem pengelolaan berbagai revisi dari suatu unit informasi baik berupa dokumen, program, ataupun informasi lainnya yang disimpan dalam media penyimpanan komputer. Sistem ini utamanya digunakan dalam proses pengembangan perangkat lunak dimana tiap anggota dalam tim pengembang dapat saling melakukan perubahan terhadap sebuah berkas yang sama. Tiap-tiap perubahan yang dilakukan biasanya diidentifikasikan dengan menggunakan angka ataupun karakter yang kemudian diistilahkan sebagai “nomor revisi”, ataupun sederhananya disebut “revisi”. Misalnya sekumpulan berkas yang disertakan saat inisialisasi disebut sebagai “revisi 1”, kemudian saat terjadi perubahaan atas satu atau beberapa berkas yang ada disebut sebagai “revisi 2”, dan seterusnya. Tiap-tiap revisi diasosiasikan dengan stempel waktu serta pengguna yang melakukan perubahan tersebut. Sebuah revisi dapat diperbandingkan, dikembalikan, ataupun digabungkan dengan beberapa jenis berkas yang lain.

contoh version control

Contoh Version Control

Sistem pengontrol versi (VCS) umumnya merupakan aplikasi mandiri, namun ada pula yang berfungsi sebagai sub modul dalam berbagai jenis aplikasi seperti pengolah kata(misalnya:OpenOffice Writer,Microsoft Word,KOffice), lembar kerja (spreadsheet) (misalnya:OpenOffice Calc,Microsoft Access), dan berbagai macam sistem manajemen konten. Integrasi terhadap pengontrol revisi ini merupakan salah satu fitur penting yang dimiliki perangkat lunak wiki seperti ((misalnya:MediaWiki),DokuWiki,TWiki, dan lain-lain). Dalam wiki, keberadaan pengontrol revisi memungkinkan pengembalian artikel kembali ke revisi sebelumnya yang sangat penting bagi penulis, ataupun kontributor untuk melacak perubahan yang dilakukan oleh pengguna lainnya, mengoreksi kesalahan, dan mempertahankan wiki terbuka dari vandalisme, ataupun spam.

Perangkat lunak pembantu untuk mengontrol revisi saat ini semakin lebih dikenal karena keberadaannya semakin diperlukan oleh organisasi yang memiliki tim pengembang dalam pengerjaan proyek perangkat lunak.

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

Diagram version control lokal

Salah satu perkakas VCS yang populer adalah rcs, perkakas 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 (lihat Gambar 1-2). 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.

Diagram Version Control Terpusat

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 (lihat Gambar 1-3). 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.

Diagram Version Control Terdistribusi

SUMBER: Wikipedia dan Panduan Git

Iklan
This entry was posted in python.

One comment on “VERSION CONTROL

  1. togatta berkata:

    wuidih mantep nih buat referensi

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