aboutsummaryrefslogtreecommitdiff
path: root/fr_FR.ISO8859-1/articles/cvsup-advanced/article.sgml
blob: 9fd4d319e05f484942bf040f2b818a95434fdcef (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
	"../../../share/sgml/freebsd42.dtd" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//FR" "../../share/sgml/entities.ent">
%entities;
<!ENTITY % not.published "IGNORE">
]>

<!--
      The FreeBSD Documentation Project
      The FreeBSD French Documentation Project

      $FreeBSD$
      $Id: article.sgml,v 1.7 2007-01-20 13:34:48 blackend Exp $
      Original revision: 1.12
-->

<article lang="fr">
  <articleinfo>
    <title>Utilisation avancée de cvsup</title>

    <authorgroup>
      <author>
	<firstname>Salvo</firstname>
	<surname>Bartolotta</surname>

	<affiliation>
	  <address><email>bartequi@neomedia.it</email></address>
	</affiliation>
      </author>
    </authorgroup>

    <pubdate>$FreeBSD$</pubdate>

    <releaseinfo>$FreeBSD$</releaseinfo>

	<legalnotice id="trademarks" role="trademarks">
      	&tm-attrib.freebsd;
      	&tm-attrib.cvsup;
      	&tm-attrib.general;
    	</legalnotice>

    <abstract>
      <para>Le présent article suppose une compréhension
	de base de l'utilisation de <application>CVSup</application>.
	Il expose plusieurs problèmes délicats
        liés &agrave; la synchronisation des sources &agrave;
	l'aide de <application>CVSup</application>, c'est &agrave;
	dire des solutions efficaces aux problèmes des fichiers
	obsolètes aussi bien qu'aux cas spéciaux de mise
	&agrave; jour des sources, ces problèmes sont susceptibles
	de causer des désagréments apparemment
	inexplicables.</para>

        &trans.a.fonvieille;
    </abstract>
  </articleinfo>

  <sect1 id="preface">
    <title>Préface</title>

      <para>Ce document est le fruit des tentatives de l'auteur de
	comprendre les finesses de <application>CVSup</application> et
	de la mise &agrave; jour des sources.&nbsp;:-)
	Bien que l'auteur ait fait de nombreux efforts pour
	rendre ces pages aussi instructives et correctes que possible,
	il n'est qu'un être humain et a pu avoir commis toutes sortes
	de coquilles, d'erreurs, etc...  Il sera vraiment reconnaissant
	pour tous les commentaires et/ou suggestions que vous enverrez
	&agrave; son adresse électronique
	<email>bartequi@neomedia.it</email>.</para>
  </sect1>


  <sect1 id="introduction">
    <title>Introduction</title>

      <para>Si vous avez consulté le <ulink
	url="http://www.polstra.com/">site de John Polstra</ulink> et lu
	sa <ulink
	url="http://www.polstra.com/projects/freeware/CVSup/faq.html">FAQ</ulink>,
	vous avez pu avoir remarqué les questions 12 et 13.</para>

      <para>En mettant &agrave; jour n'importe quelle &ldquo;catalogue&rdquo;
	- collection de sources (e.g. <filename>/usr/ports</filename>),
	&man.cvsup.1; se sert des fichiers de &ldquo;checkouts&rdquo;
	relatifs afin d'effectuer le processus de mise &agrave; jour de la
	manière la plus efficace et la plus correcte possible.  Dans cet
	exemple (<filename>/usr/ports</filename>), le fichiers de
	&ldquo;checkouts&rdquo; relatif est
	<filename>/usr/sup/ports-all/checkouts.cvs:.</filename> si votre
	répertoire de base est <filename>/usr</filename>.</para>

      <para>Un fichier &ldquo;checkouts&rdquo; contient l'information
	sur l'état actuel de vos sources -- d'une certaine
	manière, une sorte de &ldquo;photographie&rdquo;.  Cette
	information permet &agrave; <application>cvsup</application> de
	rechercher les mises &agrave; jour le plus efficacement.  De
	plus, et c'est peut-être plus important, il permet
	&agrave; <application>cvsup</application> de gérer
	correctement vos sources en effaçant localement tout
	fichier qui n'est plus présent sur l'archive centrale,
	et de ce fait ne pas laisser de fichiers obsolètes sur
	votre système.  En fait, sans un fichier
	&ldquo;checkouts&rdquo;, <application>cvsup</application> ne
	saurait PAS de quels fichiers votre catalogue est composé
	(Cf &man.cvsup.1; pour plus de détails), et en
	conséquence, il ne pourrait PAS effacer de votre
	système ces fichiers qui ne sont plus présents sur
	l'archive centrale.  Ils resteraient sur votre système
	(les fichiers obsolètes), et pourraient vous causer de
	subtiles échecs de compilation ou tout autre
	désagrément.  Par exemple, ce problème est
	susceptible de se produire si vous mettez &agrave; jour votre
	catalogue de logiciels portés plusieurs semaines
	après que vous ayez eu vos CDROMs d'installation.</para>

     <para>Il est donc recommandé que vous adoptiez la
       procédure en deux temps décrite dans la FAQ de
       <application>CVSup</application> (Cf Q12, Q13); dans les
       sections suivantes, on vous présentera des exemples
       concrets intéressant et instructifs.</para>
  </sect1>

  <sect1 id="script">
    <title>Une procédure python utile: cvsupchk</title>

      <para>Alternativement, afin d'examiner les sources pour les
	inconsistences, vous pouvez souhaiter utiliser la procédure
	python <command>cvsupchk</command>, procédure qui se
	trouve actuellement dans
	<filename>/usr/ports/net/cvsup/work/cvsup-16.1/contrib/cvsupchk</filename>,
	avec un sympathique <filename>README</filename>.
	Prérequis:</para>

        <orderedlist>
           <listitem>
             <para><literal>/usr/ports/net/cvsup</literal> &prompt.root;
