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
.