Apache Subversion (conosciuto comunemente come SVN) è un sistema di controllo della versione open source molto popolare. Un sistema di controllo delle versioni ti consente di registrare le modifiche a un file o a una serie di file in un periodo di tempo in modo da poter richiamare versioni specifiche quando è necessario.
Per avere il controllo della versione per il tuo progetto, devi prima installare il server SVN su Ubuntu macchina.
Installazione del server SVN su Ubuntu 18.04 LTS
Qui installeremo e configureremo Apache subversion su Ubuntu 18.04 LTS.
Passaggio 1. Installa Apache
Prima di procedere con l'installazione, aggiorniamo prima il repository.
sudo apt-get update
sudo apt-get install apache2
Controlla lo stato di Apache.
sudo systemctl status apache2
Se il servizio non è ancora avviato, .start Apache.
sudo systemctl start apache2
Abilita Apache all'avvio del sistema.
sudo systemctl enable apache2
Verifica l'installazione di Apache. Basta aprire il browser Web e digitare l'IP del server Web o il nome host. Se riesci a vedere la pagina predefinita di Apache, l'installazione di Apache è riuscita.
Passaggio 2. Installa Apache Subversion
Installa subversion e i pacchetti richiesti
sudo apt-get install subversion libapache2-mod-svn
Dopo l'installazione, abilita automaticamente i moduli SVN necessari (dav_module , dav_svn_module, authz_svn_module ).
Elenca i moduli abilitati
sudo apachectl -M
Se i moduli svn non sono abilitati. esegui sotto i comandi e abilitalo
sudo a2enmod dav
sudo a2enmod dav_svn
sudo a2enmod authz_svn
Dopo aver abilitato questi moduli, è necessario riavviare il servizio Apache.
sudo service apache2 restart
Passaggio 3. Configura Apache Subversion
Ora creeremo il repository SVN. Qui utilizziamo la directory "/opt" per creare il nostro repository.
Crea directory svn.
sudo mkdir -p /opt/svn
Crea repository svn. Qui creiamo un repository chiamato “fosslinuxrepo”
sudo svnadmin create /opt/svn/fosslinuxrepo
Modifica della proprietà del repository.
sudo chown -R www-data:www-data /opt/svn/fosslinuxrepo/
Modifica delle autorizzazioni del repository.
sudo chmod -R 775/ opt/svn/fosslinuxrepo
Aggiungi utenti di Subversion. Qui creiamo un file di password nella directory "/etc".
sudo htpasswd -cm /etc/svn-auth-users fosslinux
Crea il secondo utente.
sudo htpasswd -m /etc/svn-auth-users fosslinux2
Crea un file host virtuale Apache per SVN:per fare ciò dobbiamo prima cambiare la directory in "/etc/apache2/sites-available/"
cd /etc/apache2/sites-available/
Crea un file host virtuale e qui creiamo un file chiamato “fosslinuxsvn.conf”.
sudo vim fosslinuxsvn.conf
Aggiungi le seguenti righe al file.
<VirtualHost *:80> ServerName svn.fosslinux.com ServerAlias svn.fosslinux.com <Location /svn> DAV svn SVNParentPath /opt/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/svn-auth-users Require valid-user </Location> ErrorLog ${APACHE_LOG_DIR}/svn.fosslinux.com-error.log CustomLog ${APACHE_LOG_DIR}/svn.fosslinux.com-access.log combined </VirtualHost>
Cambia "svn.fosslinux.com" con il tuo nome host.
Salva ed esci dal file.
Disabilita il file host virtuale predefinito.
sudo a2dissite 000-default.conf
Abilita il file host virtuale appena creato.
sudo a2ensite fosslinuxsvn.conf
Controlla la sintassi di Apache.
sudo apachectl -t
Quindi riavvia Apache.
sudo systemctl restart apache2
Passaggio 4. Testare la Subversion Apache configurata
Apri il browser web e digita l'URL del repository e premi invio.
http://svn.fosslinux.com/svn/fosslinuxrepo/
Sostituisci sv.fosslinux.com con il tuo nome host.
Quando verrà visualizzata la schermata popup di autenticazione, inserisci il nome utente e la password già creati per accedere al repository svn.

Ora puoi vedere il repository creato.

Creiamo ora un progetto chiamato “RnD_works” all'interno del repository.
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works -m "added RnD_works repository"
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works/trunk -m "added RnD_works trunk repository"
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works/branches -m "added RnD_works branches repository"
svn mkdir file:///opt/svn/fosslinuxrepo/RnD_works/tags -m "added RnD_works tags repository"
Verifichiamo se questo nuovo progetto può essere visualizzato all'interno del repository.

Fai clic e apri "RnD_works"

Se desideri eliminare un progetto creato puoi utilizzare il comando seguente per eliminarlo.
svn delete file:///opt/svn/fosslinuxrepo/RnD_works -m "delete RnD_works repository"
Passaggio 5. Pianifica il backup del repository
Crea una cartella di backup.
sudo mkdir -p /etc/backcups
Cambia utente in utente root.
sudo su -
Modifica crontab.
crontab -e
Nel comando seguente, pianifichiamo svn backup a mezzanotte ogni giorno.
0 0 * * * svnadmin dump /opt/svn/fosslinuxrepo > /etc/backcups/svnbackups-$(date +%Y%m%d).dump

Quindi salva ed esci.
Passaggio 6. Ripristina il repository
Se devi ripristinare il repository svn dal file di backup usa i comandi seguenti.
Crea un nuovo repository.
svnadmin create /opt/svn/restorerepo
Ripristina backup:
svnadmin load /opt/svn/restorerepo < /etc/backups/svnbackups-20190204.dump
È tutto. Ci auguriamo che questo articolo ti abbia aiutato a configurare con successo Subversion. Se hai domande o commenti, visita la sezione Commenti qui sotto.