SVN quick and mini howto
Ez egy rövid segítség mindenkinek arról, hogy hogyan készíthetünk magunkanak SVN (más néven Subversion) verziókövetõ rendszert UNIX like rendszeren valamint arról, hogy meglévõ projectjeinket hogyan helyezhetjük a felügyelete alá.
A hogyan csak felületes, ezért a részletekért olvasd el az SVN-bookot.
A howto lényegesen kibõvített változata elérhetõ a HupWiki Subversion howto szócikke alatt.
Tegyük fel, hogy a /svnsdir-ben szeretnénk tárolni az összes svn repositoryt meg a hozzá tartozó adatokat is
cd /svnsdir;
Készítsünk egy svnlayout nevû mappát, ebben létrehozzuk az svn repositoryk sablon szerkezetét, ami alap esetben ajánlott trunk, branches és egy tags mappából áll. A trunk mappa tartalmazza majd a fejlesztõi ágat. A branches a dokumentumok, programok egyes ágainak van fenntartva, így pl. a verziókat is itt tárolhatjuk egymástól elkülönítve. A tags mappában egy-egy pillanatképet szokás tárolni, így ha van egy jól mûködõ változatod egy programról amit késõbb módosítani szeretnél, elõtte készíthetsz róla egy taget, mintegy extra backupként
mkdir svnlayout; mkdir svnlayout/{trunk,branches,tags};
Továbbá létrehozunk mégegy könyvtárat, amiben az összes repository tárolva lesz. Minden projectnek (repositorynak) ebbe a könyvtárba fogunk létrehozni egy-egy saját könyvtárat. Jelen esetben a myproject nevû projectet fogjuk svn-be tenni.
mkdir svnrepos; mkdir svnrepos/myproject;
Az svnadmin paranccsal létrehozhatjuk magát a repositoryt, ahol az adott projecthez tartozó összes információ tárolva lesz
svnadmin create --fs-type fsfs svnrepos/myproject;
Az fs type Berkeley DB (bdb) vagy FSFS lehet, az opció elhagyható. Röviden annyit róluk, hogy a bdb régebbi ezért lassabb, több helyet foglal a HDD-n, stb. Az FSFS régebbi verzióval állítólag voltak problémák, de ugye miért is használnánk régebbit? A Subversion 1.4-es verziójától az FSFS-t részesítik elõnyben.
Hozzuk létre az svn sablon szerkezetét úgy, hogy az elõzõleg az svnlayout könyvtárban elkészített szerkezetet beimportáljuk a frissen megcsinált repoba:
cd svnlayout svn import . file:///svnsdir/svnrepos/myproject --message 'Initial layout creation'; cd ../svndevdirs;
Ha létezõ projectet szeretnénk beemelni az svn-be akkor menjünk be a project könyvtárába, majd svn importtal adjuk hozzá a repohoz a már kész fájlokat:
cd /path/to/projectdir; svn import . file:///svnsdir/svnrepos/myproject/trunk --message 'Import the already created files into the svn repository';
Mivel a fájlok fel vannak töltve a repositoryba, töröljük a könyvtár tartalmát, majd ezután az svn checkout paranccsal az layoutot töltsük le.
rm -rf; svn checkout file:///svnsdir/svnrepos/myproject .;
Ha teljesen új projectet szeretnénk csinálni, akkor az elõzõ import és törlés lépéseket kihagyhatjuk és elég bemennünk a projectünk könyvtárába majd letölteni a friss svn adatbázist:
cd /path/to/projectdir; svn checkout file:///svnsdir/svnrepos/myproject .;
A változásokat az svn status paranccsal kérdezheted le. Ha a serveren lévõ verzió újabb, mint a nálad lévõ, az svn update paranccsal letöltheted azt. Az általad elvégzett módosításokat az svn commit töltheted fel a szerverre. Commitkor erõsen ajánlott a message mezõ kitöltése, ezzel jelezheted magadnak és a projecten dolgozó munkatársaidnak, hogy milyen változtatásokat eszközöltél.
svn commit --message 'Example modification'
További hasznos parancsok lehetnek még: svn add, svn delete, svn diff, svn revert, svn update, svn help, stb.
Az svn parancsok egy részét rövidítheted:
- svn commit = svn ci
- svn checkout = svn co
- svn status = svn st
- svn update = svn up
- svn delete = svn del
- stb.
Az SVN-bookot legalább egyszer mindenképpen olvasd el, hogy megértsd az itt felsorolt megoldásokat és parancsokat, megismerd az SVN a mûködését, filozófiáját és a benne rejlõ lehetõségeket.
Ez a rövid dokumentáció csak arra szolgál, hogy gyorsan létre tudj hozni egy mûködõ svn repository-t, ezért nem helyettesíti a kézikönyv egyik szakaszát sem
A howto Unix like rendszerre szól de az elérési utak módosításával természetesen Windows alatt is használható.
Hozzászóláshoz a Disqus szolgáltatását használom, korábbi vélemények elovlasásához és új hozzászólás írásához engedélyezd a Disqus-tól származó JavaScripteteket.