SVN belső működése
Sziasztok!
Egy ideje már vergődöm egy problémával és a doksi elolvasása sem juttatott előbbre. A verziókezelés mikéntjével szeretnék dűlőre jutni és ezért feltettem az SVN-t.
A problémáim ott kezdődtek, hogy nem voltak leírva ilyen alap dolgok, mint pl. hogy mi az a "head revision". Ergo, a terminológiával sem vagyok tisztában.
A segítség, amit kérnék, az egy RTFM jellegű írás az SVN (vagy akár a CVS) belső működéséről.
Köszi szépen mindenkinek
J
■ Egy ideje már vergődöm egy problémával és a doksi elolvasása sem juttatott előbbre. A verziókezelés mikéntjével szeretnék dűlőre jutni és ezért feltettem az SVN-t.
A problémáim ott kezdődtek, hogy nem voltak leírva ilyen alap dolgok, mint pl. hogy mi az a "head revision". Ergo, a terminológiával sem vagyok tisztában.
A segítség, amit kérnék, az egy RTFM jellegű írás az SVN (vagy akár a CVS) belső működéséről.
Köszi szépen mindenkinek
J
RTFM :)
Lovely
túl általános kérdés ;)
Felhő
Te akartad...
Asszem ennyi volt egyelőre a kérdések halmaza. :D Remélem, elég... :D
Re: Te akartad...
Ez a repositoryban lévő legfrissebb verziót jelenti.
Nem teljesen tiszta, hogy mire gondolsz itt. Minden egyes commit esetén a teljes repository verzió száma megnő eggyel, teljesen mindegy, hogy melyik tagben/branch-ben követed ezt el. Másrészről egy új branch létrehozása csak annyit jelent, hogy létrejön egy új könyvtár a számára repositoryban, de a másolt adatok fizikailag nem kerülnek másolásra. Ha a branchben megváltoztatsz egy fájlt, akkor ez a változás kerül csak letárolásra.
Ez a kérdés sem teljesen tiszta. A working copy nem szokott elromlani, főleg akkor ha az svn parancsokat használod fájlok átnevezésére, törlésére. Néha van, amikor egy folyamat megszakad, lockok megmaradnak, de egy
svn cleanup
parancs ezt megoldja. Ha valamiért sikerül elkefélni, akkor azt tudod csinálni, hogy mondjuk átnevezed, checkoutolod megint, majd ha voltak változtatások, akkor átvezeted őket mondjuk egy winmerge/meld segítségével, és törlöd a régi working copyt.Mi a költsége az egyes műveleteknek? (Főleg a verziók listázásának?)
Hogyan kezeli az SVN a brancheket? Főleg, hogyan kezeli a szálak összefuttatását? (Hogyan látszik ez az adatszerkezetben?)
Ez részben kiderült fentebb már. Az SVN esetén nincs külön tag/branch, bármilyen a repositoryban lévő dolgot elmásolhatsz máshová (
svn copy
), onnantól kedzve az egy branch/tag lesz.A repositoryban van egy hooks könyvtár. Ebben láthatod, hogy milyen hookok vannak. Linux alatt csak a kiterjesztést kell leszedni az adott fájlról, és futtathatóvá tenni (meg persze megírni benne, amit szeretnél), windows alatt valamilyen futtatható kiterjesztésre kell megváltoztatni.
Felhő
Húúú
válaszok fentebb
cvs
BL
CVS elavult SVN-hez képest
o rendesen tudsz benne könyvtárakat is kezelni
o tudsz file-okat átnevezni
o globális revízió szám
o kevesebb kommunikáció a szerverrel (egy csomó műveletet a working
copy-ban is el tudsz végezni)
o optimalizált helyfoglalás
o metaadatok megadásának lehetősége
o plusz még
Felhő