<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>Club LinuX Nord-Pas de Calais</title>
	<link>https://clx.asso.fr/spip/</link>
	<description>Association loi 1901 de promotion des logiciels libres en r&#233;gion Nord-Pas de Calais depuis 1999.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>Club LinuX Nord-Pas de Calais</title>
		<url>http://clx.asso.fr/spip/local/cache-vignettes/L144xH21/siteon0-86bed.png?1759523095</url>
		<link>https://clx.asso.fr/spip/</link>
		<height>21</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>3- D&#233;couverte de CVS</title>
		<link>http://clx.asso.fr/spip/?3-Decouverte-de-CVS</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?3-Decouverte-de-CVS</guid>
		<dc:date>2004-04-19T14:45:46Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Yvonnick Esnault</dc:creator>



		<description>&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas, puis une introduction aux commandes de bases.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Decouverte-de-CVS-" rel="directory"&gt;D&#233;couverte de CVS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas, puis une introduction aux commandes de bases.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;cup&#233;ration de SuperProduit&lt;/h2&gt;
&lt;p&gt;La r&#233;cup&#233;ration de SuperProduit s'effectue &#224; l'aide de la commande : &lt;strong&gt;cvs checkout &lt;monproduit&gt;&lt;/strong&gt;. &lt;br /&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Dans mes manipulations ci-dessus, une erreur se situe au niveau de la commande : &lt;br /&gt; - &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;$mkdir mon_produit&lt;/code&gt;&lt;br class='autobr' /&gt;
et au niveau de ma r&#233;flexion sur le nom de mon produit...&lt;br class='autobr' /&gt;
&lt;i&gt;Notre produit s'apellera &lt;i&gt;SuperProduit&lt;/i&gt; &lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pourquoi ?&lt;/strong&gt;&lt;br /&gt;
Nous avons d&#233;cid&#233; d'appeler le produit &lt;i&gt;SuperProduit&lt;/i&gt;, mais nous lui avons donner le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mon_produit&lt;/code&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Pas tr&#232;s logique n'est-ce pas !&lt;/p&gt;
&lt;p&gt;Une seconde erreur s'est gliss&#233;e... Si, si ! &lt;br /&gt;
Elle corrige notre premi&#232;re erreur ! Oh !&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pourquoi (bis) ?&lt;/strong&gt;&lt;br /&gt;
La seconde erreur (si cela en est une) a &#233;t&#233; d'effectuer la commande &lt;strong&gt;cvs import&lt;/strong&gt; en &#233;tant dans le r&#233;pertoire :&lt;br /&gt; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt; ~/mondossiercvs/mon_produit$&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nous avons enregistr&#233; uniquement le fichier : &lt;br /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;premier_fichier&lt;/code&gt; &lt;br /&gt; dans la base cvs, et non pas le r&#233;pertoire : &lt;br /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mon_produit&lt;/code&gt; contenant &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;mon_fichier&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ceci dit, le nom de notre produit a &#233;t&#233; founi lors de la commande d'importation telle que : &lt;br /&gt;
&lt;i&gt;yvo@raclette : /mondossiercvs/mon_produit$ cvs import -m &#034;Enregistrement de Super Produit dans le cvs&#034; &lt;strong&gt;SuperProduit&lt;/strong&gt; Recup V0&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La preuve par l'exemple :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs$ cvs checkout SuperProduit cvs checkout: Updating SuperProduit U SuperProduit/premier_fichier yvo@raclette:~/mondossiercvs$ ls mon_produit SuperProduit yvo@raclette:~/mondossiercvs$ cd mon_produit/ yvo@raclette:~/mondossiercvs/mon_produit$ ls premier_fichier yvo@raclette:~/mondossiercvs/mon_produit$ cd ../ yvo@raclette:~/mondossiercvs$ ls mon_produit SuperProduit yvo@raclette:~/mondossiercvs$ cd SuperProduit/ yvo@raclette:~/mondossiercvs/SuperProduit$ ls CVS premier_fichier yvo@raclette:~/mondossiercvs/SuperProduit$ cd ../ yvo@raclette:~/mondossiercvs$ ls mon_produit SuperProduit yvo@raclette:~/mondossiercvs$ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Nous pouvons donc supprimer le r&#233;pertoire mon_produit qui ne sert plus &#224; rien ! Hop :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs$ rm -rf mon_produit/ yvo@raclette:~/mondossiercvs$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>2- D&#233;couverte de CVS</title>
		<link>http://clx.asso.fr/spip/?2-Decouverte-de-CVS</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?2-Decouverte-de-CVS</guid>
		<dc:date>2004-04-19T14:45:35Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Yvonnick Esnault</dc:creator>



		<description>&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas sur une debian, puis une introduction aux commandes de bases.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Decouverte-de-CVS-" rel="directory"&gt;D&#233;couverte de CVS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas sur une debian, puis une introduction aux commandes de bases.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Cr&#233;ation de la base&lt;/h2&gt;
