Svn.unimore.it

Da sia.
Vai alla navigazione Vai alla ricerca

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