__[Principali comandi svn]__\\


!!Installazione svn su ubuntu con apache2 e https

*creazione del gruppo subversion, al quale associare gli utenti desiderati
*sudo apt-get install subversion
*sudo mkdir /opt/svn/repository
*sudo chown -R utente:subversion /opt/svn/*
*sudo svnadmin create /opt/svn/repository/
*sudo vi /opt/svn/repository/conf/svnserve.conf
*sudo vi /opt/svn/repository/conf/passwd
*sudo svnserve -d –foreground -r /opt/svn/repository/\

%%prettify
{{{
apt-get install apache2 subversion libapache2-svn ssl-cert
}}}
Dopo aver installato i pacchetti si deve abilitare il modulo ssl.
%%prettify
{{{
a2enmod ssl
}}}
A questo punto si configura Apache per accettare le richieste sulla porta 443 (HTTPS). Per fare ciò è sufficiente aggiungere al file /etc/apache2/ports.conf la riga:\\
%%prettify
{{{
Listen 443\\
}}}
Fatto questo si deve creare il cerficato per SSL. Solitamente si crea nella directory /etc/apache2/ssl:\\
%%prettify
{{{
mkdir /etc/apache2/ssl
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
chmod 600 /etc/apache2/ssl/apache.pem
}}}

Quindi si crea la configurazione per il server virtuale. Per farlo basta copiare il file di default e apportare qualche piccola modifica:
%%prettify
{{{
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl
}}}
Bisogna sostuire la riga:
%%prettify
{{{
NameVirtualHost *
}}}
con:
%%prettify
{{{
NameVirtualHost *:443
}}}
e poi la riga:
%%prettify
{{{
<VirtualHost *>
}}}
con:
%%prettify
{{{
<VirtualHost *:443>
}}}
infine, prima di:
%%prettify
{{{
</VirtualHost>
}}}
si aggiunge:
%%prettify
{{{
SSLEngine on\\
SSLCertificateFile /etc/apache2/ssl/apache.pem\\
SSLProtocol all\\
SSLCipherSuite HIGH:MEDIUM\\
}}}
Ora è possibile abilitare il virtual server in ascolto sulla porta 443 con il comando:
%%prettify
{{{
a2ensite default-ssl
}}}
Ora è necessario configurare il repository SVN. Per farlo bisogna innanzitutto editare il file /etc/apache2/mods-available/dav_svn.conf che dovrà contenere qualcosa del tipo:
%%prettify
{{{
<Location /svn>
  DAV svn
  SVNPath /var/lib/svn/NOME_REPOSITORY
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
</Location>
}}}

Il file /etc/apache2/dav_svn.passwd si crea con il comando:
%%prettify
{{{
htpasswd -c /etc/apache2/dav_svn.passwd NOMEUTENTE
}}}
I comandi necessari alla creazione del repository vero e proprio sono:
%%prettify
{{{
mkdir /var/lib/svn
svnadmin create  /var/lib/svn/NOME_REPOSITORY
chown -R www-data:www-data  /var/lib/svn
chmod -R g+ws /var/lib/svn
}}}

Infine si deve riavviare il server Apache con il classico:
%%prettify
{{{
/etc/init.d/apache2 restart
}}}
Per testare il funzionamento del sistema si può aggiungere un file al server con il comando:
%%prettify
{{{
touch ~/file_di_prova
svn import ~/file_di_prova https://localhost/svn/NOME_REPOSITORY -m "Test importazione"
}}}
Ora che il server è installato, configurato e funzionante, consiglio di leggere il manuale di subversion per i vari comandi necessari al commit/checkout dei file.