Skip to content
Snippets Groups Projects
Forked from Rafael László / Git Presentation
1 commit behind, 4 commits ahead of the upstream repository.

Verziókezelés

Mi is az a verzió kezelés?
Talán a legegyszerűbb egy példán keresztül szemléltetni.
Tegyük fel egy docx fájlt szerkesztünk és ezt hetente frissítve rendszeresen el kell küldenünk emailben valakinek. Ilyenkor különböző verziók keletkeznek a fájlból és ezeket a postafiókunkból könnyedén elő tudjuk szedni.

Na ugyanazen a példán tovább mehetünk.
Mi van ha lokális kezdjük ezeket a fájlokat tárolni?
Gondolom mindenki találkozott már hasonló fájlnevekkel:

├── elso_beadasom.docx
├── masodik_beadasom.docx
├── masodik_beadasom (1).docx
├── masodik_beadasom (1) Javított.docx
├── masodik_beadasom (1) Javított másolata.docx
├── asd.docx
├── asdasd.docx
└── asdasdasdasd.docx

Ha ügyesek vagyunk még mappákat is készítünk és dátumot is hozzá cimkézünk.

└── 2021
    └── 02
        ├── 13
        │   └── elso_beadasom.docx
        ├── 19
        │   └── masodik_beadasom_felkesz.docx
        ├── 20
        │   ├── masodik_beadasom.docx
        │   ├── masodik_beadasom_javitott.docx
        │   └── masodik_beadasom_vegleges.docx
        └── ideiglenes
            ├── asd.docx
            ├── asdasd.docx
            └── asdasdadsads.docx

Persze az operációs rendszer képes dátum alapján rendezni, és megspórol nekünk pár lépést, de mi van ha ezt valakinek el is szeretnénk küldeni? Mi van ha a módosítás dátuma közben módosul? Hogyan biztosítjuk, hogy közben nem sérülnek a fájlok?

Ezekre megoldást adnak a különböző verziókezelő rendszerek.
Többek közt dolguk, hogy fájljaink számon tartsák, ahogy például kézileg tettük.

Milyen verzió kezelő rendszereink lehetnek?

Helyi

Erre a fenti példa a legjobb példa.
Vannak különböző verziói a fájlunknak és ezeket valamilyen adatbázisban rögzítjük.

Local Version Control Systems

Ilyen az RCS.

Központosított

Ez már egy fokkal okosabb. A különböző verziókat a központi szerverre rakjuk fel és onnan szedjük le.
Például van egy Fájlszerverünk amit minden gépről elérnek az emberek és oda dolgoznak közösen...
Érezhető probléma, hogy így ha meghal a központi szerver, akkor mindent elvesztünk (eskü nem volt még ilyen :sweat_smile:).
Továbbá probléma lehet, hogy egymás munkáját felülírjük, szerencsére egy jó rendszernél erről értesítést kapunk, hozzá és nem felülírjuk a módosításaink.

Centralized Version Control Systems

Megosztott

Na és itt lépünk be a ma is használt Git világába. Ennél a megoldásnál már az a trükk, hogy mindenkinek megvan a teljes projekt az összes verziójával. Felmerül, hogy na de akkor honnan szedjük le a legújabb verziót? Különböző megoldások léteznek, például a fejlesztők a módosításokat azonnal megosztják egymással (pl.: p2p Torrenthez hasonló módon) vagy kijelölnek egy központi szervert amivel mindenki szinkronban van. Ilyen központi szerver lehet például a Github vagy a Gitlab.
Csak megjegyzem, akár a módosításokat emailben is el lehet küldeni és a szoftver automatikusan megcsinálja a többit a mi részünkön.

Distributed Version Control Systems