ugrás a tartalomhoz

SVN belső működése

janoszen · 2006. Júl. 25. (K), 19.32
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
 
1

RTFM :)

Bártházi András · 2006. Júl. 25. (K), 20.00
http://svnbook.red-bean.com/
2

Lovely

janoszen · 2006. Júl. 25. (K), 20.50
Köszi szépen, beleásom magam. :D I love to RTFM. :D
3

túl általános kérdés ;)

Hodicska Gergely · 2006. Júl. 25. (K), 22.20
Mi az, ami konkrétan érdekelne?


Felhő
4

Te akartad...

janoszen · 2006. Júl. 25. (K), 22.31
Én ki akartam bogarászni magam, de te akartad. :D

  • Mi az a head revision?
  • Hogyan alakulnak a revisionök a branchelésnél?
  • El lehet-e cseszni az SVN verziókezelését a kliens oldalról vagy biztonságosan van megoldva? (Láttam mindeféle mappákat a repositoryban, amik elvileg a branchelést szolgálták. Abba nem lehet belepiszkítani nem megfelelő használattal?)
  • Hogyan rendeli össze a verziókat az SVN? Daisy chain módszerrel vagy listában? Esetleg mással?
  • 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?)
  • Hogyan kell az SVNhez hook scripteket írni? Specifikusan, lehet-e az összes eseményre (commit, stb.) hook scriptet definiálni? Ezek milyen paramétereket kapnak és hogyan? Mennyire oprendszer függő ez?


Asszem ennyi volt egyelőre a kérdések halmaza. :D Remélem, elég... :D
7

Re: Te akartad...

Hodicska Gergely · 2006. Júl. 26. (Sze), 08.15
Mi az a head revision?

Ez a repositoryban lévő legfrissebb verziót jelenti.
Hogyan alakulnak a revisionök a branchelésnél?

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.
El lehet-e cseszni az SVN verziókezelését a kliens oldalról vagy biztonságosan van megoldva?

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.

Hogyan rendeli össze a verziókat az SVN?
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.

Hogyan kell az SVNhez hook scripteket írni? Specifikusan, lehet-e az összes eseményre (commit, stb.) hook scriptet definiálni? Ezek milyen paramétereket kapnak és hogyan? Mennyire oprendszer függő ez

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ő
8

Húúú

janoszen · 2006. Júl. 26. (Sze), 08.45
Húúú, ha ezeket megválaszolod, akkor sokkal előbbre leszek. Köszi.
9

válaszok fentebb

Hodicska Gergely · 2006. Júl. 26. (Sze), 15.23
.
5

cvs

breakline · 2006. Júl. 25. (K), 22.36
CVS-ről elég sok helyen találsz jó infokat, pl. http://www.cvsnt.org/wiki/ (windozra), ha a php-vel való kapcsolat érdekel George Schlossnagle PHP fejlesztés felsőfokon c. könyvét keresd, abban egy egész (al)fejezet foglalkozik a CVS-el


BL
6

CVS elavult SVN-hez képest

Hodicska Gergely · 2006. Júl. 26. (Sze), 08.04
SVN szinte mindenben veri a CVS-t.
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ő