Subversion è un sistema di tracciamento delle versioni open source. Mantiene i file in un repository centrale e fornisce il controllo della versione su directory o file. In qualità di sviluppatore, puoi estrarre i file di progetto da un repository, apportarvi modifiche e reinserirli nuovamente.

Subversion ha anche un componente server che puoi utilizzare per ospitare i tuoi progetti. Funziona in modo molto simile a un normale file server.

Come installare Subversion

Subversion è semplice da installare. Puoi usare il comando appropriato per iniziare la tua distribuzione:

# Debian, Ubuntu
sudo apt installare sovversione apache2 libapache2-mod-svn

# CentOS, Fedora, RHEL
sudo dnf installare sovversione apache2 mod_dav_svn

Nota che anche questo comando installa il server web Apache2. Avrai bisogno di un server web se vuoi accedere al repository Subversion tramite HTTP o WebDAV. Puoi anche usare HTTPS, dovrai solo installare e configurare un certificato digitale per farlo.

Dopo aver eseguito questo comando, puoi verificare che subversion sia installato correttamente. Ora dovresti essere in grado di eseguire il

instagram viewer
svn comando e puoi vedere la versione corrente usando il --versione opzione:

Configurazione del server con Subversion

Se l'installazione è andata a buon fine, ora puoi iniziare a lavorare sulla configurazione del repository che utilizzerai svn. Ovviamente, dovrai creare un nuovo repository per questo. Innanzitutto, crea una cartella in una directory principale per posizionare il tuo repository:

sudo mkdir /subversion

Se devi accedere al tuo repository usando WebDAV su HTTP, dovrai dare ad Apache la proprietà della sua directory. Dal momento che usa Apache www-dati utente per impostazione predefinita, autorizzare questo utente come segue:

sudo chown www-data: www-data /subversion

Ora puoi passare a www-dati utente e inizia a lavorare sul tuo repository. Il comando che useresti per accedere come www-dati l'utente è:

sudo su -s /bin/bash www-data

Ora sei un utente Apache e dopo questo passaggio puoi creare il tuo repository Subversion come segue:

svnadmin creare /subversion/myrepo

Ora hai un repository Subversion. Per rendere questo repository un po' più sicuro e per identificare i suoi utenti, il passaggio successivo consiste nel creare un utente e impostare una password per esso. Per fare ciò, utilizzare il seguente comando:

htpasswd -cmb /subversion/passwd myadmin mypass

Secondo questo comando, il tuo nome utente sarà mio amministratore e la tua password sarà il mio passaggio. Puoi modificare questi valori in base alle tue circostanze.

Il tuo repository Subversion è ora pronto per l'uso. A questo punto è possibile uscire da www-dati utente utilizzando il Uscita comando.

Ora puoi inviare un progetto o un file desiderato al tuo repository usando il comando seguente:

sudo svn import <il tuo indirizzo di progetto> file:///subversion/myrepo -m "Primo impegno"

Questo comando usa il importare parametro per inviare tutto nella cartella del progetto al repository Subversion. Mentre lo fai, devi aggiungere il messaggio di commit con il -m parametro.

Utilizzo dei metodi di accesso in Subversion

Potresti aver notato che stai usando il file:// protocollo per aggiungere un progetto al tuo repository. Questo è solo uno dei numerosi protocolli di rete che puoi utilizzare per accedere a un repository svn. Puoi anche utilizzare il protocollo WebDAV su HTTP o HTTPS o personalizzato di subversion svn protocollo.

Accesso diretto al Repository

Come hai visto, puoi usare il file:// protocollo per accedere a un repository locale. Ecco come puoi eseguire il checkout di un repository locale nella tua directory corrente:

file svn:///subversion/myrepo

Quando controlli il repository, svn mostra un elenco dei file che contiene:

Accesso tramite WebDAV

Per integrare il tuo repository Subversion con Apache, dovrai configurare alcune impostazioni.

Per il primo passaggio, attiva il dav, dav_svn, e dav_fs moduli utilizzando i seguenti comandi:

sudo a2enmod dav dav_fs dav_svn

Dopo aver attivato i moduli richiesti, è ora possibile modificare il file /etc/apache2/mods-enabled/dav_svn.conf file. Crea il file se non esiste già e modifica il suo contenuto come segue:

<Posizione/sovversione>
DAV sv
SVNPath /subversion/myrepo
AuthType di base
AuthName "Archivio di sovversione"
AuthUserFile /subversion/passwd
Richiedere utente valido
</Location>

Il AuthUserFile l'impostazione fa riferimento al file che hai creato in precedenza utilizzando htpasswd. Aggiungendolo qui si concederà l'accesso al repository a tutti gli utenti nominati nel file, a condizione che si autentichino con una password valida.

Dopo aver creato e salvato questo file, riavvia il servizio Apache2 con il seguente comando:

sudosystemctlricominciaapache2.servizio

Ora, quando apri un browser web e vai a http://localhost/subversion/, vedrai il contenuto del tuo repository. Quando vai a questo indirizzo, ti verrà chiesto il tuo nome utente e password:

Accedi con il nome utente (es. mio amministratore) e password (il mio passaggio) che hai impostato in precedenza. Puoi accedere al tuo repository Subversion utilizzando WebDAV dopo aver inserito nome utente e password:

Accesso con SSL e WebDAV

Il https:// il protocollo ha quasi la stessa configurazione del http:// protocollo, con poche importanti differenze. Per fare un esempio, il .conf il file che devi usare durante la configurazione è diverso. È inoltre necessario installare un certificato digitale. Perché come sapete, questa è la logica di lavoro del Metodo di crittografia SSL.

Puoi creare un certificato digitale te stesso, oppure puoi installarne uno rilasciato da un'autorità competente. Supponendo che tu abbia installato un certificato digitale, quello che devi fare è semplice.

La differenza in questo passaggio sono le modifiche che apporterete nel file di configurazione. Di seguito è riportato un file di configurazione di esempio per l'utilizzo di SSL e WebDAV:

<Posizione/sovversione>
DAV acceso
SSLRichiede SSL
Opzioni Nessuno
AuthType di base
AuthName "Archivio di sovversione"
AuthUserFile /subversion/passwd
Richiedere utente valido
</Location>

Come puoi vedere, la differenza tra https:// e http:// protocolli non è molto in termini di modifiche nel file di configurazione. Dopo queste modifiche, dovrai riavviare il apache2 servizio. Correre systemctl riavvia apache2.service fare così.

Perché usare Subversion?

Come tracker di versione, Subversion ricorda ogni modifica apportata a file e directory. Ti consente di accedere a vecchie versioni di software o documenti con cui stai lavorando e di trovarne le differenze. Ciò semplifica la gestione dei progetti, soprattutto se il tuo team di sviluppo è grande o distribuito.

Esistono molti sistemi di controllo della versione per Linux oltre a Subversion, che potresti prendere in considerazione.