&lt;p&gt;Une fois la variable &lt;strong&gt;CVSROOT&lt;/strong&gt; renseign&#233;e, nous pouvons cr&#233;er la base telle que : &lt;br /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;yvo@raclette:~/mondossiercvs$ cvs init&lt;/code&gt;
&lt;br /&gt;
Cette commande cr&#233;e les fichiers d'administration de la base dans le r&#233;pertoire &lt;strong&gt;CVSROOT&lt;/strong&gt; (ici &lt;i&gt;/var/lib/cvs&lt;/i&gt;). &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;(FIXME : Debian a d&#233;j&#224; fait ce travail &#224; notre place ?)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notre produit&lt;/strong&gt; &lt;br /&gt;
Dans cette article, il nous faut un produit avec lequel cvs sera utilis&#233;. Notre produit s'apellera &lt;i&gt;SuperProduit&lt;/i&gt; et sera cr&#233;&#233; par &lt;i&gt;yvo&lt;/i&gt; dans le r&#233;pertoire : &lt;br /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/mondossiercvs/mon_produit&lt;/code&gt; &lt;br /&gt;
pour la premi&#232;re fois. Ce produit comporte un fichier nomm&#233; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;premier_fichier&lt;/code&gt; dans lequel une ligne est inscrite : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;premi&#232;re ligne&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Plus clairement, cela donne : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs$ mkdir mon_produit yvo@raclette:~/mondossiercvs$ cd mon_produit yvo@raclette:~/mondossiercvs/mon_produit$ echo &#034;premi&#232;re ligne&#034; &gt; premier_fichier yvo@raclette:~/mondossiercvs/mon_produit$ cat premier_fichier premi&#232;re ligne yvo@raclette:~/mondossiercvs/mon_produit$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Enregistrement de notre produit dans la base CVS&lt;/h2&gt;
&lt;p&gt;Notre produit est cr&#233;&#233; dans notre r&#233;pertoire local, mais n'est pas encore inscrit dans la base cvs.&lt;/p&gt;
&lt;p&gt;Cette inscription est un &lt;i&gt;import&lt;/i&gt; : nous importons des fichiers de notre r&#233;pertoire local sur le serveur.&lt;/p&gt;
&lt;p&gt;La commande est : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/mon_produit$ cvs import -m &#034;Enregistrement de Super Produit dans le cvs&#034; SuperProduit Recup V0 N SuperProduit/premier_fichier No conflicts created by this import&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
Visiblement, il n'y a pas eu de probl&#232;me lors de l'import.&lt;/p&gt;
&lt;p&gt;L'option &lt;strong&gt;-m&lt;/strong&gt; est suivie ici de &lt;i&gt;&#034;Enregistrement de Super Produit dans le cvs&#034;&lt;/i&gt;. Cette option permet de donner un message de description pour la version. Si &lt;strong&gt;-m&lt;/strong&gt; n'est pas renseign&#233;e, un &#233;diteur de texte se lance.&lt;/p&gt;
&lt;p&gt;L'option &lt;strong&gt;Recup&lt;/strong&gt; est le nom de la branche. &lt;br /&gt;
L'option &lt;strong&gt;V0&lt;/strong&gt; est le nom de version.&lt;/p&gt;
&lt;p&gt;Je n'explique pas plus ces options ici, vous comprendrez mieux avec la commande &lt;strong&gt;cvs log&lt;/strong&gt; dans les articles suivants... &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>1- D&#233;couverte de CVS</title>
		<link>http://clx.asso.fr/spip/?1-Decouverte-de-CVS</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?1-Decouverte-de-CVS</guid>
		<dc:date>2004-04-19T14:45:21Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Yvonnick Esnault</dc:creator>



		<description>&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas, puis une introduction aux commandes de bases.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Decouverte-de-CVS-" rel="directory"&gt;D&#233;couverte de CVS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas, puis une introduction aux commandes de bases.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Installation&lt;/h2&gt;
