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.
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.)
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.
Créez votre compte via “New User via SSL” dans le menu.
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) !
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
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 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
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.
Récupére les dernières modifications des autres membres, à utiliser systématiquement avant toute modification :
svn up
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
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
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/
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/
Permet de savoir si vous avez des fichiers différents de ce qu’il y a dans le référentiel.
svn status
Annule les modifications locales non encore commitées. Revenir sur la version du référentiel de fichier :
svn revert fichier
Suit l’évolution d’une ressource du référentiel ou de la copie de travail.
svn log fichier
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
Voici de quoi approfondir vos connaissances :-)