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>.