How To Use Svn

Comment utiliser Subversion.


(Attention, ceci étant une traduction expérimentale, il est très probable que des erreurs soient encore présentes sur cette page)

Introduction

Subversion est un système open-source de gestion de versions, qui aspire à remplacer totalement CVS_. Le dépôt principal du projet MicroLua est hébergé ici, sur GoogleCode, et fonctionne avec Subversion.

Si vous connaissez déjà tout ça et ne voulez pas plus de détails :
svn checkout http://microlua.googlecode.com/svn/ .
# ou mieux, si vous avez la permission de 'commiter'
svn checkout https://microlua.googlecode.com/svn/ .
svn checkout http://microlua.googlecode.com/svn/ . # ou mieux, si vous avez la permission de 'commiter' svn checkout https://microlua.googlecode.com/svn/ . }}}

Détails

Cette page vous apprendra les commandes basiques pour interagir avec notre dépôt. Si vous voulez utilisez Subversion avec une interface graphique, regardez la page HowToUseSvnGui. Le client graphique le plus couramment utilisé est TortoiseSVN.

Si vous voulez utiliser l'interface en ligne de commandes avec une machine sous Windows, il est recommandé d'installer Cygwin. Voir HowToUseCygwin pour plus de détails.

Récupérer le code

Voir svn checkout pour plus de détails.
cd /où/je/travaille/habituellement/avec/microlua
mkdir ma_copie_de_travail  # ou autre chose
cd ma_copie_de_travail
svn checkout http://microlua.googlecode.com/svn/ .  # raccourci: svn co ...
# ou mieux si vous avez la permission de "Commiter":
svn checkout https://microlua.googlecode.com/svn/ .
# attendez un instant que le code se télécharge
cd /où/je/travaille/habituellement/avec/microlua mkdir ma_copie_de_travail # ou autre chose cd ma_copie_de_travail svn checkout http://microlua.googlecode.com/svn/ . # raccourci: svn co ... # ou mieux si vous avez la permission de "Commiter": svn checkout https://microlua.googlecode.com/svn/ . # attendez un instant que le code se télécharge }}}

Mettre à jour sa version du dépôt

Voir svn update pour plus de détails.
cd ma_copie_de_travail
svn update  # raccourci: svn up ...
# attendez un peu pour que le code se mette à jour 
cd ma_copie_de_travail svn update # raccourci: svn up ... # attendez un peu pour que le code se mette à jour }}}

Si vous avez modifié des choses dans votre copie de travail, vous devriez pouvoir en finir avec les conflits.

Faire des changement

Éditez le code comme vous le faites d'habitude et testez-le. Si jamais vous ajoutez un fichier dans le dépôt, n'oubliez pas de faire un svn add it.

Voir les changements

Pour voir quels fichers ont changés, utilisez svn status:
cd ma_copie_de_travail
svn status  # raccourci : svn st...
cd ma_copie_de_travail svn status # raccourci : svn st... }}}

Pour voir ce qui a changé dans les fichiers, utilisez svn diff:
cd ma_copie_de_travail
svn diff
cd ma_copie_de_travail svn diff }}}

Pour voir ce qui a changé dans un fichier en particulier :
cd ma_copie_de_travail
svn diff chemin/jusqu'au/fichier
cd ma_copie_de_travail svn diff chemin/jusqu'au/fichier }}}

Écrire un patch

Si vous ne pouvez pas commiter, vous pouvez publier vos modifications en collant un patch quelque part ou en attachant un patch à une issue.

svn diff (chemin/du/fichier) > endroit/où/stocker/le/patch/raisons_de_la_modification.diff
svn diff (chemin/du/fichier) > endroit/où/stocker/le/patch/raisons_de_la_modification.diff }}}

Commiter

Pour commiter le code, utilisez svn commit.

Vous aurez besoin d'une permission pour ça, qu'il faudra demander à Grahack. Lisez alors s'il vous plait la page CommitMessage.

Ici, nous savons que Git est plus "puissant" car il permet de faire plusieurs commits dans un seul fichier. Vous serez satisfait d'utiliser la commande git add -pgit add -p pour cela. Subversion quant à lui ne peut pas différencier plusieurs changements dans un même fichier.

NOTE: Même si vous avez la permission de Commiter et que vous avez tapé le bon mot de passe, vous ne pourrez pas Commiter si vous faites un 'Checkout' avec 'http' au lieu de 'https'. (voir la section "Récupérer le code" plus haut)