Working Policies Répertoires de travail ---------------------- La répartition des différents répertoires de travail de l'équipe est faite comme suit: svn.sablecc.org/-------developers/-------utilisateur1/-------sandbox/ svn.sablevm.org/ | | | | | |---tags/ | | | |---utilisateur2/-------sandbox/ | | | |---tags/ | |---sablecc/------branches/-------experimental/ | | | | | |---sablecc-3/ | | | |---tags/-------sablecc-1.1/ | | | | | |--- . | | | . | | |--- . | | | | | |---sablecc-2.18.1/ | | | |---trunk/-------bin/ | | | |---etc/ | | | |---src/ | |---sablevm/-------branches/ | | | |---tags/-------sablevm-1.0.0/ | | | | | |--- . | | | . | | |--- . | | | | | |---sablecc-1.0.8/ | | | |---trunk/-------doc/ | | | |---src/ | | | |---test/ | |---/ Les répertoires principaux des projets (SableVM, SableCC, etc) se divisent en trois sous-répertoires: branches, tags et trunk. Ces répertoires ne peuvent être mis à jour que par l'administrateur du projet. Pour appliquer des modifications au projet il faut donc contacter l'administrateur. Le répertoire branches contient les travaux parallèles sur le projet principal qui n'ont pas encore été intégrés à la version officielle du projet. Le répertoire tags contient les différentes versions officielles du projet. Le répertoire trunk contient la version courante fonctionnelle du projet. Chaque utilisateur (contributeur) possède son sous-répertoire dans le répertoire developers. Ce sous-répertoire de travail se divise en deux branches: sandbox et tags. Sandbox est le répertoire de travail courant de l'utilisateur alors que tags est le répertoire de sauvegarde de l'utilisateur. L'utilisateur ne peut que créer et détruire ses tags, on ne peut les modifier. Les tags servent à conserver une image du travail de l'utilisateur au moment où il le désire. Il est fortement recommandé à chaque utilisateur de se créer un répertoire de développement principal pour son projet (sablecc, sablevm, etc) et une arborescence différente pour ses autres travaux dans son répertoire de travail comme dans l'exemple suivant: developers/-------utilisateur1/-------sandbox/-------dev/ | | | | | |---autre projet1/ | | | | | |---autre projet2/ | | | | | | | |---tags/-------dev/ | | | |---autre projet1/ | | | |---autre projet2 | |---utilisateur2/-------sandbox/-------dev/ | | | |---autre projet1/ | | | |---autre projet2/ | | | |---tags/-------dev/ | |---autre projet1/ | |---autre projet2 Contrôle de version ------------------- Au sein de l'équipe de recherche, le contrôle des différentes versions se fait à l'aide du logiciel Subversion. Pour de plus amples informations sur le logiciel Subversion et son utilisation visitez http://subversion.tigris.org/ et http://svnbook.red-bean.com/ Création d'une clé d'accès -------------------------- La création d'une clé d'accès au serveur de développement se fait à l'aide de l'outil ssh-keygen. 1- Dans la fenêtre de commande, taper la commande suivante: ssh-keygen -t [rsa ou dsa] où [rsa ou dsa] représente le type d'algorithme utilisé pour cryptographier la clé. 2- Entrer le mot de passe (phrase) une première fois lorsque demandé à la ligne de commande et ensuite confirmer en entrant le mot de passe une seconde fois. 3- Envoyer le fichier avec l'extension .pub à l'administrateur du projet pour qu'il puisse ajouter la clé publique et créer le nouvel utilisateur. Création d'un répertoire ------------------------ La création d'un répertoire de travail dans le répertoire developers se fait avec la commande mkdir. 1- Dans la fenêtre de commande, taper la commande suivante: svn mkdir svn+ssh://svn.sablevm.org/[chemin]/[répertoire] ou svn mkdir svn+ssh://svn.sablecc.org/[chemin]/[répertoire] où [chemin] représente le chemin d'accès (par exemple: developers/arcand/ sandbox et [répertoire] représente le nom du répertoire à créer (par exemple: dev) 2- Entrer au journal un message de création de répertoire, comme par exemple: Create arcand working directory. 3- Sortir de l'éditeur à l'aide des commandes Ctrl-x, Ctrl-c et ensuite confirmer la sauvegarde de l'entrée au journal. 4- Entrer le mot de passe de l'usager. 5- Faire une sauvegarde sur le serveur avec la commande: svn ci 6- Entrer le mot de passe de l'usager. Importation de fichiers ----------------------- L'importation de fichiers à partir du serveur se fait à l'aide la commande checkout (co). 1- Dans la fenêtre de commande, à partir du répertoire supérieur à celui dans lequel l'importation sera faite, taper la commande suivante: svn co svn+ssh://svn.sablevm.org/[chemin] [répertoire] ou svn co svn+ssh://svn.sablecc.org/[chemin] [répertoire] où [chemin] représente le chemin d'accès (par exemple: developers/arcand/ sandbox/policies et [répertoire] représente le nom du répertoire dans lequel seront copiés les fichiers localement. Si aucun nom de répertoire local n'est entré, alors un répertoire avec le même nom que celui sur le serveur est créé dans le répertoire courant. 2- Entrer le mot de passe de l'usager deux fois. Déplacement de fichiers et répertoires -------------------------------------- Le déplacement de fichiers et de répertoires se fait à l'aide de la commande switch (sw). On peut également utiliser cette commande pour renommer des fichiers et des dossiers. 1- Dans la fenêtre de commande, taper la commande suivante: svn sw svn+ssh://svn.sablevm.org/[accès] svn+ssh://svn.sablevm.org/[accès1] ou svn sw svn+ssh://svn.sablecc.org/[accès] svn+ssh://svn.sablecc.org/[accès1] où [accès] représente le chemin d'accès complet au fichier ou au répertoire d'origine(par exemple: developers/arcand/sandbox/policies/README). et [accès1] représente le chemin d'accès complet au fichier ou au répertoire de destination(par exemple: developers/arcand/sandbox/policies/guide). 2- Entrer le mot de passe de l'usager. Copie de fichiers et répertoires -------------------------------- La copie de fichiers et de répertoires se fait à l'aide de la commande copy (cp). 1- Dans la fenêtre de commande, taper la commande suivante: svn cp svn+ssh://svn.sablevm.org/[accès] svn+ssh://svn.sablevm.org/[accès1] ou svn cp svn+ssh://svn.sablecc.org/[accès] svn+ssh://svn.sablecc.org/[accès1] où [accès] représente le chemin d'accès complet au fichier ou au répertoire d'origine(par exemple: developers/arcand/sandbox/policies/README). et [accès1] représente le chemin d'accès complet au fichier ou au répertoire de destination(par exemple: developers/arcand/sandbox/policies/guide). 2- Entrer au journal un message de copie de fichiers ou de répertoire, comme par exemple: Copy of README file. 3- Entrer le mot de passe de l'usager. État des fichiers locaux ------------------------ L'état des fichiers locaux par rapport aux fichiers sur le serveur se fait à l'aide de la commande status (st). 1- Dans la fenêtre de commande, à partir d'un répertoire local de travail associé à une copie de travail sur le serveur, taper la commande suivante: svn st Rapportez-vous au guide d'utilisation de Subversion pour de plus amples informations sur les messages affichés par Subversion. Mise à jour de fichiers locaux ------------------------------ La mise à jour de fichiers locaux se fait à l'aide de la commande update (up). 1- Dans la fenêtre de commande, à partir d'un répertoire de travail associé à une copie de travail sur le serveur, taper la commande suivante: svn up 2- Entrer le mot de passe de l'usager. Rapportez-vous au guide d'utilisation de Subversion pour de plus amples informations sur les messages affichés par Subversion. Mise à jour de fichiers sur le serveur (copie individuelle) -------------------------------------- La mise à jour de fichiers locaux se fait à l'aide de la commande commit (ci). 1- Vérifier l'état des fichiers par rapport à ceux sur le serveur à partir du répertoire de travail associé aux fichiers à mettre à jour avec la commande suivante: svn st Rapportez-vous au guide d'utilisation de Subversion pour de plus amples informations sur les messages affichés par Subversion. Assurez-vous que l'état de chaque fichier est conforme aux opérations à y apporter (i.e: D pour les fichiers à effacer, M pour les fichiers à modifier, etc), sinon apportez les changements nécessaires. 2- Dans la fenêtre de commande, à partir du répertoire de travail associé aux fichiers à mettre à jour sur le serveur, taper la commande suivante: svn ci 3- Entrer au journal un message de sauvegarde des fichiers, comme par exemple: Daily saving of working copy. 4- Sortir de l'éditeur à l'aide des commandes Ctrl-x, Ctrl-c et ensuite confirmer la sauvegarde de l'entrée au journal. 5- Entrer le mot de passe de l'usager. Rapportez-vous au guide d'utilisation de Subversion pour de plus amples informations sur les messages affichés par Subversion. Mise à jour avec le tronc principal de développement ---------------------------------------------------- La mise à jour avec le tronc principal de développement devrait être faite régulièrement pour éviter les problèmes d'intégration du nouveau code à la version courante. 1- Vérifier l'état des fichiers par rapport à ceux sur le serveur à partir du répertoire de travail associé aux fichiers à mettre à jour avec la commande suivante: svn st Rapportez-vous au guide d'utilisation de Subversion pour de plus amples informations sur les messages affichés par Subversion. Avant de poursuivre, s'assurer que la commande status (st) ne retourne aucun résultat incohérent. Au besoin, apporter les changements nécessaires. 2- Retrouver le numéro de la dernière version locale avec laquelle une mise à jour avec le tronc principal a été faite avec la commande suivante: svn log Il est très important de faire la mise à jour à partir de la dernière version avec laquelle la mise à jour a été faite, pour éviter certains problèmes avec Subversion. Si aucune mise à jour avec le tronc principal n'a été faite, le numéro de la dernière version mise à jour est le numéro de la première version enregistrée dans le répertoire courant. 3- Fusionner la version courante du tronc principal de développement avec la version modifiée localement avec la commande suivante: svn merge -r [dernière version]:HEAD [répertoire ou fichier] [tronc] où [dernière version] est le numéro de la dernière version avec laquelle la mise à jour a été faite. [répertoire ou fichier] est le chemin complet au répertoire ou au fichier à mettre à jour. et [tronc] est le chemin d'accès au tronc principal de développement. Rapportez-vous au guide d'utilisation de Subversion pour de plus amples informations sur les messages affichés par Subversion. 4- Pour vérifier les changements conflictuels entre la version mise à jour et la version de travail, utiliser le commandes svn diff, svn add, etc. 5- Pour enrgistrer les changements à version de travail courante, entrer la commande suivante: svn ci 6- Entrer au journal le message de mise à jour des fichiers avec le tronc principal ayant la forme suivante: Merge with trunk. où [local] est le numéro de la version locale mise à jour. et [tronc] est le numéro de la version du tronc principal avec laquelle la mise à jour a été faite. 7- Sortir de l'éditeur à l'aide des commandes Ctrl-x, Ctrl-c et ensuite confirmer la sauvegarde de l'entrée au journal. 8- Entrer le mot de passe de l'usager. Rapportez-vous au guide d'utilisation de Subversion pour de plus amples informations sur les messages affichés par Subversion. Création d'un tag ----------------- La Création de tags se fait à l'aide de la commande copy (cp). 1- Dans la fenêtre de commande, taper la commande suivante: svn cp svn+ssh://svn.sablevm.org/[accès] svn+ssh://svn.sablevm.org/[accès1] ou svn cp svn+ssh://svn.sablecc.org/[accès] svn+ssh://svn.sablecc.org/[accès1] où [accès] représente le chemin d'accès complet au fichier ou au répertoire d'origine(par exemple: developers/arcand/sandbox/policies). et [accès1] représente le chemin d'accès complet au fichier ou au répertoire de destination(par exemple: developers/arcand/tags/policies-1.0.0). 2- Entrer au journal un message de création de tag, comme par exemple: Create release 1.0.0 of working policies. 3- Entrer le mot de passe de l'usager. Ajout de code au tronc principal de développement ------------------------------------------------- L'ajout de code au tronc principal de développement ne peut être fait que par l'administrateur du projet. Vous devez envoyer le code à ajouter à celui-ci en suivant les instructions suivantes. 1- Effectuer une mise à jour avec le tronc principal de développement. 2- Créer un nouveau tag avec un nom significatif, comme par exemple: policies-1.0.0 3- Contacter l'administrateur du projet en lui mentionnant le nom du tag créé.