Premiers pas avec Subversion

Ceci est un modeste guide d’apprentissage qui vous apprendra à utiliser Subversion. Une fois mis en confiance, vous pourrez passer à une compréhension plus fine ; des ressources sont disponibles en fin d’article.

Pré-requis et préparatifs

subversion (!), gnupg, openssl et openssh doivent être installés.

Il faut définir l’éditeur qui permettra à Subversion de renseigner la description d’une modification ; pour ce faire, dans ~./subversion/config indiquez votre éditeur favori et décommentez les deux lignes suivantes :

# [helpers]
# editor-cmd = editor (vi, emacs, scite, etc.)

Pour les membres du projet Nasgaïa

Le développement du projet est réalisé sur gna!. Pour un accès ssh au répertoire Subversion, il vous faut ouvrir un compte sur gna! et vous incrire au projet Nasgaïa :-). De plus, vous devrez déclarer une clef ssh.

Ouvrir un compte sur gna!

Créez votre compte via “New User via SSL” dans le menu.

Pour vous inscrire au projet Nasgaïa

  • Une fois votre compte gna! créé, loguez-vous en utilisant le nom et mot de passe choisis lors de l’enregistrement, puis visitez la page “My Groups” du menu. Recherchez “nasgaia” dans “Request for inclusion”.
  • Une fenêtre apparaîtra dans laquelle vous devrez entrer un commentaire destiné à l’un des membres du Conseil Ethique qui validera (ou non) votre inscription.
  • Enfin validez votre demande en cliquant sur “request inclusion”.

Créer une clef ssh et l'enregistrer sur gna!

Tapez dans un shell :

ssh-keygen -t rsa

Une passphrase vous sera demandée qui seule sera acceptée pour authentification, et non votre mot de passe sur gna!. La clé publique sera placée dans ~/.ssh/id_rsa.pub. Vous devrez ensuite enregistrer votre clef publique via le fomulaire disponible à la page ssh keys ... puis attendre le passage de cron (toutes les heures) !

Pour les clés non standards

Si vous choisissez de ne pas nommer votre clé avec le nom par défaut (id_rsa), vous devez indiquer à subversion comment lancer ssh pour qu’il utilise cette clé. Avant de lancer la commande svn (ou dans votre fichier de profil du shell), tapez :

SVN_SSH="ssh -i /chemin_vers_votre_clé"
export SVN_SSH

Par exemple, si la clé se trouve dans $HOME/.mykeys/key_gna (pour la clé privée) et $HOME/.mykeys/key_gna.pub (pour la clé publique), cela vous donnera :

SVN_SSH="ssh -i $HOME/.mykeys/key_gna"
export SVN_SSH

Utilisation et description des principales commandes

La première abbréviation à connaître est svn, pour subversion. Entre parenthèses se trouve l’abbréviation ou nom court de la sous-commande.

Toutes les commandes doivent être lancées à partir de votre copie de travail, par exemple /home/toto/N/nasgaia. Pour connaître les commandes, tapez :

svn help

Attention, Utilisez toujours les commandes Subversion (svn copy, svn move, svn delete, ...) pour manipuler les fichiers et non celles du système (cp, mv, ...), sinon Subversion ne pourra pas suivre l’évolution de votre copie de travail. Mais, vous pouvez éditer tous vos fichiers avec l’outil de votre choix.

checkout (co)

checkout télécharge en local une copie de travail du projet, un répertoire nasgaia sera créé /home/toto/N/nasgaia. C’est la première chose à faire pour travailler sur un projet. si vous voulez donner un autre nom, comme depot dans un répertoire nasgaia existant, placez vous dans ce répertoire et faite le checkout en spécifiant depot à la place de nasgaia en dernier paramètre.

Toutes les commandes svn devront être éxecutées à partir de ce répertoire. Avec un accès anonyme, tapez :

svn co svn://svn.gna.org/svn/nasgaia/trunk nasgaia 

ou avec le protocole http :

svn co http://svn.gna.org/svn/nasgaia/trunk nasgaia 

accès via ssh (accessible aux seuls membres du projet) :

svn co svn+ssh://membername@svn.gna.org/svn/nasgaia/trunk nasgaia

astuce : il est utile de se créer un alias pour éviter de taper votre commande

Qu'est ce que le répertoire .svn ??

Chaque répertoire d’une copie de travail locale contient une zone d’administration, un sous-répertoire nommé .svn. Quoi que vous fassiez ne le supprimez pas et ne le modifiez pas, il est nécessaire à Subversion pour gérer votre copie de travail.

update (up)

Récupére les dernières modifications des autres membres, à utiliser systématiquement avant toute modification :

svn up

add

Ajouter une ressource dans la liste des ressources qui appartiendront au référentiel. L’opération ne sera effective qu’au moment du commit. Le fichier doit exister avant de l’ajouter.

svn add fichier

delete (del, remove, rm)

Supprimer une ressource de la copie de travail avec effet immédiat sur celle-ci. Par contre, il faudra confirmer par commit cette modification pour modifier le référentiel.

svn del fichier

copy (cp)

Recopie une ressource d’un endroit du référentiel vers un autre endroit avec effet immédiat sur les ressources locales. Il faudra confirmer par commit cette modification pour modifer le référentiel. Pour copie le fichier dans le répertoire rep/

svn cp fichier rep/

move (mv, rename, ren)

Déplace des ressources dans la copie de travail avec effet immédiat sur celle-ci. Par contre, il faudra confirmer par commit cette modification pour impacter le référentiel. Sert également à renommer une ressource. Pour renommer fichier1 en fichier2 :

svn mv fichier1 fichier2

déplacer fichier dans le répertoire rep/ :

svn move fichier rep/

status (stat, st)

Permet de savoir si vous avez des fichiers différents de ce qu’il y a dans le référentiel.

svn status

revert

Annule les modifications locales non encore commitées. Revenir sur la version du référentiel de fichier :

svn revert fichier

log

Suit l’évolution d’une ressource du référentiel ou de la copie de travail.

svn log fichier

commit (ci)

Confirme tous les changements effectués sur votre copie de travail et les envoie sur le référentiel.

svn commit

Quand vous commitez une modification, vous devez fournir un message la décrivant. Ce message sera attaché à la nouvelle révision créée. Un éditeur s’ouvre vous proposant de saisir un commentaire qui sera assigné à vos modifications.

--This line, and those below, will be ignored--
A fichier

Il faut alors saisir un commentaire au dessus de la ligne avec les deux tirets.

Je vais finalement aller me promener !
--This line, and those below, will be ignored--
A fichier

Après avoir sauvegardé et quitté l’éditeur, le commit sera effectivement effectué sur le référentiel. Si vous quittez l’éditeur sans sauver, Subversion vous demandera s’il faut quitter sans sauver (et ne pas commiter) ou s’il faut revenir à l’éditeur.

Si le message est court, vous pouvez utiliser l’option en ligne de commande –message (-m) :

svn commit --message "Trois, ... euh non 4 pizzas :)"

Troisième possibilité, le message peut aussi être fourni par un fichier, dans ce cas utilisez l’option – file :

svn commit --file logmsg 

Ressources

Voici de quoi approfondir vos connaissances :-)

GUI

Ceux qui sont allergiques à la ligne de commande ou qui préfèrent simplement un frontend graphique peuvent utiliser

  • RapidSVN (dépendance avec wxWidgets)
  • SmartSVN (en java, et non libre, mais vraiment bien foutu)
 
subversion.txt · Dernière modification: 19/10/2005 17:27
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki