tuteurs.ens.fr/logiciels/subversion/index.tml

261 lines
6.1 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Subversion</title>
</head>
<body>
<h1>Contrôle de versions avec Subversion</h1>
<p>
Le logiciel Subversion permet de gérer l'évolution de projets et leurs
différentes versions. Si vous connaissez <a
href="&url.tuteurs;logiciels/rcs">RCS</a> ou&nbsp;<a
href="&url.tuteurs;logiciels/cvs">CVS</a>, Subversion entend leur
succéder et en moderniser le principe.
</p>
<h2>Préliminaires à l'utilisation de Subversion</h2>
<h3>Créer un répertoire de dépôt</h3>
<p>
Pour gérer l'évolution de projets (qu'il s'agisse de fichiers TeX, de
programmes ou de scripts en n'importe quel langage, etc.), il faut
d'abord, comme sous&nbsp;CVS, créer un répertoire de dépôt.
</p>
<pre>
<span class="prompt">bireme ~ $</span> mkdir svn
<span class="prompt">bireme ~ $</span> svnadmin create svn
<span class="prompt">bireme ~ $</span>
</pre>
<p>
Vous avez maintenant un répertoire de dépôt prêt à recevoir vos projets.
</p>
<h3>Ajouter des projets</h3>
<p>
Pour ajouter des projets à Subversion, allez d'abord dans le répertoire
contenant les fichiers du projet (s'ils existent). Dans notre exemple,
disons que vous avez un répertoire nommé <code>mon_projet</code>, qui
contient un seul fichier, intitulé <code>fichier1</code>.
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn import mon_projet file:///users/promo/section/login/svn -m "version0"
Adding mon_projet/fichier1
Committed revision 1.
<span class="prompt">bireme ~ $</span>
</pre>
<p class="continue">
Maintenant, vous avez&nbsp;:
</p>
<ul>
<li> un répertoire de dépôt&nbsp;;</li>
<li> un projet déposé dans ce dernier.</li>
</ul>
<p>
Vous pouvez déposer autant de projets que vous le désirez dans votre
répertoire de dépôt.
</p>
<h3>Créer des répertoires de travail</h3>
<p class="continue">
Il ne vous reste plus qu'à créer un (ou plusieurs) répertoire(s) de
travail&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn checkout file:///users/promo/section/login/svn svn-travail
A mon_projet/fichier
Checked out revision 1.
<span class="prompt">bireme ~ $</span>
</pre>
<p>
Évidemment, vous pouvez travailler sur un projet même si le répertoire
de dépôt n'est pas chez vous. Pour cela, tapez simplement l'URL du
projet. En voici quelques exemples&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn checkout http:///adresse/repertoire/projet svn-travail
<span class="prompt">bireme ~ $</span> svn checkout https:///adresse/repertoire/projet svn-travail
<span class="prompt">bireme ~ $</span> svn checkout svn:///adresse/repertoire/projet svn-travail
<span class="prompt">bireme ~ $</span> svn checkout svn+ssh:///adresse/repertoire/projet svn-travail
</pre>
<p>
Vous récoltez ainsi tous les fichiers du projet. Modifiez-les de la
façon habituelle, typiquement avec un éditeur de texte.
</p>
<h2>Subversion au quotidien</h2>
<h3>Mettre à jour un répertoire de travail</h3>
<p>
Pour mettre à jour votre répertoire de travail, utilisez la
commande&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn update
</pre>
<p class="continue">
ou bien, si vous ne voulez mettre à jour qu'un nombre limité de
fichiers&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn update <em>fichier1 fichier2 etc.</em>
</pre>
<p>
Apportez les modifications que vous voulez sur les fichiers de votre
répertoire de travail.
</p>
<h3>Ajout et retrait de fichiers</h3>
<p>
Pour ajouter des fichiers, commencez par les créer, comme à
l'accoutumée. Par exemple, éditez le fichier <code>fichier2</code> et
remplissez-le (ou non). Ensuite, tapez&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn add fichier2
</pre>
<p class="continue">
Cette commande avertit Subversion qu'il devra prendre en compte ce
nouveau fichier. Le fichier sera ajouté au dépôt Subversion la prochaine
fois que vous taperez <code>svn&nbsp;commit</code>. Attention&nbsp;! Si
vous ne tapez pas <code>svn&nbsp;commit</code>, le fichier ne sera pas
ajouté au dépôt&nbsp;!
</p>
<p>
Pour retirer des fichiers de Subversion, utilisez la commande&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn delete fichier
</pre>
<h3>Distribuer vos modifications</h3>
<p>
Quand vous avez terminé d'apporter vos modifications, vous pouvez les
distribuer&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn commit
</pre>
<p class="continue">
ou bien, si vous ne voulez distribuer qu'un nombre limité de
fichiers&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn commit <em>fichier1 fichier2 etc.</em>
</pre>
<h2>Fonctionnalités avancées de Subversion</h2>
<h3>Historique</h3>
<p>
Vous pouvez consulter l'historique d'un fichier&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn log <em>fichier</em>
</pre>
<p class="continue">
mais aussi de tous les fichiers d'un projet&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn log
</pre>
<h3>Comparaison de fichiers</h3>
<p>
Vous pouvez comparer deux versions d'un fichier, ici la première et la
deuxième versions&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn diff --revision 1:2 fichier
</pre>
<p>
Vous pouvez aussi comparer, par exemple, la dernière version distribuée
d'un fichier avec la précédente&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn diff --revision PREV:COMMITTED fichier
</pre>
<h3>Retour à la version antérieure</h3>
<p>
Si vous regrettez les modifications apportées à un fichier, tapez&nbsp;:
</p>
<pre>
<span class="prompt">bireme ~ $</span> svn revert <em>fichier</em>
</pre>
<p class="continue">
Le fichier reviendra à son état antérieur.
</p>
<h2>En savoir plus</h2>
<p>
Pour en savoir plus sur Subversion, consultez&nbsp;:
</p>
<ul>
<li> un ouvrage de référence&nbsp;: <a
href="http://svnbook.red-bean.com/">Version Control with Subversion</a>
(en anglais)&nbsp;;</li>
<li> la page d'aide de Subversion&nbsp;: <code>svn help</code>.</li>
</ul>
<div class="metainformation">
Auteur : Baptiste Mélès.
Dernière modification le <date value="$Date: 2005-09-19 17:16:09 $" />.
</div>
</body>
</html>