Tarqatılǵan versiyanı basqarıw
Programmalıq támiynattı islep shıǵarıwda tarqatılǵan versiyanı basqarıw (ingl. distributed version control. Sonday-aq, tarqatılǵan qayta qarawdı basqarıw ingl.distributed revision control) ‒ bul tolıq kod bazasın, onıń tolıq tariyxın qosqanda, hár bir islep shıǵarıwshınıń kompyuterine kóshirilgen versiyanı basqarıwdıń bir túri. Oraylastırılǵan versiyanı basqarıwǵa qaraǵanda, bul avtomatlı tarmaqlanıwdı hám birlestiriwdi basqarıwǵa, kóp operaciyalardı tezlestiriwge (tekseriw hám tarqatıwdan basqa), onlayn emes jumıs islew imkaniyatın jaqsılawǵa hám saqlıq kóshirmeler ushın bir orınǵa ǵárezlilikke imkaniyat beredi.[1][2][3] Dúnyadaǵı eń ataqlı versiyalardı basqarıw sisteması bolǵan Git,[4] tarqatılǵan versiyanı basqarıw sisteması bolıp tabıladı.
2010 jılı programmalıq támiynattı islep shıǵarıwshı avtor Djoyl Spolksi tarqatılǵan versiyalardı basqarıw sistemalarınıń "sońǵı on jıldaǵı programmalıq támiynattı islep shıǵarıw texnologiyasındagı eń úlken alǵa ilgerlew" ekenligin ayttı.[2]
Tarqatılǵan hám oraylastırılǵan
redaktorlawTarqatılǵan versiyalardı basqarıw sistemaları (DVCS) versiyalardı basqarıw ushın oraylastırılǵan sistemalardıń klient-server usılına qarama-qarsı, teń dárejeli usılın qollanadı. Tarqatılǵan qayta qarawdı basqarıw teń dárejeli arasında patchlerdi jetkerip beriw arqalı repozitoriyalardı sinxronlaydı. Kod bazasınıń tek bir oraylıq versiyası joq; onıń ornına hárbir paydalanıwshı jumıs kóshirmesine hám tolıq ózgeris tariyxına iye.
DVCS artıqmashılıqları (oraylastırılǵan sistemalar menen salıstırǵanda) tómendegilerdi qamtıydı:
- Paydalanıwshılarǵa tarmaqqa qosılmaǵan gezde ónimli jumıs islewge imkaniyat beredi.
- Ulıwma operaciyalar (mısalı, commitlerdi jaratıw, tariyxtı kórsetiw hám ózgertiwlerdi qaytarıw) DVCS-te tezirek, óytkeni oraylıq server menen baylanısıwdıń zárúrligi joq.[5] DVCS-te baylanıs tek ózgerislerdi basqa teń dárejelilerge bólisiw gezinde ǵana kerek.
- Jeke jumısqa imkaniyat beredi, usılayınsha paydalanıwshılar ózleriniń ózgertiwlerin, hátte járiyalaǵısı kelmeytuǵın erte shıǵarılǵan versiyalarda da paydalana aladı.
- Jumıs kóshirmeleri aralıqtaǵı saqlıq kóshirme retinde ónimli jumıs isleydi, bul bir fizikalıq mashinaǵa bir sátsiz noqat retinde iseniwge imkaniyat bermeydi.[5]
- Hár túrli rawajlanıw modellerin, mısalı, rawajlanıw tarmaqlarınıń paydalanıwın yamasa Komandır/Leytenant modelin qollanıwǵa imkaniyat beredi.[6]
- Proekttiń “shıǵarıw versiyasın” oraylastırılǵan basqarıwǵa imkaniyat beredi.
- FOSS programmalıq proektlerge, jetekshilik konfliktleri yamasa dizayn kelispewshilikleri sebepli toqtap qalǵan proektten proekttiń kóshirmesin jaratıwǵa ańsat.
DVCS kemshilikleri (oraylastırılǵan sistemalar menen salıstırǵanda) tómendegilerdi qamtıydı:
- Repozitoriydi dáslepki ret tekseriw oraylastırılǵan versiyalardı basqarıw sistemalarındaǵı tekseriwge qaraǵanda ástenirek, óytkeni barlıq filiallar menen rawajlanıw tariyxı ádepki boyınsha jergilikli mashinaǵa kóshiriledi.
- Kóplegen oraylastırılǵan VCS-tiń bólegi bolǵan qulıplar mexanizmleriniń joqlıǵı, bul grafikalıq aktivler yamasa júdá quramalı jeke fayl ekilik yamasa XML paketleri (mısalı, ofis hújjetleri, PowerBI faylları, SQL Server Data Tools BI paketleri t.b.) sıyaqlı birlestirile almaǵan ekilik fayllarǵa kelgende de áhmiyetli rol oynaydı.
- Hár bir paydalanıwshınıń tolıq kod bazasınıń tolıq tariyxınıń kóshirmesine qosımsha saqlaw kerek.[7]
- Hár bir qatnasıwshınıń jergilikli túrde qáwipli kóshirmesine iye bolǵanlıqtan, kod bazasınıń qáwipke ushıraw dárejesi arttı.
Ayırım dáslepki oraylastırılǵan sistemalar endi ayırım bólingen imkaniyatlardı usınadı. Team Foundation Server hám Visual Studio Team Services endi Git xostingi arqalı oraylastırılǵan hám tarqatılǵan versiyalardı basqarıw repozitoriyların jaylastıradı.
Sol sıyaqlı, ayırım tarqatılǵan sistemalar házir fayllardı júklep alatuǵın virtual fayl sistemanı ashatuǵın júdá úlken kod bazaları menen jumıs islew ushın Microsoft tárepinen islep shıǵarılǵan Git ushın virtual fayl sisteması[8] sıyaqlı jergilikli saqlaw kerek bolǵan jaǵdayda ǵana tekseriw waqıtları menen saqlaw shıǵınları máselelerin jeńilletetuǵın imkaniyatlardı usınadı.
Jumıs modeli
redaktorlawBólistirilgen model, mısalı, Linux yadrosı proekti sıyaqlı, bólek islep shıǵarıwshıları bar úlken proektler ushın, kóbinese jaqsıraq bolıp tabıladı, óytkeni islep shıǵarıwshılar jeke jumıs isley aladı hám birlestiriw ushın (yamasa bas tartıw ushın) óz ózgertiwlerin jiberedi. Bul beyimlilik integrator jumıs procesi sıyaqlı, eń keńnen qollanılatuǵın, ózine tán derek kodın qosıw jumıs proceslerin qabıl etiwge imkaniyat beredi. Oraylastırılǵan modelde, islep shıǵarıwshılar hár túrli versiyalardaǵı máselelerdiń aldın alıw ushın óz jumısların seriyalawı kerek bolǵan jaǵdayda, bólingen modelde islep shıǵarıwshılar kodtıń tutas tariyxın óz jergilikli mashinalarına kóshirip alıwǵa boladı. Olar “ózgerisler jıynaǵın” jaratıp, ózgertiwlerin aldı menen jergilikli repozitoriylerge minnetleydi, keyin olardı tiykarǵı repozitoriyǵa jiberedi. Bul usıl islep shıǵarıwshılarǵa jergilikli hám ajıratılǵan jumıs islewge imkaniyat beredi, bul bólingen komandalarda qolaylıraq.[9]
Oraylıq hám filial repozitoriyları
redaktorlawShın mánisinde bólingen proektlerde, mısalı, Linuxta, hár bir úles qosıwshı proekttiń ózin saqlap, hár túrli úles qosıwshılar ózin sáykes versiyaların jaylastıradı hám kerek bolǵan jaǵdayda basqa paydalanıwshılardan ózgerislerdi alıp, kóplegen hár túrli túyinlerden ulıwma kelisimniń payda bolıwına ákeldi. Bul sonday-aq “fork” etiw procesin ańsatlastıradı, óytkeni tek bir úles qosıwshı basqa úles qosıwshılardan pull sorawların qabıl etpeydi hám kod bazalarınıń az-azdan bólenip ketiwine jol beredi.
Degen menen bul kelisimdi saqlaw qıyın bolıwı múmkin, nátiyjesinde kóplegen proektler bir qatnasıwshı universal “joqarı aǵım” bolıp tabılatuǵın paradigmaǵa almasıwdı tańlaydı, repozitoriyden ózgerisler bárqulla derlik alınadı. Bul paradigma boyınsha rawajlanıw biraz jaqınlaydı, óytkeni házir hárbir proektte rásmiy emes túrde rásmiy repozitoriy retinde qarastırılatuǵın, proektti qollawshılar birlesip basqaratuǵın oraylıq repozitoriy bar. Tarqatılǵan versiyalardı basqarıw sistemaları jańa islep shıǵarıwshılarǵa hár qanday basqa úles qosıwshınıń repozitoriyiniń kóshirmesin “klonlaw” imkaniyatın ańsatlastırsa da, oraylıq modelde jańa islep shıǵarıwshılar kod bazasınıń birdey jergilikli kóshirmelerin jaratıw ushın bárqulla oraylıq repozitoriydi klonlaydı. Bul sistema boyınsha oraylıq repozitoriydegi kod ózgerisleri waqtı menen jergilikli repozitoriy menen sinxronlanadı hám islep shıǵıw juwmaqlanǵannan keyin ózgertiw oraylıq repozitoriyge tezirek biriktiriliwi kerek.
Bul oraylastırılǵan modeldi paydalanatuǵın shólkemler kóbinese GitHub sıyaqlı úshinshi tárep xızmetinde oraylıq repozitoriydi jaylastırıwdı tańlaydı, ol ózbetinshe jaylastırılǵan repozitoriylerge qaraǵanda isenimli jumıs waqtın usınıw menen birge, sonıń menen qatar máseleni baqlawshılar menen úziliksiz integraciya sıyaqlı oraylastırılǵan imkaniyatlardı qosa aladı.
Derekler
redaktorlaw- ↑ Silteme kórsetiwdegi qátelik: Жарамсыз
<ref>
тегі; no text was provided for refs namedgit-scm
- ↑ 2,0 2,1 Spolsky. „Distributed Version Control Is Here to Stay, Baby“. Joel on Software (17-mart 2010-jıl). Qaraldı: 4-iyun 2019-jıl.
Silteme kórsetiwdegi qátelik: Invalid
<ref>
tag; name "Joel 2010" defined multiple times with different content - ↑ „Intro to Distributed Version Control (Illustrated)“. www.betterexplained.com. Qaraldı: 7-yanvar 2018-jıl.
- ↑ „Version Control Systems Popularity in 2016“. www.rhodecode.com. Qaraldı: 7-yanvar 2018-jıl.
- ↑ 5,0 5,1 O'Sullivan. „Distributed revision control with Mercurial“. Qaraldı: 13-iyul 2007-jıl.
- ↑ Chacon, Scott. Pro Git.
- ↑ „What is version control: centralized vs. DVCS“. www.atlassian.com (14-fevral 2012-jıl). Qaraldı: 7-yanvar 2018-jıl.
- ↑ Jonathan Allen. „How Microsoft Solved Git's Problem with Large Repositories“ (8-fevral 2017-jıl). Qaraldı: 6-avgust 2019-jıl.
- ↑ Upadhaye. „Centralized vs Distributed Version Control“. GFG (22-fevral 2023-jıl). Qaraldı: 4-aprel 2024-jıl.