Le guide ultime pour configurer Apache Subversion SVN et TortoiseSVN pour le contrôle de version

Le guide ultime pour configurer Apache Subversion SVN et TortoiseSVN pour le contrôle de version

Si votre travail nécessite de gérer des documents, des pages Web et d'autres types de fichiers régulièrement mis à jour, vous pouvez utiliser un mécanisme de contrôle de version si vous ne le faites pas déjà.

Entre autres choses, cela vous permet également (et un groupe de collaborateurs potentiels) de suivre les modifications apportées à un fichier donné, et vous permet de revenir à une version précédente si un problème est rencontré ou lorsqu'une mise à jour n'a pas produit le résultat attendu.

Dans l'écosystème du logiciel libre, le système de contrôle de version le plus utilisé est appelé Subversion Apache (ou SVN pour faire court). Avec l'aide de mod_dav_svn (Module d'Apache pour Subversion), vous pouvez accéder à un référentiel de subversion à l'aide de HTTP et d'un serveur Web.

Cela dit, retroussons nos manches et installons ces outils sur un Rhel / centos 7, Fedora 22-24, Debian 8/7 et Ubuntu 16.04-15.04 serveur. Pour nos tests, nous utiliserons un Centos 7 serveur avec IP 192.168.0.100.

Du côté client (un Windows 7 machine), nous installerons et utiliserons Tortues (qui est basé sur la subversion Apache) comme interface à SVN.

Notre environnement de test

Serveur - Centos 7 Adresse IP - 192.168.0.100 Client - Windows 7 

Étape 1 - Installation et configuration de SVN sur Linux

Comme nous venons de le mentionner, nous compterons sur Apache afin d'accéder au référentiel SVN à l'aide d'une interface Web. S'il n'est pas déjà installé, assurez-vous de l'ajouter à la liste des packages comme indiqué ci-dessous:

------------------ Sur Centos / Rhel / Fedora ------------------ # yum Update && yum install mod_dav_svn subversion httpd -y ------------------ Sur Debian / Ubuntu ------------------ # apt-get update && apt-get install libapache2-svn subversion apache2 -y 

Pendant l'installation sur Centos 7, Un fichier de configuration Apache pour SVN sera créé comme / etc / httpd / confre.modules.d / 10-subversion.confli. Ouvrez le fichier et ajoutez le bloc de configuration suivant:

/ etc / httpd / confre.modules.d / 10-subversion.confli
 DAV SVN SVNParentPath / Websrv / Svn AuthType Basic Authname "Bienvenue sur SVN" AuthUserFile / etc / Httpd / Subversion-AuTH nécessite un utilisateur valide  
Configurer le module apache SVN

Note: Sur Debian / Ubuntu Vous devez ajouter des lignes ci-dessous / etc / apache2 / mods-compatible / dav_svn.confli déposer.

/ etc / apache2 / mods-compatible / dav_svn.confli
 DAV SVN SVNParentPath / Websrv / Svn AuthType Basic Authname "Bienvenue sur SVN" AuthUserFile / etc / APACHE2 / Subversion-Auth nécessite un utilisateur valide  

Sur Debian / Ubuntu, vous devez activer dav_svn apache module:

# a2enmod dav_svn 

Quelques clarifications:

  1. Le Svnparentpath La directive indique le répertoire où nos référentiels seront créés plus tard. Si ce répertoire n'existe pas (ce qui est probablement le cas), créez-le avec:
    # mkdir -p / websrv / svn 

    Il est important de noter que ce répertoire ne doit pas être situé à l'intérieur, ni chevaucher, le Document de document d'un hôte virtuel actuellement servi par Apache. C'est un showstopper!

  2. Le AuthUserfile La directive indique le fichier où les informations d'identification d'un utilisateur valide seront stockées. Si vous souhaitez permettre à chacun d'accéder à SVN sans authentification, supprimez les quatre dernières lignes du bloc d'emplacement. Si tel est le cas, sautez Étape 2 et dirigez-vous directement sur Étape 3.
  3. Bien que vous puissiez être tenté de redémarrer Apache afin d'appliquer ces modifications récentes, ne le faites pas encore car nous devons encore créer le fichier d'authentification avec des utilisateurs valides pour SVN et le référentiel lui-même.

Étape 2 - Ajouter les utilisateurs autorisés pour accéder à SVN

Nous allons maintenant utiliser htpasswd Pour créer un mot de passe pour les comptes qui sera autorisé à accéder à SVN. Pour le premier utilisateur uniquement, nous aurons besoin du -c option.

Comptes autorisés et mots de passe cryptés par BCrypt (-B) sera stocké dans / etc / httpd / subversion-auth en paires de valeurs clés. Notez que selon les normes d'aujourd'hui, le chiffrement MD5 ou SHA par défaut utilisé par HTPassWD est considéré comme peu sûr.

------------------ Sur Centos / Rhel / Fedora ------------------ # htpasswd -cb / etc / httpd / subversion-Auth tecmint ------------------ Sur Debian / Ubuntu ------------------ # htpasswd -cb / etc / apache2 / subversion-uth tecmint 

N'oubliez pas de définir la bonne propriété et les bonnes autorisations sur le fichier d'authentification:

------------------ Sur Centos / Rhel / Fedora ------------------ # chgrp apache / etc / httpd / subversion-auth # chmod 660 / etc / httpd / subversion-auth ------------------ Sur Debian / Ubuntu ------------------ # chgrp www-data / etc / apache2 / subversion-auth # chmod 660 / etc / apache2 / subversion-auth 

Étape 3 - Ajouter la sécurité et créer le référentiel SVN

Étant donné que vous accéderez à SVN via une interface Web, vous devrez autoriser Http (et éventuellement Https) trafic à travers votre pare-feu.

------------------ Sur Centos / Rhel / Fedora ------------------ # Firewall-CMD --Add-Service = HTTP --permanent # Firewall-CMD --Add-Service = HTTPS - PERMANENT # Firewall-CMD - Reload 

En rechargeant la configuration du pare-feu avec --recharger, Les paramètres permanents sont mis en œuvre immédiatement.

Créer un référentiel SVN initial appelé Tecmint:

# SVNADMIN CREATE / WebSRV / SVN / Tecmint 

Changer le propriétaire et le propriétaire du groupe en apache récursivement:

------------------ Sur Centos / Rhel / Fedora ------------------ # chown -r apache: apache / websrv / svn / tecmint ------------------ Sur Debian / Ubuntu ------------------ # chown -r www-data: www-data / websrv / svn / tecmint 

Enfin, vous devrez modifier le contexte de sécurité de / websrv / svn / tecmint (Notez que vous devrez répéter cette étape si vous décidez de créer d'autres référentiels plus tard):

------------------ Sur Centos / Rhel / Fedora ------------------ # chcon -r -t httpd_sys_content_t / websrv / svn / tecmint / # chcon -r -t httpd_sys_rw_content_t / Websrv / svn / tecmint / 

Note: Les deux dernières commandes peuvent ne pas s'appliquer si vous installez SVN sur un VPS avec SELINUX Désactivé.

Lire suggérée: Apprenez à désactiver Sélinux temporairement ou en permanence dans Linux

Redémarrage Apache et vérifier que le référentiel est disponible.

------------------ Sur Centos / Rhel / Fedora ------------------ # SystemCTL Redémarrer HTTPD ------------------ Sur Debian / Ubuntu ------------------ # systemctl redémarrer apache2 

Puis lancez un navigateur Web et pointez-le vers http: // 192.168.0.100 / svn / tecmint. Après avoir saisi les informations d'identification pour l'utilisateur valide dans lequel nous avons créé Étape 1, La sortie doit être similaire à:

Accéder au référentiel SVN via le navigateur

À ce stade, nous n'avons ajouté aucun code à notre référentiel. Mais nous ferons ça dans une minute.

Étape 4 - Installez TortoiseSVN dans le client Windows 7

Comme nous l'avons mentionné dans l'introduction, Tortues est une interface conviviale à Apache Subversion. Il est un logiciel gratuit sous licence sous le GPL et peut être téléchargé à partir de https: // tortuesvn.net / téléchargements.html.

Choisissez l'architecture (32 ou 64 bits) qui correspond à votre machine et installez le programme avant de continuer.

Étape 5 - Configuration du référentiel SVN sur la machine client

Dans cette étape, nous utiliserons un dossier nommé webapp à l'intérieur Documents. Ce dossier contient un fichier html et deux dossiers nommés scripts et styles avec un javascript et un fichier CSS (scénario.js et modes.CSS, respectivement) que nous voulons ajouter au contrôle de version.

Clic-droit webapp et choisissez le paiement SVN. Cela créera une copie locale du référentiel distant (qui est vide pour le moment) et initialise le dossier du contrôle de version:

Configurer SVN sur le répertoire client

Dans l'URL du référentiel, type http: // 192.168.0.100 / svn / tecmint et assurez-vous que le répertoire de paiement local reste le même, puis cliquez D'ACCORD:

Configurer le référentiel SVN sur le client

Entrez le nom d'utilisateur et le mot de passe (reportez-vous à Étape 2) et cliquez D'ACCORD:

Entrez les informations d'identification de l'utilisateur SVN

Il vous sera demandé si vous souhaitez passer dans un répertoire non vide. Confirmer pour procéder à la caisse. Une fois qu'il est terminé, une coche verte apparaîtra à côté du nom du dossier:

Découvrez le répertoire SVN

Étape 6 - Commissez les modifications et déployez des fichiers dans le référentiel SVN distant

Faites un clic droit sur webapp encore et choisir Commettre ce temps. Ensuite, rédigez un commentaire descriptif pour identifier plus tard ce commit et vérifiez les fichiers et dossiers que vous souhaitez déployer dans le référentiel. Enfin, cliquez D'ACCORD:

Déployer des fichiers dans le référentiel SVN distant

Selon la taille des fichiers, l'engagement ne devrait pas prendre plus d'une minute. Une fois terminé, vous verrez que nous sommes maintenant révision 1, qui correspond à la version et aux fichiers répertoriés dans l'interface Web:

Confirmer la révision du référentiel SVN

S'il y a plusieurs personnes travaillant sur les mêmes fichiers, vous voudrez Mise à jour Votre copie locale afin d'avoir la dernière version disponible pour travailler. Vous pouvez le faire en cliquant avec le bouton droit sur webapp et choisir Mise à jour à partir du menu contextuel.

Toutes nos félicitations! Vous avez réussi à configurer un serveur SVN et à commis / mis à jour un projet simple sous contrôle de version.

Résumé

Dans cet article, nous avons expliqué comment installer et configurer un Subversion Apache serveur de référentiel sur un Centos 7 serveur, et comment commettre des modifications dans ce référentiel en utilisant Tortues.

Veuillez noter qu'il y a beaucoup plus à SVN et Tortues que ce que nous pouvons couvrir adéquatement ici (spécialement comment revenir aux révisions précédentes), vous pouvez donc vous référer aux documents officiels (SVN et TortoiseSVN) pour plus d'informations et de cas de configuration.

Comme toujours, n'hésitez pas à nous faire savoir si vous avez des questions! N'hésitez pas à utiliser le formulaire de commentaire ci-dessous pour nous joindre à tout moment.