Git
Chapters ▾ 2nd Edition

1.1 Иш бошланиши - Талқинларни бошқариш ҳақида

Ушбу бўлим Git ҳақида маълумот бериш билан бошланади. Биз бошланишида баъзи талқинларни бошқариш тизимлари ҳақида, сўнгра Git ни сизни тизимингизда қандай ишга тушириш ва охирида қандай созлаш ва у билан ишлашни бошлаш ҳақида ёритганмиз. Ушбу бўлим охирида сиз Git нимани англатади, уни сиз нима учун ишлатишингиз мумкин ва қандай бошланғич созлашлар кераклигини билиб оласиз.

Талқинларни бошқариш ҳақида

"Талқинларни бошқариш тизими" нима ўзи ва нима учун у сизга керак? Талқинларни бошқариш тизими (ТБТ) – бу ўзгаришларни бир ёки бир нечта файлларда сақлаб сўнгра ана шу файллар асосида танланган эски талқинларни тиклаш имконини берувчи тизим. Ушбу китобда мисол тариқасида программа коди олинган бўлсада, лекин деярли ихтиёрий кенгайтмали файлар талқинини ушбу тизим ёрдамида бошқариш мумкин.

Агар сиз графиклар билан ишлайдиган мутахассис ёки веб-дизайнер бўлсангиз ва ҳар бир тасвир ёки макетнинг талқинини сақлашни хоҳласангиз у ҳолда талқинларни бошқариш тизимидан фойдаланиш хулосасига келиш айни муддао бўлади. У тизим файлларни аввалги ҳолатига қайтариш имконини беради, бутун бир лойиҳани (проектни) аввалги ҳолатга қайтара олади, аниқ бир вақтлар мобайнидаги ўзгаришларни солиштириш, хатолик юз берган модулни ким охири ўзгартирганлигини, ким муаммони келтириб чиқарган ва шу кабиларни кўриш имконини беради. Умуман айтганда агарда сиз ТБТ дан фойдаланган ҳолатда бирор файлни бузсангиз ёки йўқотиб қўйсангиз барчасини онсонгина тиклаш мумкин. Бундан ташқари ушбу ишларга жуда кам вақт сарф этилади.

Маҳаллий - талқинларни бошқариш тизимлари

Кўпчилик одамлар талқинлар билан ишлаш учун оддийгина қилиб файлларни нусхалашади (ақллилар яна жорий санани ҳам каталог номига қўшиб қўяди). Бундай ёндашув кенг тарқалганлиги сабаби уни онсонлиги, лекин у ҳам кўп ноқулайликларга эга. Бу вазиятда хато қилиш онсон: масалан, хозир ўйлаган каталогдаги файлни ўзгартираябман дея адашиб бошқа файлни ўзгартириб қўйиш ёки шундай адашиш каби бир файлни иккинчи каталог ичига кўчириб керакли файл устидан ёзиб юбориш мумкин.

Бу муаммони ҳал қилиш мақсадида дастурчилар анча аввал керакли файлларда бўладиган барча ўзгаришларни сақлаш учун оддий маълумотлар омборига эга бўлган маҳаллий ТБТ ни ишлаб чиқишди.

Маҳаллий талқинларни бошқариш тизими тасвири
Figure 1. Маҳаллий - талқинларни бошқариш тизимлари.

Ушбу турга тегишли бўлган таниқли ТБТ лардан биттаси RCS бўлиб, уни хозирги кунда ҳам жуда кўп компьютерларга ўрнатишади. Ҳаттоки замонавий операцион тизим Mac OS X да ҳам rcs дастгоҳ DeveloperTools билан биргаликда қўшиб ўрнатилади. Ушбу дастгоҳ дискда махсус форматда сақланувчи бир нечта ўзгаришлар орасидаги патчлар (патч-файл, файллар орасидаги ўзгаришларни изоҳлайди) билан ишлашга асосланган. Бу патчларни кетма-кет таҳлаб ихтиёрий файлларни ихтиёрий вақтда олдиндан яратиш имконини беради.

