Forge / SVN Présentation Les sysadmins GREYC, CNRS UMR 6072 6, boulevard du Maréchal Juin 14050 Caen cedex sciences.info.sysadmin@unicaen.fr 10 Novembre 2010
Introduction Présentation du site Commandes de base de Subversion (svn)
Sommaire Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 3 / 1
Présentation du site 2 instances: Forge du labo: https://forge.greyc.fr (pour les projets en rapport avec la recherche) Forge du département info: https://forge.info.unicaen.fr (pour les enseignants et les étudiants) Authentification Se connecter avec le compte Universitaire (PersoP@ss / EtuP@ss) Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 4 / 1
Mon compte Choix de la langue Paramètres de notification par e-mail Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 5 / 1
Création d un nouveau projet Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 6 / 1
Création d un nouveau projet Modération La création de projet sur forge.greyc.fr est modérée par les sysadmins. 4 points importants à vérifier: Nom Celui qui va apparaître dans l interface Identifiant Le nom du dépôt (ie. celui qui apparaîtra dans l URL) Description Résumé du projet Accès public (en lecture) Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 7 / 1
Création d un nouveau projet Sous-projet de... Site web Un lien vers un site externe. L URL apparaîtra sur la page d accueil du projet. Modules Dans la majorité des cas, s assurer que le dépôt de sources est bien validé (OK par défaut) Patience... La création du projet se fait dans les 5 minutes suivantes Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 8 / 1
Configuration Choix des membres du projet. Il existe 3 rôles: Manager Gère toute la configuration, a globalement tous les droits Développeur A les droits d écriture sur le dépôt, le wiki, etc... Rapporteur A un accès en lecture seulement Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 9 / 1
Configuration Pour ajouter un utilisateur non présent dans la liste, utiliser le plugin Ajouter un utilisateur (lien situé en haut à droite de l interface) Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 10 / 1
Ajouter un utilisateur Accès réservé Seuls les membres du laboratoire peuvent faire cette opération Un membre du labo: S assurer qu il dispose d un PersoP@ss et remplir le 1 er formulaire Pour les autres: Remplir tous les champs du second formulaire Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 11 / 1
Configuration du dépôt Attention Ne jamais remplir soi-même l URL ou le type de dépôt. Ces champs seront remplis automatiquement avec la création du dépôt SVN. Identifiant / Mot de passe Si le dépôt est en accès public, on peut tout de même limiter sa lecture grâce à un compte et mot de passe qu il est possible de définir ici. Options d affichage du dépôt Permet d afficher l URL de checkout/commit dans l onglet Dépôt du projet. Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 12 / 1
Exemple de dépôt URL du dépôt, stats, diff entre révisions... Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 13 / 1
BugTracking NewIssue (ou Nouvelle Demande en VF) Par défaut, un mail est envoyé au manager ainsi qu à la personne censée résoudre le bug / feature. Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 14 / 1
BugTracking La liste des bugs/features dans l onglet Issues ( Demandes en VF) Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 15 / 1
Les autres outils Annonces Pour annoncer les nouvelles versions par exemple Wiki Documents Par exemple de la doc, des rapports, etc... Fichiers Des fichiers qui sont en lien direct avec le dépôt mais qui n ont pas besoin d être versionnés (images de tests, dépendances...) Forum, diagramme de Gantt, etc... Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 16 / 1
A noter Supprimer les projets obsolètes Un mail sera envoyé si le projet est inactif depuis plus de 6 mois Accès HTTPS uniquement Il n est donc pas possible de s authentifier avec des clés SSH Ne pas versionner de fichiers binaires Dans la mesure du possible. Il ne sert à rien de mettre des images ou des PDF statiques de plusieurs Mo dans le dépôt. Uploader si besoin dans la partie Fichiers (limité à 10Mo par fichier actuellement) Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 17 / 1
Subversion Le seul type de dépôt autorisé sur forge Quelques commandes de base Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 18 / 1
Checkout et Commit Récupérer le dépôt sur sa machine C est également la première commande à exécuter après la création du projet. Exemple $ svn checkout https://forge.greyc.fr/svn/seminaire-forge \ /home/paul/forge --username paul Envoyer le dépôt sur le serveur Exemple $ svn commit -m "Premier commit" /home/paul/forge --username paul ou $ svn commit -m "Un seul sous repertoire" /home/paul/forge/subdir Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 19 / 1
Configuration Attention Subversion peut stocker les mots de passe, mais seulement en clair! Edition de ~/.subversion/config # password-stores = gnome-keyring password-stores = # (...) store-passwords = no store-auth-creds = no Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 20 / 1
Manipulation de données Dans un dépôt, il convient de créer 3 répertoires: trunk Le répertoire de travail tags Des snapshots de révisions qui correspondent en principe à des versions stables branches Pour les différentes branches de développement Exemple $ svn mkdir /home/paul/forge/trunk A /home/paul/forge/trunk $ cd /home/paul/forge $ svn mkdir {tags,branches} A tags A branches Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 21 / 1
Manipulation de données Ajout de fichiers au dépôt: svn add Exemple $ svn add --depth empty trunk/beamer A trunk/beamer $ svn add trunk/beamer/forge.tex A trunk/beamer/forge.tex $ svn ci -m "Presentation beamer" trunk [--username paul] Domaine d authentification: <https://forge.greyc.fr:443> SVN Reposi Mot de passe pour paul : Ajout trunk Ajout trunk/beamer Ajout trunk/beamer/forge.tex Transmission des donnees... Rvision 3 propagee. L option --depth empty désactive la récursivité lors d ajout de répertoire. Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 22 / 1
Manipulation de données Suppression de fichiers: svn rm Exemple $ svn rm [--keep-local] trunk/beamer/forge.log D trunk/beamer/forge.log L option --keep-local permet de garder le fichier sur la machine locale (supprimé par défaut). Déplacement: svn mv On peut utiliser les commandes habituelles (mv, svn rm, svn add), mais de façon plus pratique: Exemple $ svn mv trunk/accueil.png trunk/beamer/ A trunk/beamer/accueil.png D trunk/accueil.png Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 23 / 1
Etat du projet Les tags les plus courants sont: A : va être ajouté M : va être modifié D : va être supprimé? : fichier non versionné! : le fichier a été supprimé localement sans que le serveur n en soit averti (ie. sans svn rm) svn help status pour une liste exhaustive Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 24 / 1 svn status Affiche les modifications qui vont être faites dans le dépôt au prochain commit Exemple $ svn status trunk A beamer/beamerthemegreyc.sty M beamer/forge.tex D beamer/forge.log? beamer/forge.pdf! test.tmp
Etat du projet svn diff Affiche les différences entre la version locale et celle du serveur. On peut également demander le diff entre 2 versions déjà committées. Exemple $ svn diff trunk/beamer/forge.tex $ svn diff -r4:3 trunk/beamer/forge.tex ================================================================ --- forge.tex (revision 4) +++ forge.tex (revision 3) @@ -391,8 +391,8 @@ \begin{frame}[containsverbatim] \frametitle{manipulation de donn\ ees} - \begin{itemize} - \item \textbf{ajout de fichiers au d\ ep\^ot: \texttt{sv + ~\\ + \textbf{ajout de fichiers au d\ ep\^ot: \texttt{svn add} Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 25 / 1
Les tags Créer un tag (ou une branche): svn copy Exemple $ svn copy https://forge.greyc.fr/svn/seminaire-forge/trunk \ https://forge.greyc.fr/svn/seminaire-forge/tags/v0.1 \ -m "Version 0.1" Le supprimer: svn delete Exemple $ svn delete https://forge.greyc.fr/svn/seminaire-forge/tags/v0.1 Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 26 / 1
Export svn export Cette commande permet de récupérer le code contenu dans le dépôt sans pour autant en faire une copie de travail (pas de.svn et les commandes svn ne sont pas applicables). Utile si on veut le code pour l utiliser, et non pour continuer son développement. Exemple $ svn export https://forge.greyc.fr/svn/seminaire-forge/tags/v0.1 \ /home/presentation/ [--username paul] Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 27 / 1
Euh... oups... Revenir à une version précédente Revenir à la dernière version commitée (HEAD) et annuler toutes les modifications faites en local (mais ne restore pas les répertoires supprimés) Exemple $ svn revert [-R] trunk/beamer Annuler une version commitée Exemple $ svn merge -rhead:4 trunk Où 4 est la révision qu on souhaite conserver. A noter que les versions 5, 6,... seront conservées puisque SVN ne permet pas de supprimer des révisions. Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 28 / 1
Autres commandes Si vous connaissez d autres commandes utiles... Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 29 / 1
Aide En ligne de commande: svn help [commande] Exemple $ svn help $ svn help revert Un site / livre de référence complet: http://svnbook.red-bean.com Les sysadmins (GREYC) Forge / SVN 10 Novembre 2010 30 / 1