SVN: telepítés

Korábbi SVN bevezető bejegyzésem igen pozitív visszajelzéseket kapott, több reakció is érkezett rá. Az egyikben azt a kérdést szegezték nekem, hogy akkor hogyan is van ez a dolog, kell-e valami szerverszerűt telepíteni az SVN használatához, vagy másképp működik a rendszer? Röviden: nem feltétlenül, de a legegyszerűbb, ha van.

SVN - Subversion

Én eddig egyszer telepítettem SVN szervert, egy ősrégi Debian masinára, a tapasztalat az volt, hogy bár megdolgoztam vele, nem igazán tért el egy szerver telepítéstől Linux alá. A helyzet azóta sokat változott, a Linux szerverek és maga a Subversion is fejlődött.

A kalandozást érdemes a Subversion projekt honlapján kezdeni, először is azzal, hogy pontosan hogyan is kommunikál az SVN kliens az SVN szerverrel. A – remélhetőleg – ismerős HTTP protokolt kiegészítő WebDAV/DeltaV kommunikációt használ (kicsit részletesebben), melyekről nem állítanám, hogy egyszerűek, mindazonáltal jól működnek. Ebből többminden következik. Az egyik, hogy a webproxy-kon keresztül elvileg jól működtethető az SVN kommunikáció, másrészt, hogy az Apache szerver a rendszer barátja. De ha nem akarjuk, nem kell bemutatnunk őket egymásnak, Apache nélkül is megoldható a dolog.

Kicsit előreugrok, hogy aztán érthetőbb legyen a következő bekezdés. Szóval miután felraktuk a szervert, az első dolgunk az lesz majd, hogy létrehozunk egy repository-t. A repository-k tárolására több módszer van, de alapvetően mindegyiknél létrehozunk egy könyvtárat a szerveren egy “svnadmin create könyvtárnév” parancs kiadásával, egy “mkdir könyvtárnév” mintájára. Windows alatt lehet, hogy van rá grafikus eszköz, nem tudom. Ebben a könyvtárban fogja nekünk letárolni a szerver a különböző információkat, és ezekben lehet matatni is, ha le akarunk kezelni olyan eseményeket, mint egy “commit” művelet. Jellemzően több könyvtár és fájl kerül ebbe a könyvtárba alapból bele.

Bár a dokumentációk mindenhol három lehetőséget emlegetnek mint rendszer összeállítási lehetőséget, valójában van egy negyedik is: a szerver nélküli használat. Ezt csak Linuxon parancssorban próbáltam, de vállalkozó kedvűek kipróbáhatják Windows alatt is, kiváncsi lennék. A lényeg, hogy az SVN kliensek jellemzően ismerik a fájlrendszer alapú címzést is a repository-t illetően, tehát ha az SVN repository-nk a szerveren a /usr/local/svnroot/webakademia könyvtárban van, akkor a file:///usr/local/svnroot/webakademia címen is hozzáférhetünk. Linux alatt ennek fényében az “svn co file:///usr/local/svnroot/webakademia” paranccsal “kicheckoutolhatjuk”.

További egyik lehetőség egy saját “svnserve” nevű szerverke, ez a legegyszerűbb feladat, s ha nincsenek különösebb igényeink, használjuk bátran ezt. Ezen kívül van még az SSH-n keresztüli működtetés “svnserve”-vel, és végül a legbonyolultabb konfigurációt az Apache 2 alá telepítés igényli, ahol egy modulként fog tudni működni a szerverünk. Fontos, hogy mind a három szerveres esetben magát a repository-t nekünk kell létrehoznunk, és hogy az SVN funkciókat illetően egyik szerver sem tér el a másiktól, csak és kizárólag abban, hogy hogyan authentikál a rendszerünk, s hogy milyen portokat használ. A konkrét szerver telepítéseket nem írom le, jó dokumentáció áll rendelkezésre hozzá a projekt honlapján. Alapvetően semmi hatalmas tortúrától nem kell tartanunk. Windows, Linux, Mac OS X és egyebek alá is elérhetőek a szerverek bináris terjesztésben, és ugye ott van a forráskód is, ha valaki a forrásban szeretne turkálni.

TortoiseSVN

