Svn.unimore.it
Subversion server
Come funziona subversion
Operazioni sul server
Creare il repository (ad esempio per il progetto gruppi):
cd /var/lib/svn mkdir -p gruppi svnadmin create gruppi
Sui client
Operazioni iniziali
Import iniziale dei file di progetto (a partire dalla directory che li contiene):
francesco@pinss9:~/sviluppo/ruby/gruppi$ svn import -m "import iniziale" . svn+ssh://svn.unimore.it/var/lib/svn/gruppi/trunk
Oppure (https invece di svn+ssh)
francesco@pinss9:~/sviluppo/ruby/gruppi$ svn import -m "import iniziale" . https://svn.unimore.it/svn/gruppi/trunk
Mettere la copia locale del progetto sotto svn:
svn checkout svn+ssh://svn.unimore.it/var/lib/svn/gruppi/trunk gruppi
Si noti che e' necessario cancellare (o meglio rinominare) la directory che conteneva i dati originari: il checkout funziona solo se il target è una directory vuota.
Operazioni di routine
- aggiornare la copia locale: svn update
- salvare le variazioni locali sul repository: svn commit
- verificare lo stato della copia locale: svn status
- aggiungere, cancellare file dal controllo di versione: svn add, svn delete
Operazioni meno frequenti
- rimuovere dei file dal controllo di versione:
francesco@pinss9:~/sviluppo/ruby/gruppi$ svn propedit svn:ignore ./
nell'editor scrivere i file-pattern da ignorare, uno per riga
- inserire un oggetto esterno nel controllo di versione:
francesco@pinss9:~/sviluppo/ruby/gruppi$ svn propedit svn:externals vendor/
scrivere: rails http://dev.rubyonrails.org/svn/rails/tags/rel_1-2-3/
Il server svn.unimore.it
svn.unimore.it server i protocolli ssh+svn e https (non http). L'autenticazione degli utenti usa le credenziali LDAP. L'autorizzazione nel caso svn+ssh è delegata al file system, nel secondo caso alle impostazioni del mod_authnz_ldap.
dav_svn.conf per un repository
<Location /test> DAV svn # Set this to the path to your repository SVNPath /var/lib/svn/test # Alternatively, use SVNParentPath if you have multiple repositories under # under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...). # You need either SVNPath and SVNParentPath, but not both. #SVNParentPath /var/lib/svn1 order allow,deny allow from all AuthType Basic AuthName "Subversion Repository" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPUrl "ldaps://ldap1.unimo.it:636/dc=unimore,dc=it?uid?sub?objectClass=*" <Limit GET PROPFIND OPTIONS REPORT PUT HEAD POST> Require valid-user </Limit> </Location>
Operazioni sul filesystem
Se il repository è aggiornato tramite https, la sua directory deve essere leggibile e scrivibile per l'utente www-data:
setfacl -R -m u:www-data:rwx /var/lib/svn/test