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

redaktorlaw

Tarqatı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

redaktorlaw

Bó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ı

redaktorlaw

Shı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ı.

  1. Silteme kórsetiwdegi qátelik: Жарамсыз <ref> тегі; no text was provided for refs named git-scm
  2. 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
  3. „Intro to Distributed Version Control (Illustrated)“. www.betterexplained.com. Qaraldı: 7-yanvar 2018-jıl.
  4. „Version Control Systems Popularity in 2016“. www.rhodecode.com. Qaraldı: 7-yanvar 2018-jıl.
  5. 5,0 5,1 O'Sullivan. „Distributed revision control with Mercurial“. Qaraldı: 13-iyul 2007-jıl.
  6. Chacon, Scott. Pro Git. 
  7. „What is version control: centralized vs. DVCS“. www.atlassian.com (14-fevral 2012-jıl). Qaraldı: 7-yanvar 2018-jıl.
  8. Jonathan Allen. „How Microsoft Solved Git's Problem with Large Repositories“ (8-fevral 2017-jıl). Qaraldı: 6-avgust 2019-jıl.
  9. Upadhaye. „Centralized vs Distributed Version Control“. GFG (22-fevral 2023-jıl). Qaraldı: 4-aprel 2024-jıl.