<userinput> make extract</userinput></para>
           </listitem>

           <listitem>
             <para>python (que l'on trouve également dans le catalogue
	       des logiciels portés :-)).</para>
           </listitem>

           <listitem>
             <para>Un fichier &ldquo;checkouts&rdquo; pour votre
	       catalogue des sources.</para>
           </listitem>
         </orderedlist>

      <para>Si vous mettez &agrave; jour vos sources pour la toute
	première fois, naturellement vous n'avez pas de fichier
	&ldquo;checkouts&rdquo;.  Après l'installation de python
	et la mise &agrave; jour de vos sources (e.g.
	<filename>/usr/ports</filename>), vous pouvez les vérifier
	ainsi:</para>

        <screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/ports-all/checkouts.cvs:. | more</userinput></screen>

      <para>Si vous désirez vérifier vos sources RELENG_4:</para>

        <screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/src-all/checkouts.cvs:RELENG_4 | more</userinput></screen>

      <para>Dans chaque cas, <command>cvsupchk</command>
	inspectera vos sources &agrave; la
	recherche d'inconsistances en utilisant les informations
	contenues dans le fichier de &ldquo;checkouts&rdquo; relatif.
	Des anomalies comme des fichiers effacés, encore
	présents (aka fichiers obsolètes), fichiers
	récupérés absents, fichiers RCS
	supplémentaires, et répertoires vides seront
	affichés sur la sortie standard.</para>

      <para>Dans la section suivante, nous présenterons des exemples
	typiques de la mise &agrave; jour de source, exemples qui vous
	montreront le rôle des fichiers de &ldquo;checkouts&rdquo;
	et les dangers d'une gestion négligée des sources.</para>
  </sect1>

  <sect1 id="examples">
    <title>Exemples avancés de gestion des sources</title>

      <sect2>
        <title>Comment modifier sans risques le champ tag quand vous
	  mettez &agrave; jour <literal>src-all</literal></title>

        <para>Si vous spécifiez par exemple <literal>tag=A</literal>
	  dans votre fichier <filename>supfile</filename>,
	  <application>cvsup</application> créera
	  un fichier &ldquo;checkouts&rdquo; appelé
	  <filename>checkouts.cvs:A</filename>, par exemple avec le
	  champ <literal>tag=RELENG_4</literal>, un fichier de
	  &ldquo;checkouts&rdquo;
	  <filename>checkouts.cvs:RELENG_4</filename> est
	  généré.  Ce fichier sera utilisé
	  pour récupérer et/ou stocker
	  l'information identifiant vos sources 4-STABLE.</para>

         <para>En suivant le catalogue <literal>src-all</literal>, si
	   vous souhaitez passer de <literal>tag=A</literal> &agrave;
	   <literal>tag=B</literal> (A inférieur/supérieur
	   &agrave; B important peu) et si votre fichier
	   &ldquo;checkouts&rdquo; est
	   <filename>checkouts.cvs:A</filename>, les opérations
	   suivantes devront être effectuées:</para>

            <orderedlist>
              <listitem>
                <para>&prompt.root; <userinput>mv checkouts.cvs:A
