Subversion (SVN) est un outil de gestion de documents permettant, dans une certaine mesure, le travail collaboratif au sein de groupes de personnes. C'est un outil qui se classe dans la famille des outils de contrôle de version, comme CVS, et qui est en passe de devenir une sorte de référence dans son domaine. Git est un autre logiciel de contrôle de version plus récent et de plus en plus utilisé.
Nous avons installé un serveur SVN au sein du département pour vous permettre de vous familiariser avec cet outil et de profiter de la puissance d'un gestionnaire de version pour vos travaux de groupe de programmation, de rédaction, ou autre...
Attention! Les informations présentées ici sont obsolètes ! Il existe un GitLab UCLouvain ([[https://forge.uclouvain.be/]]) pour vos projets de groupes !
Notre serveur travaille par projets, auxquels sont attachés des membres, identifiés par le préfixe de leur adresse email @student.uclouvain.be
. L'utilisation du serveur se fait au travers du protocole HTTPS, comme pour accéder à un site WEB protégé par SSL.
L'inscription d'un nouveau projet se fait via le formulaire web suivant :
Sur ce formulaire, il vous est demandé d'entrer les paramètres essentiels à la création du projet :
(chacun de ces champs doit commencer par une lettre et ne peut contenir que des caractères alphanumériques, "-", "." ou "_")
Une fois le formulaire posté, un administrateur doit valider ou réfuter la nouvelle inscription. Dans les deux cas, les membres du projet reçoivent un mail d'information.
Lorsque le nouveau projet est accepté, le repository est immédiatement créé ainsi que les accès nécessaires. En effet, la consultation ou la mise à jour des repositories ne se fait qu'après une authentification avec login et password sur HTTPS. Le login est toujours constitué par l'entête de votre address email "@student.uclouvain.be", le password est généré aléatoirement au moment de l'addition d'un nouveau participant. Lorsqu'un utilisateur est authentifié, le serveur lui associe des droits d'accès. En l'occurence, pour les projets de programmation étudiants, nous avons choisi de donner les droits de lecture et d'écriture sur le repository pour tous les membres inscrits, et aucun droit pour les autres visiteurs. Lorsque c'est la première fois qu'un participant est repris dans les membres d'un projet, il recevra son login et son password dans le mail l'informant de la création du repository. A priori, les droits d'accès définis par défaut, ainsi que les mots de passe, sont non-modifiables. (mais on peut toujours en discuter ;-))
Pour inscrire votre groupe à un TP monitoré, vous utilisez le même formulaire que ci-dessus. Plutôt que d'indiquer un nom, vous cochez la case d'inscription, ce qui a deux effets :
Lorsque ces paramètres sont indiqués, vous procédez à l'enregistrement des membres, comme pour un projet normal.
La plupart des TP monitorés prévoient diverses échéances de remise de délivrables. Lorsque votre demande d'inscription aura été validée par un assistant encadrant, vous recevrez un mail mentionnant toutes les dates concernées. Ces échéances sont gérées par le système et cela demande que vous respectiez certaines règles. Ce sont les suivantes :
Ainsi, imaginons que votre groupe soit grp3, pour le TP INGI007 avec 3 échéances. Le repository global du TP sera pré-existant, disons INGI007-TP-sept2007. Votre sous-répertoire devra avoir la forme suivante :
INGI007-TP-sept2007 | +-grp3 | +- milestone1 | +- milestone2 | +- milestone3
Tous ces détails sont (re-)mentionnés dans le mail de confirmation que vous recevrez lors de la validation de votre inscription au TP. N'hésitez-pas à demander plus d'explications à votre assistant si vous rencontrez des problèmes avec le repo.
L'utilisation de base de Subversion est assez simple. Il faut principalement connaître quatre commandes:
svn checkout <url_du_serveur>
: Crée une copie locale du projet dans le dossier courant.
svn add <path>
: Ajoute le fichier ou dossier pointé par path dans le projet partagé (attention, les fichiers ne sont pas encore copiés, pour cela voir le point suivant).
svn commit -m "Commentaire" <path>
: Insère les changements faits sur la copie locale dans le projet partagé. Il faut écrire un commentaire précisant à quoi correspondent les modifications.
svn update
: Pour mettre à jour la copie locale (c'est-à-dire insérer dans la copie locale les changements qui ont été effectués par les autres).
svn lock <path>
: Verouille le fichier ou dossier pointé par path dans le projet partagé (!!! un commit ANNULE le verouillage !!!).
svn unlock <path>
: Déverouille le fichier ou dossier pointé par path dans le projet partagé si on est l'auteur du lock (Pas besoin de commit).
svn info <url_du_serveur>/<path>
: Récupère les informations d'un fichier et indique si il est verouillé (Les infos de verouillage ne sont pas indiquées en local).
Il est possible d'utiliser Subversion dans Eclipse, par l'installation d'un plugin.
Si vous souhaitez installer Subversion sur votre ordinateur personnel, vous trouverez le tutoriel à l'adresse https://wiki.student.info.ucl.ac.be/Logiciels/Subversion