Apache Subversion (communément appelé SVN) est un système de contrôle de version open source très populaire. Un système de contrôle de version vous permet d'enregistrer les modifications apportées à un fichier ou à un ensemble de fichiers sur une période de temps afin que vous puissiez rappeler des versions spécifiques en cas de besoin.
Afin d'avoir un contrôle de version pour votre projet, vous devez d'abord installer le serveur SVN sur votre Ubuntu machine.
Installation du serveur SVN sur Ubuntu 18.04 LTS
Ici, nous allons installer et configurer la subversion d'Apache sur Ubuntu 18.04 LTS.
Étape 1. Installer Apache
Avant de poursuivre l'installation, mettons d'abord à jour le référentiel.
sudo apt-get update
sudo apt-get install apache2
Vérifiez l'état d'Apache.
sudo systemctl status apache2
Si le service n'est pas encore démarré, alors .démarrez Apache.
sudo systemctl start apache2
Activer Apache au démarrage du système.
sudo systemctl enable apache2
Vérifiez l'installation d'Apache. Ouvrez simplement votre navigateur Web et tapez l'adresse IP ou le nom d'hôte du serveur Web. Si vous pouvez voir la page par défaut d'Apache, l'installation d'Apache est réussie.
Étape 2. Installer Apache Subversion
Installer la subversion et les packages requis
sudo apt-get install subversion libapache2-mod-svn
Après l'installation, il active automatiquement les modules SVN nécessaires (dav_module , dav_svn_module, authz_svn_module ).
Lister les modules activés
sudo apachectl -M
Si les modules svn ne sont pas activés. exécutez les commandes ci-dessous et activez-les
sudo a2enmod dav
sudo a2enmod dav_svn
sudo a2enmod authz_svn
Après avoir activé ces modules, nous devons redémarrer le service Apache.
sudo service apache2 restart
Étape 3. Configurer Apache Subversion
Nous allons maintenant créer le référentiel SVN. Ici, nous utilisons le répertoire "/opt" pour créer notre référentiel.
Créez un répertoire svn.
sudo mkdir -p /opt/svn
Créer un référentiel svn. Ici, nous créons un référentiel appelé "fosslinuxrepo"
sudo svnadmin create /opt/svn/fosslinuxrepo
Modification de la propriété du référentiel.
sudo chown -R www-data:www-data /opt/svn/fosslinuxrepo/
Modification des autorisations du référentiel.
sudo chmod -R 775/ opt/svn/fosslinuxrepo
Ajouter des utilisateurs Subversion. Ici, nous créons un fichier de mots de passe dans le répertoire "/etc".
sudo htpasswd -cm /etc/svn-auth-users fosslinux
Créez le deuxième utilisateur.
sudo htpasswd -m /etc/svn-auth-users fosslinux2
Créez un fichier d'hôte virtuel Apache pour SVN. Pour ce faire, nous devons d'abord changer de répertoire en "/etc/apache2/sites-available/"
cd /etc/apache2/sites-available/
Créez un fichier d'hôte virtuel et ici nous créons un fichier appelé "fosslinuxsvn.conf".
sudo vim fosslinuxsvn.conf
Ajoutez les lignes suivantes au fichier.
<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>
Remplacez "svn.fosslinux.com" par votre nom d'hôte.
Enregistrez et quittez le fichier.
Désactiver le fichier d'hôte virtuel par défaut.
sudo a2dissite 000-default.conf
Activer le fichier d'hôte virtuel nouvellement créé.
sudo a2ensite fosslinuxsvn.conf
Vérifiez la syntaxe apache.
sudo apachectl -t
Puis redémarrez Apache.
sudo systemctl restart apache2
Étape 4. Tester la sous-version Apache configurée
Ouvrez le navigateur Web et tapez l'URL du référentiel et appuyez sur Entrée.
http://svn.fosslinux.com/svn/fosslinuxrepo/
Remplacez sv.fosslinux.com par votre nom d'hôte.
Lorsque vous obtiendrez l'écran contextuel d'authentification, entrez le nom d'utilisateur et le mot de passe déjà créés pour accéder au référentiel svn.

Vous pouvez maintenant voir le référentiel créé.

Créons maintenant un projet appelé « RnD_works » dans le référentiel.
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"
Vérifions si ce nouveau projet peut être visualisé dans le référentiel.

Cliquez et ouvrez "RnD_works"

Si vous souhaitez supprimer un projet créé, vous pouvez utiliser la commande ci-dessous pour le supprimer.
svn delete file:///opt/svn/fosslinuxrepo/RnD_works -m "delete RnD_works repository"
Étape 5. Planifier la sauvegarde du référentiel
Créez un dossier de sauvegarde.
sudo mkdir -p /etc/backcups
Remplacez l'utilisateur par l'utilisateur root.
sudo su -
Modifier crontab.
crontab -e
Dans la commande suivante, nous planifions svn backup à minuit tous les jours.
0 0 * * * svnadmin dump /opt/svn/fosslinuxrepo > /etc/backcups/svnbackups-$(date +%Y%m%d).dump

Puis enregistrez et quittez.
Étape 6. Restaurer le référentiel
Si vous devez restaurer le référentiel svn à partir du fichier de sauvegarde, utilisez les commandes ci-dessous.
Créez un nouveau dépôt.
svnadmin create /opt/svn/restorerepo
Restaurer la sauvegarde :
svnadmin load /opt/svn/restorerepo < /etc/backups/svnbackups-20190204.dump
C'est tout. Nous espérons que cet article vous a aidé à configurer subversion avec succès. Si vous avez des questions ou des commentaires, veuillez consulter la section Commentaires ci-dessous.