Ami a klienseket illeti, én eddig négy megoldást próbáltam. Különböző Linuxok, Mac OS X alatt bár nem mindig a legkényelmesebb, de biztos pont volt a parancssori “svn” nevezetű SVN kliens. Windows alá bátran ajánlom a Windows Explorerbe épülő TortoiseSVN-t, folyamatosan fejlődik, kényelmesen használható, és a teknős (lásd mellékelt ábra) is jó fej (ha lányokat kell meggyőzni a használatáról). Eclipse alatt a Subclipse nevű plugint használtam, mely elég kényelmesen beépül az Eclipse-be, és kényelmesen használhatóvá teszi az SVN-t. Jó tudni, hogy a TortoiseSVN és az Eclipse modul ugyanúgy adminisztrálja kliens oldalon a fájlokat, így párhuzamosan tudunk együtt dolgozni a kettővel ugyanazokon a fájlokon. Végül mostanában az svnX nevű Mac OS X-es klienst használom, s bár ezzel nem vagyok annyira elégedett, mint a TortoiseSVN-nel vagy az Eclipse modullal, de ez is jól működik. Van még a TextMate-nek is SVN kliense, de az vagy csak részben használható, vagy még nem jöttem rá hogyan kell – nem tudom. Persze ez korántsem a teljes lista, egy jóval bővebb itt olvasható.

Jó SVN-ezést! Előbb-utóbb folytatom további részletekkel. :)

6 thoughts on “SVN: telepítés

  1. Hodicska Gergely

    Mindenkinek ajánlom, hogy legyen fent parancssoros SVN-ja is, mert sajnos még a Tortoise-zal is jártam úgy, hogy olyan állapotba került, hogy nem voltam képes vele tovább lépni (a Subclipse-re meg pláne jellemző ez). Ilynekor parancssroból kényelmes meg lehet oldani a problémát.

    Egy másik ok ami miatt jó lehet, hogy van amikor egy nagyobb update-tel a Subclipse képes elég rendesen eltökölni, ilyenkor jobban járunk, ha parancssorból updatelünk, és uátna az Eclipse-ben F5 (frissítés).

    És egy másik ok, ami miatt megint csak nélkülözhetetlen, ha megváltozik a jelszavunk. Nagyszerű Subclipse ilyenkor szépen ad egy hibajelzést, de nem tudjuk megbáltoztatni a jelszavunk. Ilyenkor annyi kell, hogy parancssorban kiadunk a megfelelő working copyban mondjuk egy “svn st -u” parancsot, és pluszban megadjuk neki a –user-name illetve a –password kapcsolókat a megváltozott adatokkal. Ezután már a Subclipse-nek is menni fog a dolog.

    Üdv,
    Felhő

  2. Mocsnik Norbert

    2004 óta használom a fejlesztői gépen Win XP alatt parancssorban az SVN-t “szerver nélküli” módban is és tökéletes működik. 2 repository-m is van, teljesen hibátlan minden, a backup-okat is szépen tudtam automatizálni, hiszen Windows alatt is van svndump, ami végül a WinZip parancssori interfészén keresztül kerül tömörítésre, végül a Nero parancssori verziójával íródik ki újraírható CD-kre. Szóval XP alatt is lehet kényelmesen SVN-ezni lokálisan.

    Távoli SVN repository-kat is használok Windows alól, de persze ez természetes.

    Köszi a cikket, hasznos volt!

  3. Bartl Ákos

    Nekem csak egy kérdésem lenne.
    Mi a jól bevált gyakorlat repository-k terén? Minden projectet külön repo-ba célszerű pakolni, vagy mindent egybe?

  4. Bártházi András Post author

    Elég határozottan azt mondhatom, hogy külön. :) Sokat nem veszítesz azzal sem, ha egyberakod (ha valahol csak egy repo-t kapsz pl.), de pl. hozzáférést korlátozni repository-ként a legegyszerűbb.

  5. fratz

    Windows alá félig sikeresen telepítettem TortoiseSVN-t. A gikszer az, hogy ha ssh-n keresztül szeretnék csatlakozni, akkor az csak adminisztrátorként belépve lehetséges.

    Hosszas próbálkozások után dezaktiváltam a tűzfalat, a nem adminisztrátori accountomat pedig adminisztrátori jogokkal láttam el. Ezek ellenére sem tapasztalok változást. Miután beírom a jelszót, mindig az alábbi hibaüzenetet kapom: “Connection closed unexpectedly”

    Bármilyen segítséget, ötletet örömmel veszek…
    üdv:
    fratz

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>