Subversion (SVN) sur Ubuntu 20.04
Subversion est un logiciel de gestion de versions, distribué sous licence Apache.
Installation de Subversion
On crée l’utilisateur svn
| 
					 1  | 
						sudo useradd -m -d /home/svn -U -r -s /bin/bash svn  | 
					
On installe subversion
| 
					 1  | 
						sudo apt install subversion  | 
					
Faire son premier dépôt
Tout d’abord, créez un dépôt (nous considérerons le répertoire user1).
On se connecte à l’utilisateur svn
| 
					 1  | 
						sudo su - svn  | 
					
Et on crée le dépôt
| 
					 1 2  | 
						cd /home/svn && svnadmin create /home/svn/user1  | 
					
Et on démarre le serveur
| 
					 1  | 
						svnserve -d -r /home/svn  | 
					
Vous pouvez maintenant accéder à votre dépôt (à l’aide d’un logiciel comme TortoiseSVN) avec l’adresse svn://IP_de_votre_serveur/user1
Configurer votre serveur
Fichier de configuration principal
il faut éditer le fichier svnserve.conf avec au minimum avec les valeurs suivantes
| 
					 1  | 
						nano /home/svn/user1/svnserve.conf  | 
					
Éditez le fichier de configuration et changer les lignes comme ci-dessous
| 
					 1 2 3  | 
						[general] password-db = passwd authz-db = authz  | 
					
Fichier des mots de passe
Puis le fichier paswd
| 
					 1  | 
						nano /home/svn/user1/passwd  | 
					
Et on spécifie l’utilisateur et le mot de passe comme ci-dessous
| 
					 1 2  | 
						[users] user1 = password  | 
					
On protège les mots de passe, car ils ne sont pas cryptés, il convient donc d’en interdire l’accès en lecture à tout le monde
| 
					 1 2  | 
						chmod o-r /home/svn/user1/conf/authz && chmod o-r /home/svn/user1/conf/passwd  | 
					
Fichier des droits d’accès
Et le fichier des droits d’accès
| 
					 1  | 
						sudo nano /home/svn/user1/authz  | 
					
Et on donne les droits maximum à l’utilisateur user1
| 
					 1 2  | 
						[/] user1 = rw  | 
					
Installer le script de démarrage
On quitte l’utilisateur svn
| 
					 1  | 
						exit  | 
					
Puis on édite le fichier de configuration systemctl
| 
					 1  | 
						sudo nano /etc/systemd/system/svnserve.service  | 
					
Éditez le fichier de configuration et changer les lignes comme ci-dessous
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | 
						[Unit] Description=Subversion protocol daemon After=syslog.target network.target [Service] Type=forking RuntimeDirectory=svnserve PIDFile=/run/svnserve/svnserve.pid EnvironmentFile=/etc/default/svnserve ExecStart=svnserve -d -r /home/svn User=svn Group=svn KillMode=control-group Restart=on-failure [Install] WantedBy=multi-user.target  | 
					
Puis on ajoute les options de démarrage du service
| 
					 1  | 
						sudo nano /etc/default/svnserve  | 
					
On remplit le fichier ainsi
| 
					 1 2  | 
						# svnserve options DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root /home/svn --log-file /var/log/svnserve/svnserve.log"  | 
					
Puis on crée le répertoire des logs
| 
					 1 2  | 
						mkdir /var/log/svnserve && chown svn: -R /var/log/svnserve  | 
					
Et on ajoute la configuration pour la rotation des logs pour archiver convenablement ces derniers
| 
					 1  | 
						sudo nano /etc/logrotate.d/svnserve  | 
					
On remplit le fichier ainsi
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14  | 
						/var/log/svnserve/*.log {     daily     missingok     rotate 14     compress     notifempty     create 640 svn adm     sharedscripts     postrotate             if /bin/systemctl status svnserve > /dev/null ; then \                 /bin/systemctl restart svnserve > /dev/null; \             fi;     endscript }  | 
					
Puis on démarre le service et on l’exécute au démarrage
| 
					 1 2 3  | 
						sudo systemctl daemon-reload && sudo systemctl start svnserve.service && sudo systemctl enable svnserve  | 
					
On vérifie l’état du système
| 
					 1  | 
						sudo systemctl status svnserve  | 
					
La sortie devrait ressembler à quelque chose comme ci-dessous, montrant que le service Odoo est actif et en cours d’exécution
| 
					 1 2 3 4 5 6 7 8  | 
						● svnserve.service - Subversion protocol daemon      Loaded: loaded (/etc/systemd/system/svnserve.service; enabled; vendor preset: enabled)      Active: activating (start) since Sun 2021-05-16 15:55:37 UTC; 1min 12s ago     Process: 2084 ExecStart=/usr/bin/svnserve -d -r /home/svn (code=exited, status=0/SUCCESS)       Tasks: 1 (limit: 38487)      Memory: 1.1M      CGroup: /system.slice/svnserve.service              └─2085 /usr/bin/svnserve -d -r /home/svn  | 
					
Sauvegarder son dépôt
| 
					 1  | 
						svnadmin -q dump /home/svn/user1 > /backup/svn/user1.svndump  | 
					
Restaurer son dépôt
| 
					 1 2  | 
						svnadmin create /home/svn/user1 && svnadmin load /home/svn/user1 < /backup/svn/user1.svndump  | 
					
Et n’oublier de configurer les fichiers
- /home/svn/user1/conf/passwd
 - /home/svn/user1/conf/svnserve.conf
 - /home/svn/user1/conf/authz
 
Modifier les logs d’un dépôt SVN
| 
					 1 2 3  | 
						mv /home/svn/user1/hooks/pre-revprop-change.tmpl /home/svn/user1/hooks/pre-revprop-change && chmod +x /home/svn/user1/hooks/pre-revprop-change && sudo systemctl restart svnserve  | 
					
													
													
													
0 commentaire