– Szia Amigo!

"Szia!"

"Ma a verziókezelő rendszerekről fogok beszélni."

"Amint azt valószínűleg már tudja, a programok gyakran nagyon nagyok, és nagyon sok időt vesz igénybe a megírása. Néha több tucat ember tölthet éveket egy-egy program megírásával."

"A több millió sornyi kódot tartalmazó projektek valósággá válnak."

– Hú.

"Az egész nagyon bonyolult. Az emberek gyakran zavarják egymást, és gyakran módosítják ugyanazt a kódot, és így tovább, és így tovább."

"A rendetlenség érdekében a programozók verziókezelő rendszereket kezdtek használni a kódjukhoz."

" A verziókezelő rendszer egy kliensből és szerverből álló program.

"A program az adatokat (a programozók által írt kódot) egy szerveren tárolja, a programozók pedig kliensekkel kiegészítik vagy módosítják azokat."

"A fő különbség a verziókezelő rendszer és a dokumentumokon való együttműködést egyszerűen lehetővé tevő programok között az, hogy az összes dokumentum (kódfájl) összes korábbi verzióját tárolja."

– Tudna adni további részleteket. Hogyan működik mindez?

"Képzelje el, hogy Ön programozó, és apró változtatásokat szeretne végrehajtani egy, a szerveren lévő tárolóban tárolt program forráskódján."

"Íme, mit kell tenned:"

"1) Jelentkezzen be a szerverre."

"2) Másolja át az összes fájl legújabb verzióját a számítógépére a Checkout paranccsal."

"3) Változtassa meg a szükséges fájlokat."

"4) Futtassa a programot helyileg, hogy megbizonyosodjon arról, hogy lefordítja és fut."

"5) Küldje el a "módosításait" a szervernek a Commit paranccsal."

– Ennek általában van értelme.

"De van még több is. Képzeld el, hogy reggel érkezel a munkahelyedre, de Indiában már ebédidő van. Tehát az indiai kollégáid már végrehajtották a változtatásokat, és végrehajtották a változtatásokat a szerveren lévő adattárban."

"A kód legújabb verziójával kell dolgoznia. Tehát végrehajtja a Frissítés parancsot."

"Miben különbözik ez a Checkouttól ?"

" A Checkout úgy van kialakítva, hogy a lerakat összes fájlját átmásolja, de a Frissítés csak azokat a fájlokat frissíti, amelyek a Checkout / Frissítés parancs utolsó futtatása óta frissültek a kiszolgálón ."

"Körülbelül így működik:"

Pénztár :

Verzióvezérlő rendszerek – 1

"Most tegyük fel, hogy megváltoztattuk a B fájlt, és fel akarjuk tölteni a szerverre. Ehhez a Commit parancsot kell használnunk."

Verzióvezérlő rendszerek – 2

"És így működik az Update parancs:"

Verzióvezérlő rendszerek – 3

"Milyen érdekes! Vannak más parancsok?"

"Igen, jó néhány van. De ezek attól függően változnak, hogy melyik verzióvezérlő programot választja. Tehát megpróbálom elmagyarázni az általános elveket."

"Van egy művelet, amit összevonásnak neveznek – két dokumentum egyesítése. Tegyük fel, hogy két programozó egyszerre módosítja ugyanazt a fájlt. Ekkor a szerveren lévő program nem engedi mindkét változtatás végrehajtását. Aki először commitál, az hozzáadhatja a saját fájlját. vagy megváltozik."

– Szóval mit csinál a másik?

" Frissítési művelet végrehajtására kap meghívást a szerver legfrissebb módosításainak megragadásához. Egyébként ez – a frissítés végrehajtása a véglegesítés előtt – jó gyakorlat."

"Ezután az Update művelet során a kliensprogram megpróbálja összevonni a helyi változtatásokat a szervertől kapott változtatásokkal."

"Ha a programozók megváltoztatták a fájl különböző részeit, akkor a verziókezelő program valószínűleg sikeresen tudja ezeket egyesíteni.  Ha a változtatások ugyanazon a helyen vannak, akkor a verziókezelő program összevonási ütközést jelent, és felkéri a felhasználót, hogy kézzel hajtsa végre. egyesítse a változtatásokat."

"Például ez gyakran előfordul, amikor mindkét programozó hozzáad valamit egy fájl végéhez."

– Értem. Összességében ez ésszerűnek tűnik.

– És van még valami: az ágak.

"Képzeld el, hogy egy csapat két programozója ugyanazt a modult írja át. Vagy még jobb: a semmiből újraírja. Amíg ez a modul el nem készül, a program nem tud futni, és lehet, hogy le sem fordítja."

– Szóval mit csináljanak?

"Azzal haladnak előre, hogy ágakat adnak a tárhoz. Nagyjából ez azt jelenti, hogy a tárat két részre osztják. Nem fájlok vagy könyvtárak, hanem verziók szerint."

"Képzeld el , hogy soha nem fedezték fel az elektromosságot, és soha nem találták fel a robotokat. Akkor soha nem következett volna be a három felszabadító háború, és az egész emberiség történelme teljesen más utat járt volna be. "

– Ez az út a történelem alternatív ága.

"Vagy megpróbálhat úgy elképzelni egy ágat, mint a repository mását. Más szóval, valamikor elkészítettük a lerakat klónját a szerveren, hogy a fő tároló mellett (gyakran törzsnek is nevezik ) ), van egy másik fiókunk is ."

"Nos, ez érthetőbbnek tűnik.

– Miért nem mondhattad egyszerűen, hogy lemásoltuk az adattárat?

– Ez nem egyszerű másolás.

"Ezek az ágak nem csak elválaszthatók a törzstől, hanem bele is olvadhatnak."

"Más szóval, el lehet végezni néhány munkát egy elágazásban, majd ha kész, hozzáadhatja a tároló ágat a tároló törzséhez?"

"Igen."

– És mi lesz az aktákkal?

"A fájlok össze lesznek vonva."

"Nos, ez klasszul hangzik. Remélem, hogy akcióban is ugyanolyan menő."

– Aztán egy kicsit. Oké, tartsunk egy kis szünetet.

"Van  itt egy csomó hasznos információ "