2005-09-16 14:25:45 +02:00
|
|
|
|
<?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<74>le de versions avec Subversion</h1>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Le logiciel Subversion permet de g<>rer l'<27>volution de projets et leurs
|
2005-09-19 19:16:09 +02:00
|
|
|
|
diff<EFBFBD>rentes versions. Si vous connaissez <a
|
|
|
|
|
href="&url.tuteurs;logiciels/rcs">RCS</a> ou <a
|
|
|
|
|
href="&url.tuteurs;logiciels/cvs">CVS</a>, Subversion entend leur
|
|
|
|
|
succ<EFBFBD>der et en moderniser le principe.
|
2005-09-16 14:25:45 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h2>Pr<50>liminaires <20> l'utilisation de Subversion</h2>
|
|
|
|
|
|
|
|
|
|
<h3>Cr<43>er un r<>pertoire de d<>p<EFBFBD>t</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Pour g<>rer l'<27>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 CVS, cr<63>er un r<>pertoire de d<>p<EFBFBD>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<EFBFBD>t pr<70>t <20> recevoir vos projets.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Ajouter des projets</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
2005-09-19 19:16:09 +02:00
|
|
|
|
Pour ajouter des projets <20> 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<6D> <code>mon_projet</code>, qui
|
|
|
|
|
contient un seul fichier, intitul<75> <code>fichier1</code>.
|
2005-09-16 14:25:45 +02:00
|
|
|
|
</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 :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li> un r<>pertoire de d<>p<EFBFBD>t ;</li>
|
|
|
|
|
<li> un projet d<>pos<6F> dans ce dernier.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Vous pouvez d<>poser autant de projets que vous le d<>sirez dans votre
|
|
|
|
|
r<EFBFBD>pertoire de d<>p<EFBFBD>t.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Cr<43>er des r<>pertoires de travail</h3>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
Il ne vous reste plus qu'<27> cr<63>er un (ou plusieurs) r<>pertoire(s) de
|
|
|
|
|
travail :
|
|
|
|
|
</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>
|
|
|
|
|
<EFBFBD>videmment, vous pouvez travailler sur un projet m<>me si le r<>pertoire
|
|
|
|
|
de d<>p<EFBFBD>t n'est pas chez vous. Pour cela, tapez simplement l'URL du
|
|
|
|
|
projet. En voici quelques exemples :
|
|
|
|
|
</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<EFBFBD>on habituelle, typiquement avec un <20>diteur de texte.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h2>Subversion au quotidien</h2>
|
|
|
|
|
|
|
|
|
|
<h3>Mettre <20> jour un r<>pertoire de travail</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Pour mettre <20> jour votre r<>pertoire de travail, utilisez la
|
|
|
|
|
commande :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">bireme ~ $</span> svn update
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
ou bien, si vous ne voulez mettre <20> jour qu'un nombre limit<69> de
|
|
|
|
|
fichiers :
|
|
|
|
|
</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<EFBFBD>pertoire de travail.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Ajout et retrait de fichiers</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
2005-09-19 19:16:09 +02:00
|
|
|
|
Pour ajouter des fichiers, commencez par les cr<63>er, comme <20>
|
|
|
|
|
l'accoutum<75>e. Par exemple, <20>ditez le fichier <code>fichier2</code> et
|
|
|
|
|
remplissez-le (ou non). Ensuite, tapez :
|
2005-09-16 14:25:45 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
2005-09-19 19:16:09 +02:00
|
|
|
|
<span class="prompt">bireme ~ $</span> svn add fichier2
|
2005-09-16 14:25:45 +02:00
|
|
|
|
</pre>
|
|
|
|
|
|
2005-09-19 19:16:09 +02:00
|
|
|
|
<p class="continue">
|
|
|
|
|
Cette commande avertit Subversion qu'il devra prendre en compte ce
|
|
|
|
|
nouveau fichier. Le fichier sera ajout<75> au d<>p<EFBFBD>t Subversion la prochaine
|
|
|
|
|
fois que vous taperez <code>svn commit</code>. Attention ! Si
|
|
|
|
|
vous ne tapez pas <code>svn commit</code>, le fichier ne sera pas
|
|
|
|
|
ajout<EFBFBD> au d<>p<EFBFBD>t !
|
|
|
|
|
</p>
|
|
|
|
|
|
2005-09-16 14:25:45 +02:00
|
|
|
|
<p>
|
|
|
|
|
Pour retirer des fichiers de Subversion, utilisez la commande :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">bireme ~ $</span> svn delete fichier
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Distribuer vos modifications</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Quand vous avez termin<69> d'apporter vos modifications, vous pouvez les
|
|
|
|
|
distribuer :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">bireme ~ $</span> svn commit
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
ou bien, si vous ne voulez distribuer qu'un nombre limit<69> de
|
|
|
|
|
fichiers :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">bireme ~ $</span> svn commit <em>fichier1 fichier2 etc.</em>
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h2>Fonctionnalit<69>s avanc<6E>es de Subversion</h2>
|
|
|
|
|
|
|
|
|
|
<h3>Historique</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Vous pouvez consulter l'historique d'un fichier :
|
|
|
|
|
</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 :
|
|
|
|
|
</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<6D>re et la
|
|
|
|
|
deuxi<EFBFBD>me versions :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">bireme ~ $</span> svn diff --revision 1:2 fichier
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Vous pouvez aussi comparer, par exemple, la derni<6E>re version distribu<62>e
|
|
|
|
|
d'un fichier avec la pr<70>c<EFBFBD>dente :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">bireme ~ $</span> svn diff --revision PREV:COMMITTED fichier
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Retour <20> la version ant<6E>rieure</h3>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Si vous regrettez les modifications apport<72>es <20> un fichier, tapez :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
<span class="prompt">bireme ~ $</span> svn revert <em>fichier</em>
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
|
|
|
|
Le fichier reviendra <20> son <20>tat ant<6E>rieur.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<h2>En savoir plus</h2>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Pour en savoir plus sur Subversion, consultez :
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li> un ouvrage de r<>f<EFBFBD>rence : <a
|
|
|
|
|
href="http://svnbook.red-bean.com/">Version Control with Subversion</a>
|
|
|
|
|
(en anglais) ;</li>
|
|
|
|
|
|
|
|
|
|
<li> la page d'aide de Subversion : <code>svn help</code>.</li>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<div class="metainformation">
|
|
|
|
|
Auteur<EFBFBD>: Baptiste M<>l<EFBFBD>s.
|
2005-09-19 19:16:09 +02:00
|
|
|
|
Derni<EFBFBD>re modification le <date value="$Date: 2005-09-19 17:16:09 $" />.
|
2005-09-16 14:25:45 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|