|
Line 0
Link Here
|
|
|
1 |
<!-- |
| 2 |
The FreeBSD Documentation Project |
| 3 |
The FreeBSD French Documentation Project |
| 4 |
|
| 5 |
$FreeBSD$ |
| 6 |
$Id$ |
| 7 |
Original revision: 1.4 |
| 8 |
--> |
| 9 |
|
| 10 |
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ |
| 11 |
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> |
| 12 |
%man; |
| 13 |
<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract; |
| 14 |
<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader; |
| 15 |
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators; |
| 16 |
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; |
| 17 |
]> |
| 18 |
|
| 19 |
<article> |
| 20 |
<articleinfo> |
| 21 |
<title>Utilisation avancée de cvsup</title> |
| 22 |
|
| 23 |
<authorgroup> |
| 24 |
<author> |
| 25 |
<firstname>Salvo</firstname> |
| 26 |
<surname>Bartolotta</surname> |
| 27 |
|
| 28 |
<affiliation> |
| 29 |
<address><email>bartequi@neomedia.it</email></address> |
| 30 |
</affiliation> |
| 31 |
</author> |
| 32 |
</authorgroup> |
| 33 |
|
| 34 |
<pubdate>$FreeBSD: doc/en_US.ISO8859-1/articles/cvsup-advanced/article.sgml,v 1.4 2001/10/23 21:31:18 murray Exp $</pubdate> |
| 35 |
|
| 36 |
<abstract> |
| 37 |
<para>Le présent article suppose une compréhension |
| 38 |
de base de l'utilisation de <application>cvsup</application>. |
| 39 |
Il expose plusieurs problèmes délicats |
| 40 |
liés à la synchronisation des sources à |
| 41 |
l'aide de <application>cvsup</application>, c'est à |
| 42 |
dire des solutions efficaces aux problèmes des fichiers |
| 43 |
obsolètes aussi bien qu'aux cas spéciaux de mise |
| 44 |
à jour des sources, ces problèmes sont susceptibles |
| 45 |
de causer des désagréments apparamment |
| 46 |
inexplicables.</para> |
| 47 |
&abstract.license; |
| 48 |
&abstract.disclaimer; |
| 49 |
&trans.a.fonvieille; |
| 50 |
</abstract> |
| 51 |
</articleinfo> |
| 52 |
|
| 53 |
<sect1 id="preface"> |
| 54 |
<title>Préface</title> |
| 55 |
|
| 56 |
<para>Ce document est le fruit des tentatives de l'auteur de |
| 57 |
comprendre les finesses de <application>cvsup</application> et |
| 58 |
de la mise à jour des sources. :-) |
| 59 |
Bien que l'auteur ait fait de nombreux efforts pour |
| 60 |
rendre ces pages aussi instructives et correctes que possible, |
| 61 |
il n'est qu'un être humain et a pu avoir commis toutes sortes |
| 62 |
de coquilles, d'erreurs, etc... Il sera vraiment reconnaissant |
| 63 |
pour tous les commentaires et/ou suggestions que vous enverrez |
| 64 |
à son adresse électronique |
| 65 |
<email>bartequi@neomedia.it</email>.</para> |
| 66 |
</sect1> |
| 67 |
|
| 68 |
|
| 69 |
<sect1 id="introduction"> |
| 70 |
<title>Introduction</title> |
| 71 |
|
| 72 |
<para>Si vous avez consulté le <ulink |
| 73 |
url="http://www.polstra.com/">site de John Polstra</ulink> et lu |
| 74 |
sa <ulink |
| 75 |
url="http://www.polstra.com/projects/freeware/CVSup/faq.html">FAQ</ulink>, |
| 76 |
vous avez pu avoir remarqué les questions 12 et 13.</para> |
| 77 |
|
| 78 |
<para>En mettant à jour n'importe quelle “catalogue” |
| 79 |
- collection de sources (e.g. <filename>/usr/ports</filename>), |
| 80 |
&man.cvsup.1; se sert des fichiers de “checkouts” |
| 81 |
relatifs afin d'effectuer le processus de mise à jour de la |
| 82 |
manière la plus efficace et la plus correcte possible. Dans cet |
| 83 |
exemple (<filename>/usr/ports</filename>), le fichiers de |
| 84 |
“checkouts” relatif est |
| 85 |
<filename>/usr/sup/ports-all/checkouts.cvs:.</filename> si votre |
| 86 |
répertoire de base est <filename>/usr</filename>.</para> |
| 87 |
|
| 88 |
<para>Un fichier “checkouts” contient l'information |
| 89 |
sur l'état actuel de vos sources -- d'une certaine |
| 90 |
manière, une sorte de “photographie”. Cette |
| 91 |
information permet à <application>cvsup</application> de |
| 92 |
rechercher les mises à jour le plus efficacement. De |
| 93 |
plus, et c'est peut-être plus important, il permet |
| 94 |
à <application>cvsup</application> de gérer |
| 95 |
correctement vos sources en effaçant localement tout |
| 96 |
fichier qui n'est plus présent sur l'archive centrale, |
| 97 |
et de ce fait ne pas laisser de fichiers obsolètes sur |
| 98 |
votre système. En fait, sans un fichier |
| 99 |
“checkouts”, <application>cvsup</application> ne |
| 100 |
saurait PAS de quels fichiers votre catalogue est composé |
| 101 |
(Cf &man.cvsup.1; pour plus de détails), et en |
| 102 |
conséquence, il ne pourrait PAS effacer de votre |
| 103 |
système ces fichiers qui ne sont plus présents sur |
| 104 |
l'archive centrale. Ils resteraient sur votre système |
| 105 |
(les fichiers obsolètes), et pourraient vous causer de |
| 106 |
subtiles échecs de compilation ou tout autre |
| 107 |
désagrément. Par exemple, ce problème est |
| 108 |
susceptible de se produire si vous mettez à jour votre |
| 109 |
catalogue de logiciels portés plusieurs semaines |
| 110 |
après que vous ayez eu vos CDROMs d'installation.</para> |
| 111 |
|
| 112 |
<para>Il est donc recommandé que vous adoptiez la |
| 113 |
procédure en deux temps décrite dans la FAQ de |
| 114 |
CVSup (Cf Q12, Q13); dans les sections suivantes, on vous |
| 115 |
présentera des exemples concrets intéressant et |
| 116 |
instructifs.</para> |
| 117 |
</sect1> |
| 118 |
|
| 119 |
<sect1 id="script"> |
| 120 |
<title>Une procédure python utile: cvsupchk</title> |
| 121 |
|
| 122 |
<para>Alternativement, afin d'examiner les sources pour les |
| 123 |
inconsistences, vous pouvez souhaiter utiliser la procédure |
| 124 |
python <application>cvsupchk</application>, procédure qui se |
| 125 |
trouve actuellement dans |
| 126 |
<filename>/usr/ports/net/cvsup/work/cvsup-16.1/contrib/cvsupchk</filename>, |
| 127 |
avec un sympathique <filename>README</filename>. |
| 128 |
Prérequis:</para> |
| 129 |
|
| 130 |
<orderedlist> |
| 131 |
<listitem> |
| 132 |
<para><literal>/usr/ports/net/cvsup</literal> &prompt.root; |
| 133 |
<userinput> make extract</userinput></para> |
| 134 |
</listitem> |
| 135 |
|
| 136 |
<listitem> |
| 137 |
<para>python (que l'on trouve également dans le catalogue |
| 138 |
des logiciels portés :-)).</para> |
| 139 |
</listitem> |
| 140 |
|
| 141 |
<listitem> |
| 142 |
<para>Un fichier “checkouts” pour votre |
| 143 |
catalogue des sources.</para> |
| 144 |
</listitem> |
| 145 |
</orderedlist> |
| 146 |
|
| 147 |
<para>Si vous mettez à jour vos sources pour la toute |
| 148 |
première fois, naturellement vous n'avez pas de fichier |
| 149 |
“checkouts”. Après l'installation de python |
| 150 |
et la mise à jour de vos sources (e.g. |
| 151 |
<filename>/usr/ports</filename>), vous pouvez les vérifier |
| 152 |
ainsi:</para> |
| 153 |
|
| 154 |
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/ports-all/checkouts.cvs:. | more</userinput></screen> |
| 155 |
|
| 156 |
<para>Si vous désirez vérifier vos sources RELENG_4:</para> |
| 157 |
|
| 158 |
<screen>&prompt.user; <filename>/path/to/</filename><userinput>cvsupchk -d /usr -c /usr/sup/src-all/checkouts.cvs:RELENG_4 | more</userinput></screen> |
| 159 |
|
| 160 |
<para>Dans chaque cas, <application>cvsupchk</application> |
| 161 |
inspectera vos sources à la |
| 162 |
recherche d'inconsistences en utilisant les informations |
| 163 |
contenues dans le fichier de “checkouts” relatif. |
| 164 |
Des anomalies comme des fichiers effacés, encore |
| 165 |
présents (aka fichiers obsolètes), fichiers |
| 166 |
récupérés absents, fichiers RCS |
| 167 |
supplémentaires, et répertoires vides seront |
| 168 |
affichés sur la sortie standard.</para> |
| 169 |
|
| 170 |
<para>Dans la section suivante, nous présenterons des exemples |
| 171 |
typiques de la mise à jour de source, exemples qui vous |
| 172 |
montreront le rôle des fichiers de “checkouts” |
| 173 |
et les dangers d'une gestion négligée des sources.</para> |
| 174 |
</sect1> |
| 175 |
|
| 176 |
<sect1 id="examples"> |
| 177 |
<title>Exemples avancés de gestion des sources</title> |
| 178 |
|
| 179 |
<sect2> |
| 180 |
<title>Comment modifier sans risques le champ tag quand vous |
| 181 |
mettez à jour <literal>src-all</literal></title> |
| 182 |
|
| 183 |
<para>Si vous spécifiez par exemple <literal>tag=A</literal> |
| 184 |
dans votre fichier <filename>supfile</filename>, |
| 185 |
<application>cvsup</application> créera |
| 186 |
un fichier “checkouts” appelé |
| 187 |
<filename>checkouts.cvs:A</filename>, par exemple avec le |
| 188 |
champ <literal>tag=RELENG_4</literal>, un fichier de |
| 189 |
“checkouts” |
| 190 |
<filename>checkouts.cvs:RELENG_4</filename> est |
| 191 |
généré. Ce fichier sera utilisé |
| 192 |
pour récupérer et/ou stocker |
| 193 |
l'information identifiant vos sources 4-STABLE.</para> |
| 194 |
|
| 195 |
<para>En suivant le catalogue <literal>src-all</literal>, si |
| 196 |
vous souhaitez passer de <literal>tag=A</literal> à |
| 197 |
<literal>tag=B</literal> (A inférieur/supérieur |
| 198 |
à B important peu) et si votre fichier |
| 199 |
“checkouts” est |
| 200 |
<filename>checkouts.cvs:A</filename>, les opérations |
| 201 |
suivantes devront être effectuées:</para> |
| 202 |
|
| 203 |
<orderedlist> |
| 204 |
<listitem> |
| 205 |
<para>&prompt.root; <userinput>mv checkouts.cvs:A |
| 206 |
checkouts.cvs:B</userinput> |
| 207 |
(ceci fournit à l'étape suivante le fichier |
| 208 |
“checkouts” approprié)</para> |
| 209 |
</listitem> |
| 210 |
|
| 211 |
<listitem> |
| 212 |
<para>Ecrivez un fichier <filename>supfile</filename> |
| 213 |
dont la ligne désignant le catalogue est:</para> |
| 214 |
<programlisting>src-all tag=B</programlisting> |
| 215 |
</listitem> |
| 216 |
|
| 217 |
<listitem> |
| 218 |
<para>Cvsupez vos sources en utilisant le nouveau |
| 219 |
<filename>supfile</filename>.</para> |
| 220 |
</listitem> |
| 221 |
</orderedlist> |
| 222 |
|
| 223 |
<para>Cvsup recherchera <filename>checkouts.cvs:B</filename> |
| 224 |
-- dans ce cas la cible est B, c'est à dire que |
| 225 |
<application>cvsup</application> se |
| 226 |
servira des informations contenus dans ce fichier pour gérer |
| 227 |
correctement vos sources.</para> |
| 228 |
|
| 229 |
<para>Les avantages:</para> |
| 230 |
|
| 231 |
<itemizedlist> |
| 232 |
<listitem> |
| 233 |
<para>Les sources sont traitées correctement (en |
| 234 |
particulier aucun fichiers obsolètes).</para> |
| 235 |
</listitem> |
| 236 |
|
| 237 |
<listitem> |
| 238 |
<para>Moins de charge sur le serveur, dans ce cas |
| 239 |
<application>cvsup</application> |
| 240 |
agit de la manière la plus efficace.</para> |
| 241 |
</listitem> |
| 242 |
</itemizedlist> |
| 243 |
|
| 244 |
|
| 245 |
<para>Par exemple, <literal>A=RELENG_4</literal>, |
| 246 |
<literal>B=.</literal>, le point dans <literal>B=.</literal> |
| 247 |
signifie -CURRENT. C'est une mise à jour plutôt |
| 248 |
typique de la branche 4-STABLE vers la branche -CURRENT. |
| 249 |
Alors qu'il est simple de revenir à une ancienne |
| 250 |
version de sources (e.g. -CURRENT vers -STABLE), il n'en va |
| 251 |
pas de même avec le système. Vous êtes |
| 252 |
FORTEMENT déconseillé de tenter une telle |
| 253 |
opération, à moins que vous ne sachiez |
| 254 |
exactement ce que vous faites.</para> |
| 255 |
</sect2> |
| 256 |
|
| 257 |
<sect2> |
| 258 |
<title>Mettre à jour en conservant le même champ |
| 259 |
tag mais pour une date différente</title> |
| 260 |
|
| 261 |
<para>Si vous souhaitez basculer du champ <literal>tag=A</literal> |
| 262 |
au champ <literal>tag=A</literal> avec une date GMT |
| 263 |
différente (disons <literal>date=D</literal>) vous |
| 264 |
exécuterez ce qui suit:</para> |
| 265 |
|
| 266 |
<orderedlist> |
| 267 |
<listitem> |
| 268 |
<para>Ecrivez un <filename>supfile</filename> dont la |
| 269 |
ligne désignant le catalogue est:</para> |
| 270 |
<programlisting>src-all tag=A date=D</programlisting> |
| 271 |
</listitem> |
| 272 |
|
| 273 |
<listitem> |
| 274 |
<para>Mettez à jour vos sources en utilisant le nouveau |
| 275 |
<filename>supfile</filename>.</para> |
| 276 |
</listitem> |
| 277 |
</orderedlist> |
| 278 |
|
| 279 |
<para>Que la nouvelle date précède ou non celle |
| 280 |
de la dernière synchronisation avec le champ |
| 281 |
<literal>tag=A</literal> est peu important. Par exemple, |
| 282 |
afin d'indiquer la date du “27 Août 2000 à |
| 283 |
10h00s00 GMT” vous écrirez la ligne:</para> |
| 284 |
|
| 285 |
|
| 286 |
<programlisting>src-all tag=RELENG_4 date=2000.08.27.10.00.00</programlisting> |
| 287 |
|
| 288 |
<note><para>Le format de la date est rigide. Vous devez |
| 289 |
indiquer toutes les composantes de la date: le siècle |
| 290 |
(20, i.e. le vingtième siècle, doit être |
| 291 |
fourni tandis que 19, le siècle passé peut |
| 292 |
être omis), l'année, le mois, le jour, l'heure, |
| 293 |
les minutes et les secondes -- comme montré dans |
| 294 |
l'exemple ci-dessus. Pour plus d'information, veuillez |
| 295 |
consulter la page de manuel &man.cvsup.1;.</para></note> |
| 296 |
|
| 297 |
<para>Qu'une date soit spécifiée ou non, le fichier |
| 298 |
“checkouts” est appelé |
| 299 |
<filename>checkouts.cvs:A</filename> (e.g. |
| 300 |
<filename>checkouts.cvs:RELENG_4</filename>). Comme |
| 301 |
conséquence, aucune action particulière n'est |
| 302 |
nécessaire afin de retourner à l'état |
| 303 |
précédent: vous devez modifier la date |
| 304 |
dans le <filename>supfile</filename> et remettre à |
| 305 |
jour à nouveau.</para> |
| 306 |
</sect2> |
| 307 |
|
| 308 |
|
| 309 |
<sect2> |
| 310 |
<title>Mise à jour de votre catalogue des logiciels |
| 311 |
portés pour la première fois</title> |
| 312 |
|
| 313 |
<para>Comme les logiciels portés sont |
| 314 |
étiquetés “.” (i.e. -CURRENT), |
| 315 |
vous pouvez correctement les synchroniser en |
| 316 |
ajoutant le mot-clé <literal>date</literal> (Cf |
| 317 |
&man.cvsup.1; pour le format exact), vous devriez |
| 318 |
spécifier une date aussi proche que possible que celle |
| 319 |
de “l'expédition” de votre catalogue de |
| 320 |
logiciel porté. Après que cvsup ait |
| 321 |
crée le fichier “checkouts” du catalogue des |
| 322 |
logiciels portés, qui est précisément le |
| 323 |
but de cette première opération de synchronisation, |
| 324 |
le champ <literal>date</literal> doit être retiré, |
| 325 |
toutes les mises à jour suivantes seront faites en |
| 326 |
douceur.</para> |
| 327 |
|
| 328 |
<para>Si vous avez voulu chercher la petite bête dans ce texte, |
| 329 |
vous vous êtes probablement aperçu des |
| 330 |
problèmes potentiels du processus de mise à jour des |
| 331 |
sources. Un certain nombre de personnes ont eu réellement |
| 332 |
des problèmes. Vous avez été |
| 333 |
avertis. :-)</para> |
| 334 |
</sect2> |
| 335 |
</sect1> |
| 336 |
</article> |