root/traduc/trunk/postgresql/cvs.xml

Revision 1080, 16.9 kB (checked in by sas, 5 months ago)

Il est grand temps que je reprenne le travail :-(

  • Property svn:keywords set to Date Author Revision
Line 
1 <?xml version="1.0" encoding="ISO-8859-15"?>
2 <!-- Dernière modification
3      le       $Date$
4      par      $Author$
5      révision $Revision$ -->
6 <!-- SAS : 20070322, PG8.2.3 -->
7
8 <appendix id="cvs">
9  <appendixinfo>
10   <authorgroup>
11    <author>
12     <firstname>Marc</firstname>
13     <surname>Fournier</surname>
14    </author>
15    <author>
16     <firstname>Tom</firstname>
17     <surname>Lane</surname>
18    </author>
19    <author>
20     <firstname>Thomas</firstname>
21     <surname>Lockhart</surname>
22    </author>
23    <author>
24     <firstname>David</firstname>
25     <surname>Fetter</surname>
26    </author>
27   </authorgroup>
28   <date>1999-05-20</date>
29  </appendixinfo>
30
31  <title>Dépôt <productname>CVS</productname></title>
32
33  <para>
34   Le code source de <productname>PostgreSQL</productname> est stocké et géré à
35   l'aide du système de contrôle de version <productname>CVS</productname>
36   (<foreignphrase>Concurrent Version Control System</foreignphrase>).
37  </para>
38
39  <para>
40   Il existe au moins trois méthodes,
41   CVS anonyme, <productname>rsync</productname> et <productname>CVSup</productname>,
42   pour extraire de <productname>CVS</productname> l'arborescence du
43   code source du serveur <productname>PostgreSQL</productname> vers une
44   machine locale.
45   La <ulink
46   url="http://wiki.postgresql.org/index.php/Working_with_CVS">page wiki</ulink>
47   contient des informations supplémentaires sur le travail avec CVS.
48  </para>
49
50  <sect1 id="anoncvs">
51   <title>Obtenir les sources via <productname>CVS</productname> anonyme</title>
52
53   <para>
54     Pour conserver une arborescence locale à jour, il suffit de
55     descendre les sources depuis le serveur <productname>CVS</productname>, et d'utiliser
56     <productname>CVS</productname> pour récupérer les mises à jour de temps
57     en temps.
58   </para>
59
60   <procedure>
61    <title>CVS anonyme</title>
62
63    <step>
64     <para>
65      Une copie locale de <productname>CVS</productname> est nécessaire. Elle
66      peut être récupérée depuis
67      <ulink url="http://www.nongnu.org/cvs/"></ulink> (le
68      site officiel avec la dernière version) ou depuis n'importe quel site
69      d'archive GNU (parfois pas à jour). Différents systèmes proposent une version
70      récente de <application>cvs</application> installée par défaut.
71     </para>
72    </step>
73
74    <step>
75     <para>
76      Connexion initiale au serveur
77      <productname>CVS</productname>&nbsp;:
78
79      <programlisting>cvs -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot login</programlisting>
80
81      Un mot de passe est demandé. Cela peut être n'importe quelle chaîne de
82      caractères, à l'exception d'une chaîne vide.
83     </para>
84
85     <para>
86      Il n'est plus nécessaire, alors, de reproduire cette opération, car le
87      mot de passe est sauvegardé dans le fichier <filename>.cvspass</filename>
88      du répertoire personnel.
89     </para>
90    </step>
91
92    <step>
93     <para>
94      Récupération des sources de <productname>PostgreSQL</productname>&nbsp;:
95      <programlisting>cvs -z3 -d :pserver:anoncvs@anoncvs.postgresql.org:/projects/cvsroot co -P pgsql</programlisting>
96
97      Les sources de <productname>PostgreSQL</productname> sont ainsi copiées dans un
98      sous-répertoire <filename>pgsql</filename> du répertoire courant.
99
100      <note>
101       <para>
102        Si une connexion rapide à Internet est disponible, il n'est pas
103        nécessaire d'utiliser l'option <option>-z3</option>, qui demande à
104        <productname>CVS</productname> de compresser les données à transférer
105        avec <command>gzip</command>.
106        Mais à la vitesse d'un modem, cela permet un gain de temps substantiel.
107       </para>
108      </note>
109     </para>
110
111     <para>
112      Cette extraction initiale est un peu plus lente que le simple
113      téléchargement d'un fichier <filename>tar.gz</filename>&nbsp;; il est
114      probable que cela prenne
115      40 minutes environ avec un modem à 28,8&nbsp;Kbps. L'avantage de
116      <productname>CVS</productname> n'apparaît que plus tard, lors de la
117      mise à jour des fichiers.
118     </para>
119    </step>
120
121    <step>
122     <para>
123      Pour mettre à jour les sources <productname>CVS</productname>
124      avec la dernière version, se placer dans le sous-répertoire
125     <filename>pgsql</filename> (<command>cd</command>) et lancer la commande
126      <programlisting>cvs -z3 update -d -P</programlisting>.
127
128      Seules les modifications qui ont eu lieu depuis la dernière
129      mise à jour sont récupérées. La mise à jour ne dure généralement
130      que quelques minutes, même avec un simple modem.
131     </para>
132    </step>
133
134    <step>
135     <para>
136      La création d'un fichier <filename>.cvsrc</filename> dans le répertoire
137      personnel ($HOME) permet d'économiser quelques saisies. Il suffit de lui
138      ajouter&nbsp;:
139      <programlisting>cvs -z3
140 update -d -P</programlisting>
141
142      Ceci ajoute l'option <option>-z3</option> à toutes les commandes
143      <command>cvs</command>, et les options <option>-d</option> et
144      <option>-P</option> aux commandes <command>cvs update</command>. Il
145      suffit désormais de lancer <programlisting>cvs update</programlisting>
146      pour actualiser les fichiers.
147     </para>
148    </step>
149   </procedure>
150
151   <para>
152    <productname>CVS</productname> peut faire de nombreuses autres
153    choses, comme retrouver des versions antérieures des sources de
154    <productname>PostgreSQL</productname> plutôt que les dernières
155    versions de développement.
156    Pour plus d'informations, consulter le manuel de
157    <productname>CVS</productname> ou lire la documentation en
158    ligne à <ulink url="http://www.nongnu.org/cvs/"></ulink>.
159   </para>
160
161   <para>
162    <productname>CVS</productname> a des inconvénients. Par exemple, la
163    génération de fichiers diff qui ajoutent ou suppriment des fichiers requière un
164    accès en écriture au dépôt CVS. Pour contourner ce problème, on peut utiliser
165    <productname>cvsutils</productname> qui est disponible sur plusieurs
166    systèmes d'exploitation et au format source sur <ulink
167    url="http://www.red-bean.com/cvsutils/"></ulink>.
168   </para>
169
170   <para>
171    La construction de <productname>PostgreSQL</productname> à partir
172    de la version CVS nécessite des versions à jour de
173    <application>bison</application> et <application>flex</application>, versions
174    qui ne sont pas nécessaire pour la contruction des sources à partir d'une
175    archive tar car les fichiers qu'ils créent sont pré-construits dans une
176    archive tar. Pour le reste, les outils nécessaires sont identiques.
177   </para>
178  </sect1>
179
180  <sect1 id="cvs-tree">
181   <title>Organisation de l'arbre <productname>CVS</productname></title>
182
183   <para>
184    <note>
185     <title>Auteur</title>
186     <para>
187      Écrit par Marc G. Fournier (<email>scrappy@hub.org</email>)
188      le 05/11/1998.
189     </para>
190    </note>
191   </para>
192
193   <para>
194    La commande <command>cvs checkout</command> accepte un paramètre, <option>-r</option>,
195    qui permet d'obtenir une révision particulière d'un module. Il est
196    possible, par exemple, de retrouver les fichiers sources de la
197    version 6_4 du module 'tc'.
198
199    <programlisting>cvs checkout -r REL6_4 tc</programlisting>
200    C'est en particulier utile si quelqu'un pense qu'il y a un bogue
201    dans cette version, mais qu'il n'apparaît pas dans
202    la version courante.
203
204    <tip>
205     <para>
206      Un module peut également être extrait tel qu'il était à une date
207      donnée en utilisant l'option <option>-D</option>.
208     </para>
209    </tip>
210   </para>
211
212   <para>
213    Lorsqu'une même marque est utilisée sur plusieurs fichiers,
214    celle-ci peut être vue comme
215    <quote>une courbe tracée dans la matrice des noms de fichiers et
216    des numéros de révision</quote>. Soient 5 fichiers avec
217    les révisions suivantes&nbsp;:
218
219    <programlisting>             fichier1 fichier2 fichier3 fichier4 fichier5
220
221              1.1      1.1      1.1      1.1  /---1.1*    &lt;-*-  MARQUE
222              1.2*-    1.2      1.2    --1.2*-
223              1.3  \-- 1.3*-    1.3   /  1.3
224              1.4           \   1.4  /   1.4
225                             \--1.5*-    1.5
226                                1.6</programlisting>
227
228    alors la marque <literal>MARQUE</literal> référence
229    fichier1-1.2, fichier2-1.3, etc.
230
231    <note>
232     <para>
233      Pour créer une branche de version, à part l'option <literal>-b</literal>
234      ajoutée sur la ligne de commande, c'est la même chose.</para>
235     </note>
236   </para>
237
238   <para>
239    Ainsi, pour créer la version 6.4&nbsp;:
240
241    <programlisting>cd pgsql
242 cvs tag -b REL6_4</programlisting>
243    ce qui crée la marque et la branche pour l'arbre de VERSION.
244   </para>
245
246   <para>
247    Pour ceux qui disposent d'un accès <productname>CVS</productname>, il est
248    facile de créer des répertoires séparés pour chaque version.
249    D'abord, on crée deux répertoires, VERSION et COURANT, afin de ne
250    pas les mélanger. Puis&nbsp;:
251
252    <programlisting>cd VERSION
253 cvs checkout -P -r REL6_4 pgsql
254 cd ../COURANT
255 cvs checkout -P pgsql</programlisting>
256
257    Cela crée deux arbres de répertoires, <filename>VERSION/pgsql</filename> et
258    <filename>COURANT/pgsql</filename>. À partir de ce moment,
259    <productname>CVS</productname> sait quel arbre de
260    référence est dans quel répertoire, et permet des mises à jour
261    indépendantes de chaque arbre.
262   </para>
263
264   <para>
265    Pour ne travailler <emphasis>que</emphasis> sur l'arbre
266    <literal>COURANT</literal>, il suffit de suivre ce qui est indiqué jusqu'à
267    la partie traitant du marquage des branches de versions.
268   </para>
269
270   <para>
271    Après avoir fait l'extraction initiale d'une branche&nbsp;:
272
273    <programlisting>cvs checkout -r REL6_4</programlisting>
274
275    tout ce qui est fait dans ce répertoire est limité à cette branche.
276    Un correctif appliquée à cette structure de répertoires
277    suivi d'un&nbsp;:
278
279    <programlisting>cvs commit</programlisting>
280
281    dans ce répertoire, n'applique le correctif qu'à cette branche et
282    <emphasis>uniquement</emphasis> à cette branche.
283   </para>
284  </sect1>
285
286  <sect1 id="rsync">
287   <title>Obtenir les sources via <productname>rsync</productname></title>
288
289   <para>
290    Une autre façon d'utiliser le CVS anonyme pour récupérer les sources de
291    <productname>PostgreSQL</productname> est
292    <productname>rsync</productname>, un outil de transfert incrémental de
293    fichiers. Un avantage majeur à utiliser
294    <productname>rsync</productname> est qu'il peut répliquer de façon fiable
295    le dépôt CVS <emphasis>complet</emphasis> sur le système local, permettant
296    ainsi un accès local rapide aux opérations <command>cvs</command> telles que
297    <option>log</option> et <option>diff</option>. Un autre avantage est la
298    synchronisation rapide avec le serveur
299    <productname>PostgreSQL</productname> grâce à un protocole de transfert
300    efficace qui n'envoie que les modifications depuis la dernière mise à jour.
301   </para>
302
303   <para>
304    Le dépôt CVS peut être récupéré à l'aide de la commande&nbsp;:
305 <programlisting>
306 rsync -avzH --delete anoncvs.postgresql.org::pgsql-cvs cvsroot/
307 </programlisting>
308    Pour des instructions complètes, lire la section «&nbsp;rsync&nbsp;» dans
309    les
310    <ulink url="http://pgfoundry.org/docman/view.php/1000040/4/PGBuildFarm-HOWTO.txt">
311    instructions de pgbuildfarm</ulink>.
312   </para>
313  </sect1>
314
315  <sect1 id="cvsup">
316   <title>Obtenir les sources via <productname>CVSup</productname></title>
317
318   <para>
319    Une alternative au CVS anonyme pour obtenir l'arbre source de
320    <productname>PostgreSQL</productname> est
321    <productname>CVSup</productname>.
322    <productname>CVSup</productname> a été développé par John Polstra
323    (<email>jdp@polstra.com</email>) pour distribuer des arbres de
324    référence CVS et autres arborescences de fichiers pour le
325    <ulink url="http://www.freebsd.org">projet FreeBSD</ulink>.
326   </para>
327
328   <sect2>
329    <title>Préparer un système client <productname>CVSup</productname></title>
330
331    <para>
332     Deux groupes de répertoires sont nécessaires à
333     <productname>CVSup</productname>&nbsp;: un entrepôt contenant le
334     référentiel <productname>CVS</productname> local (ou simplement
335     un groupe de répertoires si seul un extrait est récupéré et non
336     le référentiel complet&nbsp;; voir plus loin) et une zone de stockage
337     propre à <productname>CVSup</productname>. Ces deux groupes de
338     répertoires peuvent coexister dans la même arborescence.
339    </para>
340
341    <para>
342     Il faut alors décider de l'emplacement de la copie locale du référentiel
343     <productname>CVS</productname>. Sur un de ses systèmes, l'auteur
344     a créé un référentiel dans
345     <filename>/home/cvs/</filename>, mais utilisait jusque-là
346     <filename>/opt/postgres/cvs/</filename> comme arbre de développement
347     pour <productname>PostgreSQL</productname>. Pour
348     placer le référentiel dans <filename>/home/cvs/</filename>,
349     ajouter&nbsp;:
350
351     <programlisting>setenv CVSROOT /home/cvs</programlisting>
352
353     dans le fichier <filename>.cshrc</filename>, <filename>.bashrc</filename>
354     ou dans <filename>.profile</filename>, en fonction de l'interpréteur
355     de commandes (shell).
356    </para>
357
358    <para>
359     Le dépôt <application>cvs</application> doit
360     être initialisé. Une fois <envar>CVSROOT</envar>
361     initialisée, il suffit de faire&nbsp;:
362
363     <programlisting>cvs init</programlisting>
364
365     après quoi devrait au moins exister un répertoire
366     <filename>CVSROOT</filename>&nbsp;:
367
368     <programlisting>$ ls $CVSROOT
369 CVSROOT/</programlisting>
370    </para>
371   </sect2>
372
373   <sect2>
374    <title>Utiliser un client <productname>CVSup</productname></title>
375
376    <para>
377     Vérifier que <application>cvsup</application> est dans le
378     chemin (<foreignphrase>path</foreignphrase>). Sur la plupart des systèmes,
379     cela se fait en tapant&nbsp;:
380
381     <programlisting>which cvsup</programlisting>
382
383     Lancer alors
384     <application>cvsup</application>&nbsp;:
385
386     <programlisting>cvsup -L 2 <replaceable class="parameter">postgres.cvsup</replaceable></programlisting>
387
388     où <option>-L 2</option> active certains messages de statut pour
389     suivre la progression de la mise à jour et
390     <replaceable class="parameter">postgres.cvsup</replaceable> représente
391     la chemin et le nom donnés au fichier de
392     configuration <productname>CVSup</productname>.
393    </para>
394
395    <para>
396     Un fichier de configuration <productname>CVSup</productname>
397     modifié pour une installation spécifique, qui maintient un
398     référentiel <productname>CVS</productname> local complet est présenté
399     ci-après.
400
401     <programlisting># Ce fichier représente le fichier de distribution CVSup standard
402 # pour le projet de SGBDRO <productname>PostgreSQL</productname>
403 # Modifié par lockart@fourpalms.org 1997-08-28
404 # - Pointe vers mon arborescence locale
405 # - Extrait le référentiel CVS complet, pas seulement la
406 #   dernière version
407 #
408 #Valeurs par défaut qui s'appliquent à toutes les collections
409 *default host=cvsup.postgresql.org
410 *default compress
411 *default release=cvs
412 *default delete use-rel-suffix
413 # Activer la ligne suivante pour récupérer la dernière version
414 #*default tag=.
415 # Activer la ligne suivante pour récupérer ce qui est précisé ci-dessus ou
416 # par défaut à la date précisée ci-dessous
417 #*default date=97.08.29.00.00.00
418
419 # répertoire de base où CVSup stocke ses fichiers 'marque page'
420 # créera un sous répertoire sup/
421 #*default base=/opt/postgres # /usr/local/pgsql
422 *default base=/home/cvs
423
424 # répertoire préfixe où CVSup stocke les distributions
425 *default prefix=/home/cvs
426
427 # Distribution complète, avec tout ce qui est en dessous
428 pgsql
429
430 # distributions partielles
431 # pgsql-doc
432 # pgsql-perl5
433 # pgsql-src</programlisting>
434    </para>
435
436    <para>
437     Si <option>repository</option> est indiqué à la place de <option>pgsql</option> dans la
438     configuration précédente, une copie complète du dépôt
439     cvsup.postgresql.org est récupérée. Ce qui inclut le répertoire <filename>CVSROOT</filename>.
440     Il faut alors probablement exclure du
441     répertoire les fichiers qui seront modifiés localement. Pour cela,
442     on utilise un fichier de refus. Par exemple, pour la configuration
443     précédente, on peut avoir dans le fichier
444     <filename>/home/cvs/sup/repository/refuse</filename>&nbsp;:
445 <programlisting>CVSROOT/config*
446 CVSROOT/commitinfo*
447 CVSROOT/loginfo*</programlisting>
448     Voir les pages man de <productname>CVSup</productname> pour savoir comment utiliser
449     les fichiers de refus.
450 </para>
451
452    <para>
453     Ce qui suit est une suggestion de fichier de configuration
454     <productname>CVSup</productname> issue du
455     <ulink url="ftp://ftp.postgresql.org/pub/CVSup/README.cvsup">
456     site FTP</ulink> de <productname>PostgreSQL</productname>, qui
457     ne récupère que la version courante&nbsp;:
458
459     <programlisting># Ce fichier représente la distribution CVSup standard pour le
460 # projet de SGBDRO <productname>PostgreSQL</productname>.
461 #
462 # Valeurs par défaut qui s'appliquent à toutes les collections.
463 *default host=cvsup.postgresql.org
464 *default compress
465 *default release=cvs
466 *default delete use-rel-suffix
467 *default tag=.
468
469 # répertoire de base où CVSup stocke ses fichiers 'marque page'
470 *default base=<replaceable class="parameter">/usr/local/pgsql</replaceable>
471
472 # répertoire préfixe où CVSup stocke les distributions
473 *default prefix=<replaceable class="parameter">/usr/local/pgsql</replaceable>
474
475 # Distribution complète, avec tout ce qui est en dessous
476 pgsql
477
478 # distributions partielles
479 # pgsql-doc
480 # pgsql-perl5
481 # pgsql-src</programlisting>
482    </para>
483   </sect2>
484  </sect1>
485 </appendix>
Note: See TracBrowser for help on using the browser.