Miért kell a verziókezelés?

Munkánk során a forráskód (és dokumentumok is) folyamatosan változnak, viszont néha előfordul, hogy vissza kell tudnunk keresni egy korábbi vagy egy alternatív verziót. Vagy azért, mert valami nem megy és meg akarjuk keresni, hogy hol romlott el (“Tegnap még ment, csak azóta javítottam valamit…”), vagy mert eleve több verziót kell karbantartanunk (használt verzió, teszt verzió, fejlesztői verzió stb.).

A “most jó, ezt most így be-ZIP-elem” megközelítés egy ideig működik, de ha több fejlesztő is van, nagyon hamar káoszhoz vezet. Ráadásul a forráskód egymás közti megosztása sem triviális: szerveren lévő ZIP, forráskód egy Dropbox megosztásban, fejlesztő monogramjával kezdődő és dátumot is tartalmazó ZIP fájlnév… ezeknek nem lesz jó vége.

Egy verzió kezelő rendszertől elsősorban az alábbiakat várjuk el:

Ezen kívül még elvárhatjuk az alábbiakat is:

Alapvető fogalmak a verziókezelésben

A verziókezelők világában gyakori fogalmak az alábbiak:

Verziókezelők összehasonlítása

A verziókezelők összehasonlításával kapcsolatban most elsősorban az elosztott és a centralizált verziókövetők két neves képviselőjét, a Git-et és a Team Foundation Servert fogom röviden összehasonlítani, mivel ennek a két kategóriának a többi képviselője alapvetően nagyon hasonlóan működik.

A számos másik snippetben bemutatott Git-hez képest a TFS fő eltérései az alábbiak:

TFS alatt a tipikus munkafolyamat a következő:

TFS-hez szokott fejlesztők számára a Git-ben főleg a sok branch és merge olykor ijesztő. Számukra az egyik szerencsés Git-es stratégia a gyakori commit és push/pull mellett a merge helyett a rebase használata, mivel a rebase a TFS-es lineáris (branch mentes) repository koncepciójához hasonló eredményt ad.

Szerzők, verziók: Csorba Kristóf