&lt;p&gt;L'installation &#224; partir du paquet debian est tr&#232;s simple :&lt;br /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#apt-get install cvs&lt;/code&gt; &lt;br /&gt;
Il nous est pos&#233; deux questions &#224; l'installation :&lt;/p&gt;
&lt;p&gt; - &#171; Veuillez indiquer la liste des r&#233;pertoires qui sont &#224; la racine de vos entrep&#244;ts... &#187;. Par d&#233;faut c'est &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/lib/cvs&lt;/code&gt;. On garde la valeur par d&#233;faut.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt; - Une seconde question est pos&#233;e et semble plus compliqu&#233;e : &#171; Le pserver CVS est un m&#233;canisme client-serveur qui peut &#234;tre utilis&#233; par CVS ... Faut-il activer le pserver CVS ? &#187;. Ici, tout d&#233;pend de la m&#233;thode d'acc&#232;s &#224; la base choisie apr&#232;s. C'est peut-&#234;tre mieux de r&#233;pondre &lt;i&gt;oui&lt;/i&gt; pour tester ce mode d'acc&#232;s. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;L'installation a bien cr&#233;&#233; le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/lib/cvs&lt;/code&gt;, d'ailleurs : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# ls /var/lib/cvs/ CVSROOT&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;&lt;br /&gt;
Il est conseill&#233; de ne pas toucher directement aux fichiers cvs dans ce r&#233;pertoire. &lt;br /&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Permissions&lt;/h2&gt;
&lt;p&gt;Tous les fichiers qui seront soumis au versionnement seront donc dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/var/liv/cvs&lt;/code&gt;. Il faut donc que tous les utilisateurs de cvs ait le droit de modifier les fichiers.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;De plus, nous ramarquons que : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# ls -la /var/lib/cvs/ total 12 drwxrwsr-x 3 root src 4096 2004-03-30 21:33 . drwxr-xr-x 39 root root 4096 2004-03-30 21:33 .. drwxrwsr-x 3 root src 4096 2004-03-30 21:33 CVSROOT&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Il faut donc rajouter les personnes utilisant cvs au groupe cvs tel que : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# sudo adduser yvo src Ajout de l'utilisateur yvo au groupe src... Fait.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Notre r&#233;pertoire local&lt;/strong&gt; &lt;br /&gt;
Commen&#231;ons d'abord &#224; cr&#233;er un r&#233;pertoire dans notre dossier personnel o&#249; nous mettrons notre copie de travail. C'est dans ce r&#233;pertoire que nous travaillerons sur nos projets. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Pour &#234;tre clair, j'indique toutes mes commandes : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~$ cd /home/yvo/ yvo@raclette:~$ mkdir mondossiercvs yvo@raclette:~$ cd mondossiercvs/ yvo@raclette:~/mondossiercvs$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;M&#233;thodes d'acc&#232;s&lt;/h2&gt;
&lt;p&gt;Il existe plusieurs m&#233;thodes d'acc&#232;s &#224; une base cvs : &lt;br /&gt; - acc&#232;s direct. &lt;br /&gt; - mode serveur (avec pserver). &lt;br /&gt; - mode ssh. &lt;br /&gt; - mode serveur kerberos et GSSAPI, que l'on ne verra pas dans cette article. &lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Sur mon serveur nomm&#233; &lt;i&gt;raclette&lt;/i&gt;, j'ai mon compte &lt;i&gt;yvo&lt;/i&gt;. La base est sur : &lt;br /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;yvo@raclette:~$ ls /var/lib/cvs/&lt;/code&gt;. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuration pour un acc&#232;s direct&lt;/strong&gt; &lt;br /&gt;
Notre variable d'environnement &lt;strong&gt;CVSROOT&lt;/strong&gt; s'exporte telle que : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$export CVSROOT=/var/lib/cvs&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configuration pour un acc&#232;s pserver&lt;/strong&gt; &lt;br /&gt;
Pour l'acc&#232;s en mode pserver, il faut modifier les fichiers &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/services&lt;/code&gt; et &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;/etc/inetd.conf&lt;/code&gt;. Debian fait ces modifications tout seul ! &lt;br /&gt;
Fichier /etc/services : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;# cat {{/etc/services}} | grep cvs cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Fichier &lt;strong&gt;/etc/inetd.conf&lt;/strong&gt; : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#cat /etc/inetd.conf | grep cvs cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/sbin/cvs-pserver&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Notre variable s'exporte telle que : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$export CVSROOT :pserver:yvo@raclette:/var/lib/cvs&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Configuration pour un acc&#232;s ssh&lt;/strong&gt; &lt;br /&gt;
J'oublie volontairement l'acc&#232;s rsh en pr&#233;f&#233;rant le ssh.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;$export CVSROOT :ext:yvo@raclette:/var/lib/cvs $export CVS_RSH ssh&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;C'est &#224; partir de cette variable &lt;strong&gt;CVSROOT&lt;/strong&gt; que nos commandes cvs pourront s'effectuer.
&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>4- D&#233;couverte de CVS</title>
		<link>http://clx.asso.fr/spip/?4-Decouverte-de-CVS</link>
		<guid isPermaLink="true">http://clx.asso.fr/spip/?4-Decouverte-de-CVS</guid>
		<dc:date>2004-04-19T12:27:23Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Yvonnick Esnault</dc:creator>



		<description>&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas, puis une introduction aux commandes de bases.&lt;/p&gt;