checkouts.cvs:B</userinput>
                  (ceci fournit &agrave; l'étape suivante le fichier
		  &ldquo;checkouts&rdquo; approprié)</para>
              </listitem>

              <listitem>
                <para>Ecrivez un fichier <filename>supfile</filename>
		  dont la ligne désignant le catalogue est:</para>
                  <programlisting>src-all tag=B</programlisting>
              </listitem>

              <listitem>
                <para>Cvsupez vos sources en utilisant le nouveau
		<filename>supfile</filename>.</para>
              </listitem>
            </orderedlist>

         <para><application>Cvsup</application> recherchera <filename>checkouts.cvs:B</filename>
	   -- dans ce cas la cible est B, c'est &agrave; dire que
	   <application>cvsup</application> se
	   servira des informations contenues dans ce fichier pour gérer
	   correctement vos sources.</para>

         <para>Les avantages:</para>

           <itemizedlist>
              <listitem>
                <para>Les sources sont traitées correctement (en
		  particulier aucun fichier obsolète).</para>
              </listitem>

              <listitem>
                <para>Moins de charge sur le serveur, dans ce cas
		<application>CVSup</application>
		  agit de la manière la plus efficace.</para>
              </listitem>
           </itemizedlist>


         <para>Par exemple, <literal>A=RELENG_4</literal>,
	   <literal>B=.</literal>, le point dans <literal>B=.</literal>
	   signifie -CURRENT.  C'est une mise &agrave; jour plutôt
	   typique de la branche 4-STABLE vers la branche -CURRENT.
	   Alors qu'il est simple de revenir &agrave; une ancienne
	   version de sources (e.g. -CURRENT vers -STABLE), il n'en va
	   pas de même avec le système.  Vous êtes
	   FORTEMENT déconseillé de tenter une telle
	   opération, &agrave; moins que vous ne sachiez
	   exactement ce que vous faites.</para>
       </sect2>

       <sect2>
         <title>Mettre &agrave; jour en conservant le même champ
	   tag mais pour une date différente</title>

         <para>Si vous souhaitez basculer du champ <literal>tag=A</literal>
	   au champ <literal>tag=A</literal> avec une date GMT
	   différente (disons <literal>date=D</literal>) vous
	   exécuterez ce qui suit:</para>

           <orderedlist>
             <listitem>
               <para>Ecrivez un <filename>supfile</filename> dont la
		 ligne désignant le catalogue est:</para>
                 <programlisting>src-all tag=A date=D</programlisting>
             </listitem>

             <listitem>
               <para>Mettez &agrave; jour vos sources en utilisant le nouveau
		 <filename>supfile</filename>.</para>
             </listitem>
           </orderedlist>

         <para>Que la nouvelle date précède ou non celle
	   de la dernière synchronisation avec le champ
	   <literal>tag=A</literal> est peu important.  Par exemple,
	   afin d'indiquer la date du &ldquo;27 Août 2000 &agrave;
	   10h00s00 GMT&rdquo; vous écrirez la ligne:</para>


         <programlisting>src-all tag=RELENG_4 date=2000.08.27.10.00.00</programlisting>

         <note><para>Le format de la date est rigide.  Vous devez
	   indiquer toutes les composantes de la date: le siècle
	   (<quote>20</quote>, i.e. le vingtième siècle, doit être
	   fourni tandis que <quote>19</quote>, le siècle passé peut
	   être omis), l'année, le mois, le jour, l'heure,
	   les minutes et les secondes &mdash; comme montré dans
	   l'exemple ci-dessus.  Pour plus d'information, veuillez
	   consulter la page de manuel &man.cvsup.1;.</para></note>

         <para>Qu'une date soit spécifiée ou non, le fichier
	   &ldquo;checkouts&rdquo; est appelé
	   <filename>checkouts.cvs:A</filename> (e.g.
	   <filename>checkouts.cvs:RELENG_4</filename>).  Comme
	   conséquence, aucune action particulière n'est
	   nécessaire afin de retourner &agrave; l'état
	   précédent: vous devez modifier la date
	   dans le <filename>supfile</filename> et remettre &agrave;
	   jour &agrave; nouveau.</para>
       </sect2>


       <sect2>
         <title>Mise &agrave; jour de votre catalogue des logiciels
	   portés pour la première fois</title>

         <para>Comme les logiciels portés sont
	   étiquetés &ldquo;.&rdquo; (i.e. -CURRENT),
	   vous pouvez correctement les synchroniser en
	   ajoutant le mot-clé <literal>date</literal> (Cf
	   &man.cvsup.1; pour le format exact), vous devriez
	   spécifier une date aussi proche que possible que celle
	   de &ldquo;l'expédition&rdquo; de votre catalogue de
	   logiciel porté.  Après que <application>CVSup</application> ait
	   créé le fichier &ldquo;checkouts&rdquo; du catalogue des
	   logiciels portés, qui est précisément le
	   but de cette première opération de synchronisation,
	   le champ <literal>date</literal> doit être retiré,
	   toutes les mises &agrave; jour suivantes seront faites en
	   douceur.</para>

         <para>Si vous avez voulu chercher la petite bête dans ce texte,
	   vous vous êtes probablement aperçu des
	   problèmes potentiels du processus de mise &agrave; jour des
	   sources.  Un certain nombre de personnes ont eu réellement
	   des problèmes.  Vous avez été
	   avertis. :-)</para>
      </sect2>
   </sect1>
</article>