Utilisation avancée de cvsup
Précédent |  |

# 4. Exemples avancés de gestion des sources

## 4.1. Comment modifier sans risques le champ tag quand vous mettez à jour `src-all`

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

En suivant le catalogue `src-all`, si vous souhaitez passer de `tag=A` à `tag=B` (A inférieur/supérieur à B important peu) et si votre fichier ``checkouts'' est `checkouts.cvs:A`, les opérations suivantes devront être effectuées:

1. `#` `mv checkouts.cvs:A checkouts.cvs:B` (ceci fournit à l'étape suivante le fichier ``checkouts'' approprié)

2. Ecrivez un fichier `supfile` dont la ligne désignant le catalogue est:

       src-all tag=B

3. Cvsupez vos sources en utilisant le nouveau `supfile`.

Cvsup recherchera `checkouts.cvs:B` -- dans ce cas la cible est B, c'est à dire que cvsup se servira des informations contenues dans ce fichier pour gérer correctement vos sources.

Les avantages:

- Les sources sont traitées correctement (en particulier aucun fichier obsolète).

- Moins de charge sur le serveur, dans ce cas CVSup agit de la manière la plus efficace.

Par exemple, `A=RELENG_4`, `B=.`, le point dans `B=.` signifie -CURRENT. C'est une mise à jour plutôt typique de la branche 4-STABLE vers la branche -CURRENT. Alors qu'il est simple de revenir à 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, à moins que vous ne sachiez exactement ce que vous faites.

## 4.2. Mettre à jour en conservant le même champ tag mais pour une date différente

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

1. Ecrivez un `supfile` dont la ligne désignant le catalogue est:

       src-all tag=A date=D

2. Mettez à jour vos sources en utilisant le nouveau `supfile`.

Que la nouvelle date précède ou non celle de la dernière synchronisation avec le champ `tag=A` est peu important. Par exemple, afin d'indiquer la date du ``27 Août 2000 à 10h00s00 GMT'' vous écrirez la ligne:

    src-all tag=RELENG_4 date=2000.08.27.10.00.00

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

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

## 4.3. Mise à jour de votre catalogue des logiciels portés pour la première fois

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

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 à jour des sources. Un certain nombre de personnes ont eu réellement des problèmes. Vous avez été avertis. :-)

Précédent | Sommaire |
Une procédure python utile: cvsupchk |  |

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.