Menjelajahi kontrol sumber dan kontrol versi

Selesai

Penggunaan kontrol sumber dan versi adalah praktik DevOps dasar. Ini juga merupakan prasyarat untuk praktik seperti integrasi dan infrastruktur berkelanjutan sebagai kode, yang keduanya sangat penting untuk mencapai potensi DevOps penuh. Organisasi dalam skenario sampel kami harus meninjau strategi pengembangan perangkat lunak kolaboratifnya saat ini dan transisi ke model kontrol versi terdistribusi seperti Git, terutama mempertimbangkan rencananya untuk menggunakan GitHub untuk manajemen siklus hidup perangkat lunaknya. Namun, ini membutuhkan pemahaman yang baik tentang versi dan prinsip kontrol sumber dan manfaatnya, yang akan kita bahas di sini.

Kontrol sumber dan kontrol versi

Cuplikan layar sistem kontrol sumber dengan beberapa file dan riwayat versinya.

Istilah kontrol sumber dan kontrol versi sering digunakan secara bergantian, dan dalam banyak konteks, mereka merujuk pada konsep yang sama. Secara umum, keduanya dikaitkan dengan praktik mengelola perubahan pada kode di lingkungan pengembangan bersama. Namun, Anda mungkin menemukan skenario yang lebih bernuansa di mana maknanya sedikit berbeda. Dalam skenario ini, kontrol sumber menunjuk sistem yang mengelola perubahan pada file kode sumber sementara kontrol versi mencakup manajemen perubahan jenis file apa pun untuk tujuan yang melampaui kode sumber saja. Ke depannya, demi konsistensi, kita akan menggunakan istilah kontrol versi untuk mewakili repositori perangkat lunak kolaboratif berbasis Git yang tersedia di GitHub dan Azure DevOps.

Apa manfaat kontrol versi?

Kontrol versi melacak perubahan pada file dalam lingkup manajemennya. Ini menawarkan berbagai manfaat:

  • Riwayat dan pelacakan versi: Anda memiliki kemampuan untuk meninjau riwayat perubahan pada file apa pun, termasuk kemampuan untuk menentukan kapan setiap perubahan individu terjadi dan apa cakupannya. Ini juga memberikan keterlacakan, biasanya dengan mengaitkan setiap set perubahan dengan pengidentifikasi unik.

  • Putar kembali dan pemulihan: Jika ada kesalahan atau masalah, Anda dapat dengan mudah mengembalikan perubahan untuk memulihkan versi yang diketahui dan berfungsi dari file yang terpengaruh.

  • Pencabangan dan penggabungan: Jika Anda perlu memperluas fungsionalitas kode saat ini dengan menambahkan fitur lain atau memperbaiki bug yang baru ditemukan, Anda dapat membuat cabang yang disebut, yang memungkinkan Anda bekerja secara independen terhadap basis kode yang ada. Cabang baru awalnya identik dengan cabang utama yang menghosting kode saat ini. Setelah menyelesaikan perubahan, Anda menggabungkan cabang baru dengan cabang utama. Meskipun ini mungkin masih menyebabkan konflik (jika pengembang lain memutuskan untuk memodifikasi kumpulan file yang sama sementara itu melalui cabang lain), cakupannya terbatas dan biasanya dapat dengan mudah diidentifikasi dan diselesaikan.

    Cuplikan layar strategi cabang dengan beberapa cabang, termasuk main, bugfix, dan fitur-fiturnya.

  • Kolaborasi dan pengembangan paralel: Ketentuan resolusi konflik dilengkapi dengan percabangan dan penggabungan memfasilitasi memiliki beberapa pengembang yang bekerja pada basis kode yang sama, yang meningkatkan efisiensi. Dengan sistem kontrol terdistribusi, seperti Git, bahkan dimungkinkan untuk menulis kode dalam mode terputus. Kolaborasi juga melibatkan tinjauan sejawat terhadap permintaan tarik, memungkinkan berbagi pengetahuan dan transparansi.

  • Automation: Kontrol versi adalah bagian penting dari integrasi berkelanjutan dan penyebaran otomatis. Build dan pengujian otomatis dapat dipicu setiap kali versi baru kode dikirim ke repositori pengendali versi atau digabungkan dengan cabang utama. Versi kode yang berbeda dapat disebarkan ke lingkungan yang berbeda.