Jul 22 2008
Debian: Instalace SVN (Subversion) za 10 minut
Subversion je v současné době asi nejlepší nástroj na správu revizí různých zdrojových kódů různých aplikací ale i binárních dat. Navíc mě velmi překvapil svojí vynikající vlastností: vytváří každou další revizi pouze na základě deltifikace a komprese. Výsledná (fyzická) velikost repositáře je malá i v případě správy mnoha revizí. Možná i právě proto používají Seznamáci na zálohování map právě SVN (SVN backup).
Celá instalace je v případě spojení SVN + Apache jednoduchá, stejně jako jeho používání. Nejdříve si nainstalujeme aktuální verzi SVN a modulu SVN do Apache:
# apt-get update && apt-get install subversion libapache2-svn
Dále si určíme umístění SVN repositářů, např. /home/svn a vytvoříme repositář pro konkrétní projekt xyz:
# mkdir /home/svn # svnadmin create /home/svn/xyz
Nastavíme přístup k repositáři pro Apache (uživatel www-data) a pro skupinu projektu xyz:
# chown -R www-data:xyz /home/svn/xyz # chmod -R 0770 /home/svn/xyz
Nutná konfigurace Apache, kde z hlediska bezpečnosti použijeme HTTPS — virual hostu pro SSL (návod) typicky v /etc/apache2/sites-available/ssl. Jedná se tedy pouze o přidání tohoto:
<Location /svn/xyz>
DAV svn
SVNPath /home/svn/xyz
AuthType Basic
AuthName "XYZ Project Subversion Repository"
AuthUserFile /home/svn/.dav_svn.passwd
Require valid-user
</Location>
Pro zaheslovaný přístup k repositářům si pak vytvoříme několik uživatelů:
# su www-data -c "htpasswd -c -m /home/svn/.dav_svn.passwd admin" # su www-data -c "htpasswd -m /home/svn/.dav_svn.passwd jens"
První řádek vytvoří vlastní passwd soubor a přidá uživatel admin, druhý už pak jen přidá uživatele jens.
A konečně, reloadneme Apache pro načtení změn v konfiguraci:
# /etc/init.d/apache2 force-reload
a přes url: https://stroj/svn/xyz vyzkoušíme jestli vše funguje.

23.09.2011, 21:24
Ahoj. Již nějakou dobu mi funguje na debianu subversion s několika repozitáři. Subversion jsem na server implementoval podle tvého návodu a zatím jsem neměl žádný problém. Tento týden jsem ovšem potřeboval vytvořit další repozitář a k němu se už nedostanu. Repozitář se vytvořil, ve websvn ho vidím ale není možné s ním dál pracovat (neudělám checkout ani commit). Prosím tě, nevíš kde by mohl být problém ? Znovu jsem pro nově vytvořený repozitář nastavoval chown i chmod viz. článek ale ani toto nepomohlo.
Děkuji
Michal
26.09.2011, 22:31
Tech pricin muze byt vice, nepises zde, jakym zpusobem k repozitari pristupujes. Pres Apache? Nebo pres svn:// ? Je potreba nejprve znovu overit prava pristupu k repozitari (jak linuxova, tak i pres autorizacni soubor — je-li pouzit).
Nove vytvoreny repositar (tedy revize 0) byl mel jit bez problemu checkoutnout, pokud to nejde, je to divne. Do revize 0 se pocatecni commit dela pres
svn import.