-
&lt;a href="http://clx.asso.fr/spip/?-Decouverte-de-CVS-" rel="directory"&gt;D&#233;couverte de CVS&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;CVS est le gestionnaire de version de fichiers le plus r&#233;pandu. Voici une installation pas &#224; pas, puis une introduction aux commandes de bases.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Travaillons et Versionnons !&lt;/h2&gt;
&lt;p&gt;C'est bien beau tout &#231;&#224;, mais l'on a du travail ! Il faut rajouter le texte &lt;i&gt;&#034;je travaille sur la deuxi&#232;me ligne&#034;&lt;/i&gt; dans notre fichier &lt;i&gt;premier_fichier&lt;/i&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/SuperProduit$ echo &#034;Je travaille sur la seconde ligne&#034; &gt;&gt; premier_fichier yvo@raclette:~/mondossiercvs/SuperProduit$ cat premier_fichier premi&#232;re ligne Je travaille sur la seconde ligne yvo@raclette:~/mondossiercvs/SuperProduit$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Et comme nous sommes contents de notre travail, nous pouvons l'enregistrer dans la base cvs : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/SuperProduit$ cvs commit -m &#034;Travail sur la seconde ligne Ok&#034; cvs commit: Examining . Checking in premier_fichier; /var/lib/cvs/SuperProduit/premier_fichier,v &lt;-- premier_fichier new revision: 1.2; previous revision: 1.1 done yvo@raclette:~/mondossiercvs/SuperProduit$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Le r&#233;sultat de la commande &lt;strong&gt;cvs commit&lt;/strong&gt; est explicit. Cvs a trouv&#233; des modifications au niveau du fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;premier_fichier&lt;/code&gt; et a incr&#233;ment&#233; le num&#233;ro de version.&lt;/p&gt;
&lt;p&gt;Comme pour la commande &lt;strong&gt;cvs import&lt;/strong&gt;, l'option &lt;strong&gt;-m&lt;/strong&gt; a permis de donner une description pour cette mise &#224; jour.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;CVS log, apr&#232;s travail&lt;/h2&gt;
&lt;p&gt;Re-ex&#233;cutons la commande &lt;strong&gt;cvs log&lt;/strong&gt; apr&#232;s le &lt;strong&gt;cvs commit&lt;/strong&gt; :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs$ cvs log SuperProduit/ cvs log: Logging SuperProduit RCS file: /var/lib/cvs/SuperProduit/premier_fichier,v Working file: SuperProduit/premier_fichier head: 1.2 branch: locks: strict access list: symbolic names: V0: 1.1.1.1 Recup: 1.1.1 keyword substitution: kv total revisions: 3; selected revisions: 3 description: ---------------------------- revision 1.2 date: 2004/03/30 21:42:40; author: yvo; state: Exp; lines: +1 -1 Travail sur la seconde ligne Ok ---------------------------- revision 1.1 date: 2004/03/30 20:52:20; author: yvo; state: Exp; branches: 1.1.1; Initial revision ---------------------------- revision 1.1.1.1 date: 2004/03/30 20:52:20; author: yvo; state: Exp; lines: +0 -0 Enregistrement de Super Produit dans le cvs =============================================================================&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Nous constatons que nous sommes toujours dans la m&#234;me branche nomm&#233;e &lt;strong&gt;Recup&lt;/strong&gt; avec sa version &lt;strong&gt;V0&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;De plus, par rapport au premier &lt;strong&gt;cvs log&lt;/strong&gt;, un paragraphe est ajout&#233; : &lt;strong&gt;revision 1.2&lt;/strong&gt;. Il reprend bien la description donn&#233;e &#224; l'aide de l'option &lt;strong&gt;-m&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;CVS Status&lt;/h2&gt;
&lt;p&gt;La commande &lt;strong&gt;cvs status&lt;/strong&gt; est utile pour voir l'&#233;tat d'un fichier local par rapport &#224; un fichier distant.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple&lt;/strong&gt; &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/SuperProduit$ cvs status premier_fichier =================================================================== File: premier_fichier Status: Up-to-date Working revision: 1.2 Tue Mar 30 21:40:40 2004 Repository revision: 1.2 /var/lib/cvs/SuperProduit/premier_fichier,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) yvo@raclette:~/mondossiercvs/SuperProduit$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Le status est ici &lt;strong&gt;Up-to-date&lt;/strong&gt;, aucune modification est pr&#233;sente entre le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;premier_fichier&lt;/code&gt; local et le fichier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;premier_fichier&lt;/code&gt; du serveur.&lt;/p&gt;
&lt;p&gt;Modifions maintenant ce fichier : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/SuperProduit$ echo &#034;Troisi&#232;me ligne&#034; &gt;&gt; premier_fichier&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;puis relan&#231;ons &lt;strong&gt;cvs status&lt;/strong&gt; : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/SuperProduit$ cvs status premier_fichier =================================================================== File: premier_fichier Status: Locally Modified Working revision: 1.2 Tue Mar 30 21:40:40 2004 Repository revision: 1.2 /var/lib/cvs/SuperProduit/premier_fichier,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) yvo@raclette:~/mondossiercvs/SuperProduit$ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;Le fichier est maintenant dans le statut &lt;strong&gt;Locally Modified&lt;/strong&gt;, soit en fran&#231;ais &lt;strong&gt;modifi&#233; localement&lt;/strong&gt;. Logique non ? ;-)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Cvs diff&lt;/h2&gt;
&lt;p&gt; &lt;br /&gt;
Comme le cvs status nous indique une diff&#233;rence, nous souhaitons la voir plus pr&#233;cis&#233;ment : &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/SuperProduit$ cvs diff -r 1.2 premier_fichier Index: premier_fichier =================================================================== RCS file: /var/lib/cvs/SuperProduit/premier_fichier,v retrieving revision 1.2 diff -r1.2 premier_fichier 2a3 &gt; Troisi&#232;me ligne yvo@raclette:~/mondossiercvs/SuperProduit$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;&lt;br /&gt;
Nous voyons donc que la diff&#233;rence entre les deux fichiers se situe au niveau de la ligne 2-3 avec pour changement : &lt;br /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&gt; Troisi&#232;me ligne&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cr&#233;ation d'un patch&lt;/strong&gt; &lt;br /&gt;&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs$ cvs diff -u -r1.2 SuperProduit cvs diff: Diffing SuperProduit Index: SuperProduit/premier_fichier =================================================================== RCS file: /var/lib/cvs/SuperProduit/premier_fichier,v retrieving revision 1.2 diff -u -r1.2 premier_fichier --- a/SuperProduit/premier_fichier 30 Mar 2004 21:42:40 -0000 1.2 +++ b/SuperProduit/premier_fichier 30 Mar 2004 21:56:12 -0000 @@ -1,2 +1,3 @@ premi&#232;re ligne Je travaille sur la seconde ligne +Troisi&#232;me ligne yvo@raclette:~/mondossiercvs$&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;h2 class=&#034;spip&#034;&gt;Cvs update&lt;/h2&gt;
&lt;p&gt;Imaginons maintenant que nous sommes pas seuls &#224; travailler sur SuperProduit. Des modifications &#224; premier_fichier peuvent appara&#238;tre, il ne faut donc pas trop tarder &#224; faire notre commit. &lt;br /&gt;
Mais au lieu de se heurter &#224; des probl&#232;mes possibles lors du commit (votre coll&#232;gue a modifi&#233; la m&#234;me ligne), il est bon de mettre &#224; jour notre fichier localement. &lt;br /&gt;
Cette mise &#224; jour n'efface pas le travail que l'on a fait depuis le dernier commit ou checkout (ici, le travail en question est d'avoir rajout&#233; la troisi&#232;me ligne). Si toutefois un coll&#232;gue a travaill&#233; sur le fichier, cela est mise &#224; jour dans notre r&#233;pertoire local.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;yvo@raclette:~/mondossiercvs/SuperProduit$ cvs update cvs update: Updating . M premier_fichier yvo@raclette:~/mondossiercvs/SuperProduit$ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
Apparement, pas de modification effectu&#233;e par un coll&#232;gue ! ;-)&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Stop !&lt;/h2&gt;
&lt;p&gt; &lt;br /&gt;
Nous nous arr&#234;tons l&#224; pour cette approche pas &#224; pas de CVS. Vous trouverez d'autres Howto plus complets sur le web tels que :&lt;/p&gt;
&lt;p&gt;- &lt;a href=&#034;http://www.idealx.org/doc/cvs.fr.html&#034;&gt;&lt;br class='autobr' /&gt;
http://www.idealx.org/doc/cvs.fr.html&lt;/a&gt;&lt;br /&gt; - &lt;a href=&#034;http://www.loria.fr/cgi-bin/molli/wilma.cgi/doc&#034;&gt;&lt;br class='autobr' /&gt;
http://www.loria.fr/cgi-bin/molli/wilma.cgi/doc&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;Le site officiel est &lt;a href=&#034;http://www.cvshome.org/&#034;&gt; http://www.cvshome.org/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; - TortoiseCVS - Client graphique pour Ms Windows &lt;br /&gt; &lt;a href=&#034;http://www.tortoisecvs.org/&#034;&gt;http://www.tortoisecvs.org/ &lt;/a&gt;
&lt;br /&gt; - Guide de l'utilisateur TortoiseCvs (en fran&#231;ais) &lt;br /&gt;
&lt;a &lt;br class='autobr' /&gt;
href=&#034;http://cedric.babault.free.fr/TortoiseCVSDoc/UserGuide_fr.html#begin.whattortoisecvs&#034;&gt; http://cedric.babault.free.fr/TortoiseCVSDoc/UserGuide_fr.html &lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
