Kérkel segíts, hogy ne maradjon hibás információ az oldalon!
Ha szerinted valami nem fedi a valóságot, kérlek írd meg, hogy javítani tudjam. Ha kérdésed van, fordulj hozzám bizalommal!

2008. november 8., szombat

Subversion telepítés és repository létrehozás Gentoo alatt

Épp ideje verzió követőt telepíteni, az évek során sokszor hasznos lett volna. Rövid keresgélés után a subversion mellett döntöttem.
Gentoo alatt a telepítés megkezdése egy szempillantás, de azért én szeretek ránézni, hogy mi is fog települni és milyen USE flagekkel:
# emerge -a subversion
A -a parancs az 'ask', tehát nem kezd ész nélkül fordításba, hanem megmutatja, hgoy mit fog fordítani és milyen flagek vonatkoznak rá. Nekem jó, mehet. Bár a neon csomag frissítése még sok másik csomag frissítését vonja maga után, de ez van (aki ezt nem bírja, térjen át Ubuntura...).

Az emerge végén:
* Subversion Server Notes
* -----------------------
*
* If you intend to run a server, a repository needs to be created using
* svnadmin (see man svnadmin) or the following command to create it in
* /var/svn:
*
* emerge --config =dev-util/subversion-1.5.4
*
* Subversion has multiple server types, take your pick:
*
* - svnserve daemon:
* 1. Edit /etc/conf.d/svnserve
* 2. Start daemon: /etc/init.d/svnserve start
* 3. Make persistent: rc-update add svnserve default
*
* - svnserve via xinetd:
* 1. Edit /etc/xinetd.d/svnserve (remove disable line)
* 2. Restart xinetd.d: /etc/init.d/xinetd restart
*
* - svn over ssh:
* 1. Fix the repository permissions:
* groupadd svnusers
* chown -R root:svnusers /var/svn/repos/
* chmod -R g-w /var/svn/repos
* chmod -R g+rw /var/svn/repos/db
* chmod -R g+rw /var/svn/repos/locks
* 2. Create an svnserve wrapper in /usr/local/bin to set the umask you
* want, for example:
* #!/bin/bash
* . /etc/conf.d/svnserve
* umask 002
* exec /usr/bin/svnserve ${SVNSERVE_OPTS} "$@"
*
* - http-based server:
* 1. Edit /etc/conf.d/apache2 to include both "-D DAV" and "-D SVN"
* 2. Create an htpasswd file:
* htpasswd2 -m -c /var/svn/conf/svnusers USERNAME
*
* If you intend to use svn-hot-backup, you can specify the number of
* backups to keep per repository by specifying an environment variable.
* If you want to keep e.g. 2 backups, do the following:
* echo '# hot-backup: Keep that many repository backups around' > /etc/env.d/80
subversion
* echo 'SVN_HOTBACKUP_BACKUPS_NUMBER=2' >> /etc/env.d/80subversion


Valamiért a httpd2 alapú SVN-t választottam. Ez kisebb módosításokat igényel a /etc/apache2/httpd.conf fájlban.


DAV svn
# Nekem a gentoo alapból ide telepíti
SVNPath /var/svn/



DAV svn
SVNParentPath /var/svn


Ezután már el is érhető a repo a böngészőben (nekem készült egy repos nevű repo): http://localhost/svn/repos.
Ha az svnadmin -t használva létrehozunk egy repository-t, akkor az a /var/svn alá kerül be és az előző módon érhető el a böngészőből:
# svnadmin create Teszt

Aztán egy howto meglengette előttem a Trac használatát és én bele is vágtam. Ez egy picit eltolja a dolgok végét, mert a pythont és társait újra kell fordítanom sqlite USE flaggel.

Hm, addig is kis google után belefutottam egy nagy bajba: a gentoo-wiki elvesztette az adatbázisát (miért nem kérik le a lapokat a google-cacheből?!), viszont cachelve megtaláltam az SVN howtot. Mondhatni, talán a legjobb. Igen kár a wikiért! :(


Úgyhogy ennek segítségével el is kezdtem a folytatást: létre kell hozni három könyvtárt.

  1. Trunk: ebben lesz mindig a legfrisseb stabil verzió.
  2. Tags: Itt vannak a különböző lényegi verzióváltások (v1, v2, v3).
  3. Branches: elágazások. Olyan esetekre, ha pl néhány fejlesztő későbbi feautre-on dolgozik. Így az a félkész rész nem kell, hogy bekerüljön a stabil verziókba.
# mkdir /var/svn/Teszt/{trunk,tags,branches}

Én nem tudom, hogy szükséges-e a fájlok tulajdonosának az apache felhasználót megadni, de megtettem (mivel az svn apachként fut nálam).

# chmod apache.apache /var/svn/Teszt/{trunk,tags,branches}

És most jön az első import. Ehhez az importálandó projekt gyökerében kell lenni! (Az importálás kezdete a '.'.)
 # svn import . file:///var/svn/Teszt/trunk -m 'Elso import'

Szerencsésen "Commited 1 revision." a végeredmény. A teszteléshez listáztathatjuk a fileokat:
# svn ls file:///var/svn/Teszt/trunk
Természetesen ezt akár a webszerveren keresztül is intézhetjük:
# svn ls http://localhost/svn/Teszt/trunk

Folytatása következik...







Nincsenek megjegyzések: