Versiya boshqarish tizimi

Dasturiy injiniringida **Versiya Boshqarish tizimi** (shuningdek, **manba nazorat tizimi**, **manba kodi boshqaruv tizimi** sifatida ham maʼlum) kompyuter dasturlari, dokumentatsiyalar, yirik veb-saytlar yoki boshqa maʼlumotlar bazasidagi oʻzgarishlarni nazorat qilish va boshqarish uchun ishlab chiqilgan tizim. Versiya nazorati dasturiy taʼminot konfiguratsiyasini boshqaruvchi komponent hisoblanadi.

Dasturiy taʼminot manbasi kodlaridagi oʻzgarishlar sonlar yoki harflar yordamida identifikatsiyalanadi. Misol uchun, dastlabki kod fayllari toʻplami „Versiya 1“ deb nomlanadi, birinchi oʻzgartirish sodir boʻlgandan soʻng esa „Versiya 2“ va shu tarzda tizimdagi oʻzgarishlar qayd etib boriladi. Ushbu versiyalar bir-biriga solishtirilishi, qayta tiklanishi va birlashtirilishi mumkin.

Versiyalar boshqaruv tizimlari koʻpincha mustaqil ilova sifatida ishlaydi, biroq matn protsessorlari va elektron jadvallar, veb hujjatlar, va kontentni boshqarish tizimlari(ingl. CMS) kabi turli xil dasturiy taʼminotga oʻrnatiladi. Qayta tiklash tizimi (Revision Control) hujjatni oldingi tahririga qaytarish imkonini beradi, bu muharrirlarga bir-birlarining tahrirlarini kuzatish, xatolarni tuzatish uchun muhim ahamiyatga ega.

= Umumiy =
Git va lotin dasturiy taʼminotdan oldin, dasturiy taʼminot ishlab chiquvchilari loyihalarini ishlab chiqishda oʻzlarining fayllarini papkalarga zaxiralashardi. Ehtimol, bu loyihaga ega boʻlgan dasturchi uchun muammo emas edi. Biroq, bu bir nechta dasturchilarni oʻz ichiga olgan jamoaga kelganda jiddiy muammolarni keltirib chiqardi. Ishlab chiquvchilar markazlashtirilgan tizimga ega boʻlmaganligi sababli, har bir kishi oʻzining zaxira nusxasida ishlagan va butun loyiha davomida ishlab chiqilgan fayllar holatini kuzatib bora olmadi. Natijada, dasturchilar uchun juda qiyin vaqt yoʻqotishlari bor edi. Bu yerda versiyani boshqarish tizimi paydo boʻldi. Versiyalarni boshqarish tizimi – bu loyiha ishlab chiquvchilari tomonidan maʼlum muddatlarda zaxira nusxasini yaratish va kerak boʻlganda zaxiralangan eski versiyaga osongina qaytish imkonini beruvchi tizim.
= Tarixi =
IBM ning OS/360 IEBUPDTE dasturiy taʼminot yangilash tizimi 1962 yilga borib taqaladi va bu, ehtimol, versiyalar boshqaruv tizimining birinchi avlodi hisoblanadi. Ushbu yillarda IBM 360/370 tizimi tomonidan ikkita manba boshqaruvi (ingl. Source Control) va versiyani boshqarish paketlari: The Librarian va Panvalet keng qoʻllangan.

1972-yilda xuddi shu OS/360 tizimi uchun toʻlaqonli versiyada manba kodini boshqarish tizimi ishlab chiqildi.

1975-yil 4-dekabrda namoyish etilgan Manba kodini boshqarish tizimi(Source Code Control System) tarixiy jihatdan ilk qayta ishlash boshqaruvi tizimi(Revision Control System yoki RCS) hisoblanadi.

= Tuzilishi =
Qayta ishlash boshqaruv tizimi(ingl. RCS) vaqt oʻtishi bilan maʼlumotlar bazasidagi oʻzgarishlarni boshqaradi va qayd etib boradi. Ushbu oʻzgarishlar turli yoʻllar orqali tizimlashtiriladi.

Koʻpincha maʼlumotlar fayllar yoki hujjatlar sifatida koʻriladi va ushbu fayllardagi oʻzgarishlarni kuzatib boriladi. Bu alohida fayllar haqidagi sezgilarga mos keladi, lekin identifikator oʻzgarganda, masalan, fayllar nomini oʻzgartirish, boʻlish yoki birlashtirish paytida muammolarni keltirib chiqaradi. Shunga koʻra, Git kabi baʼzi tizimlar oʻrniga maʼlumotlarga oʻzgarishlarni bir butun sifatida koʻrib chiqadilar, bu oddiy oʻzgarishlar uchun kamroq intuitiv, ammo murakkabroq oʻzgarishlarni soddalashtiradi.

Agar bir nechta odam bitta maʼlumotlar bazasi(toʻplami) ustida ishlayotgan boʻlsa, ular bilvosita maʼlumotlar bazasining boshqa oqimini (ishchi nusxalarini yoki ingl. Branches) yaratib olishadi va bu keyinchalik maʼlumotlarni birlashtirishda muammolar keltirib chiqaradi. Oddiy kollabrativ hujjat tahrirlashda fayllarni bloklash yoki kimdir ishlayotgan hujjatda boshqa insonning ishlashini oldini olish orqali bu muammo yechiladi

RCS(Qayta ishlash boshqaruv tizimi)lari koʻpincha markazlashtirilgan boʻlib, yagona maʼlumotlar ombori yaʼni repozitoriya va roʻyxatdan oʻtish va roʻyxatdan oʻtish orqali ushubu markaziy omborga yoʻnaltiruvchi havola mavjud boʻladi.

= Manbalar =