Талқинларни бошқарувчи марказлаштирилган тизимлар (ТБМТ)

Навбатдаги жиддий муаммо бошқа компьютерда яратувчилар билан бирга ишлаш зарурати эди. Уни ҳал қилиш учун талқинларни бошқарувчи марказлаштирилган тизимлар (ТБМТ) яратилди. Бундай тизимларда масалан CVS, Subversion ва Perforce ларда кузатув остидаги файллар сақланадиган ва бир қатор мижозларнинг ана шу файллардан нусхасини олиш имконини берадиган марказий сервер мавжуддир. Бу кўп йиллар давомида талқинларни бошқариш тизимининг стандарти бўлди .

Талқинларни бошқарувчи марказлаштирилган тизимлар
Figure 2. Талқинларни бошқарувчи марказлаштирилган тизимлар (ТБМТ).

Бундай ёндашув кўп имкониятлар яратади, асосан маҳаллий ТБТ да ишлаганда бу янада сезиларли. Мисол учун лойиҳада ким нима билан шуғулланишини ҳамма билади. Администраторларда ким нима қила олишлигининг аниқ бошқаруви бор ва албатта ТБМТ ни администратор ҳуқуқида бошқариш ҳар бир клиентлар маҳаллий базаларини администратор ҳуқуқида бошқаришга нисбатан анча енгилдир.

Бироқ бундай ёндашувнинг жиддий ўз нуқсонлари мавжуд. Энг муҳими – марказлаштирилган сервер бутун тизимнинг ҳимояланмаган жойи ҳисобланади. Агар сервер бир соатга ўчиб қолса шу бир соат мобайнида дастур яратувчилар ўзаро маълумот алмашина олишмайди ва ҳеч ким янги талқинларни сақлай олмайди. Агарда марказлаштирилган тизим маълумотлар омбори жойлашган диск бузилса ва унинг нусхаси бўлмаса, сиз ҳамма нарса – барча лойиҳа тарихини йўқотасиз (фақат фойдаланувчилар машиналарида сақланиб қолган бир нечта талқинларгина сақланиб қолинади). Талқинларни бошқаришнинг маҳаллий тизимлари ҳам шундай камчиликка эга: агарда лойиҳанинг ҳамма тарихи битта жойда сақланса - сиз ҳаммасидан айрилиб қолишингиз мумкинлигини билиб таваккал қилган бўласиз.

Талқинларни бошқарувчи тақсимланган тизимлар (ТБТТ)

Бундай вазиятларда талқинларни бошқарувчи тақсимланган тизимлар (ТБТТ) ўйинга киради. Шу турдаги Git, Mercurial, Bazaar ёки Darcs каби тизимлар мижозлари нафақат файлларнинг охирги талқинини балки бутун ҳамма омборни кўчириб олишади. Шунинг учун иш олиб борилаётган сервер “ўлган” ҳолатда омборни тиклаш мақсадида ихтиёрий мижоз омбори серверга юкланиб олиниши мумкин. Мижоз ҳар сафар файлларнинг янги талқинини кўчириб олганида барча маълумотларнинг янги нусхаси яратилади.

Талқинларни бошқарувчи тақсимланган тизимлар
Figure 3. Талқинларни бошқарувчи тақсимланган тизимлар (ТБТТ).

Бундан ташқари бундай тизимларнинг кўп қисмларида узоқ масофадаги бир нечта омборлар билан ишлаш мумкин, бу эса бир вақтнинг ўзида лойиҳага оид бўлган бир нечта гуруҳлар одамлари билан бошқа-бошқа иш олиб бориш имконини беради. Шу тариқа марказлаштирилган тизимларда мавжуд бўлмаган имкониятдан фойдаланиш яъни, битта лойиҳада бир вақтнинг ўзида бир нечта иш жараёнларини юритиш мумкин.