CTM est une méthode pour synchroniser une arborescence de répertoires distants avec une arborescence centrale. Elle a été développée pour être utilisée avec l'arborescence des sources de FreeBSD, bien que d'autres puissent avec le temps la trouver utile pour d'autres besoins. Il existe actuellement très peu, sinon aucune, documentation sur la façon de créer les deltas, contactez-donc la liste de diffusion ctm-users pour obtenir plus d'informations et si vous souhaitez utiliser CTM pour autre chose.
CTM vous procurera un exemplaire local de l'arborescence des sources de FreeBSD. Il y a plusieurs “moutures” de l'arborescence disponibles. Que vous désiriez suivre toute l'arborescence CVS ou seulement une de ses branches, CTM peut vous fournir ce dont vous avez besoin. Si vous développez activement sous FreeBSD, mais ne disposez que d'une connectivité TCP/IP peu fiable ou n'en avez pas du tout, ou voulez tout simplement que les modifications vous soient automatiquement envoyées, CTM est ce qu'il vous faut. Il vous faudra jusqu'à trois deltas par jour sur les branches les plus actives. Cependant, vous devriez envisager de vous les faire envoyer automatiquement par courrier électronique. La taille des mises à jour est toujours aussi petite que possible. Typiquement moins de 5KO, occasionnellement (une fois sur 10), entre 10 et 50KO, et de temps à autre, une grosse modification de 100KO ou plus.
Vous devrez aussi vous tenir au courant des différentes contre-parties liées au fait de travailler directement avec les sources en cours de développement plutôt qu'avec les versions publiées. C'est particulièrement vrai si vous choisissez les sources de la branche “-CURRENT”. Il est recommandé de lire Se synchroniser avec la version -CURRENT de FreeBSD.
Vous aurez besoin de deux choses: le programme CTM, et les deltas initiaux à lui fournir (pour mettre à jour avec la version “courante”).
Le programme CTM fait partie
de FreeBSD depuis la publication de la version 2.0, et se
trouve dans /usr/src/usr.sbin/ctm
si
vous avez un exemplaire des sources en ligne.
Vous pouvez obtenir les “deltas” à fournir à CTM de deux façons, par FTP ou par courrier électronique. Si vous avez un accès FTP à l'Internet, les sites suivants supportent l'accès à CTM:
ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/
ou reportez-vous à la section Sites miroirs.
Allez dans le répertoire vous concernant et commencez
par télécharger le fichier
README
.
Si vous souhaitez récupérer vos deltas par courrier électronique:
Abonnez-vous à l'une des listes de distribution CTM. ctm-cvs-cur comprend toute l'arborescence -CURRENT. ctm-src-4 concerne la branche 4.X, etc... (Si vous ne savez pas comment vous abonner à une liste, cliquez sur le nom de la liste ci-dessus ou sur http://lists.FreeBSD.org/mailman/listinfo puis cliquez sur la liste à laquelle vous désirez vous abonner. La page devrait contenir toutes les instructions nécessaires à l'abonnement.)
Dès que vous commencez à recevoir vos
mises à jour CTM par courrier
électronique, vous pouvez utiliser le programme
ctm_rmail
pour les décompacter et
les appliquer. Vous pouvez en fait utiliser directement le
programme ctm_rmail
à partir d'une
entrée dans /etc/aliases
si vous
voulez automatiser complètement le processus. Consultez les
pages de manuel de ctm_rmail
pour plus de
détails.
Quelle que soit la méthode que vous utilisez pour récupérer les deltas CTM, vous devriez vous abonner à la liste de diffusion ctm-announce. Ce sera, dans l'avenir, le seul endroit où les annonces concernant le fonctionnement du système CTM seront faites. Cliquez sur le nom de la liste et suivez les instructions pour s'inscrire à la liste.
Avant de pouvoir utiliser les deltas CTM, il vous faut un point de départ pour appliquer les deltas générés à partir de là.
Tout d'abord vous devez déterminer ce que vous avez déjà. Tout le monde peut partir d'un répertoire “vide”. Vous devez utiliser un delta “Empty” (vide) au départ pour débuter votre arborescence supportée par CTM. Il fut question que l'un de ces deltas de départ soit distribué sur le CD, cependant ce n'est actuellement pas le cas.
Puisque les arborescences représentent plusieurs dizaines de mégaoctets, vous préférerez commencer avec ce que vous avez déjà sous la main. Si vous disposez d'une version de FreeBSD sur CD, vous pouvez copier ou extraire les sources initiales qui s'y trouvent. Cela évitera un transfert de données conséquent.
Vous pouvez reconnaître ces deltas de transition
au X
qui suit leur numéro de
séquence
(src-cur.3210XEmpty.gz
par exemple).
La dénomination après le X
correspond à l'origine de votre “racine”
initiale. Empty
est un répertoire
vide. La règle est qu'une transition de base à
partir de Empty
est
générée tous les 100 deltas. Au passage,
elles sont volumineuses! De 70 à 80 mégaoctets de
données compressées avec gzip
est une taille habituelle pour les deltas
XEmpty
.
Une fois que vous avez sélectionné un delta initial à partir duquel commencer, il vous faudra également tous les deltas de numéro supérieur qui le suivent.
Pour appliquer les deltas, tapez simplement:
#
cd /où/vous/voulez/mettre/les/fichiers
#
ctm -v -v /où/vous/mettez/vos/deltas/src-xxx.*
CTM reconnaît les deltas
qui ont été compressés avec gzip
,
vous n'avez donc pas besoin de les décompresser avant,
ce qui économise de l'espace disque.
A moins d'être absolument sûr du résultat,
CTM ne touchera pas à
votre arborescence. Pour contrôler la validité
d'un delta, vous pouvez également utiliser
l'indicateur -c
et
CTM ne modifiera alors pas
votre arborescence; il vérifiera simplement
l'intégrité du delta et regardera s'il peut
s'appliquer proprement à votre arborescence en
l'état.
Il y a aussi d'autres option pour CTM, voyez les pages de manuel ou lisez les sources pour plus d'informations.
C'est à peu près tout. Chaque fois que vous recevez un delta, passez-le à CTM pour tenir à jour votre arborescence des sources.
N'effacez pas les deltas s'il vous est difficile de les télécharger de nouveau. Vous pouvez en avoir besoin si quelque chose mauvais se produit. Même si vous n'avez que des disquettes, envisagez d'utiliser fdwrite(1) pour en faire une copie.
Si vous êtes développeur vous voudrez
expérimenter et modifier des fichiers de l'arborescence
des sources. CTM supporte
de façon limitée les modifications locales: avant
de contrôler l'existence d'un fichier
foo
, il regarde tout d'abord s'il y a
un fichier foo.ctm
. Si ce fichier
existe, CTM l'utilisera au lieu
de foo
.
Ce comportement vous permet de conserver de façon
simple des modifications locales: copiez simplement les
fichiers que vous envisagez de modifier dans des fichiers
de même nom, mais avec le suffixe
.ctm
. Vous pouvez ensuite bidouiller
tranquillement le code, pendant que
CTM maintient à jour le
fichier .ctm
.
Vous pouvez connaître la liste des modifications
que CTM appliquera à
votre archive des sources en utilisant
CTM avec l'option
-l
.
C'est utile si vous voulez conserver la trace des modifications, pré- ou post- modifier les fichiers concernés, ou vous vous sentez un tantinet paranoïaque.
Parfois vous voudrez sauvegarder tous les fichiers qui seraient toucher par une mise à jour CTM.
Avec l'option
-B fichier_de_sauvegarde
,
CTM sauvegarde tous les
fichiers que seraient modifiés par delta
CTM donné dans
fichier_de_sauvegarde
.
Parfois vous voudrez restreindre le champ d'application d'une mise à jour CTM, ou serez intéressé à n'extraire que quelques fichiers d'une séquence de deltas.
Vous pouvez contrôler la liste de fichiers
sur laquelle travaillera CTM
en donnant comme filtre une expression régulière
avec les options -e
et
-x
.
Par exemple, pour extraire une version à jour
de lib/libc/Makefile
de la série
de deltas CTM que vous
avez sauvegardé, lancez les commandes:
#
cd /where/ever/you/want/to/extract/it/
#
ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*
Pour chaque fichier d'un delta
CTM, les options
-e
et -x
sont
appliquées dans l'ordre donné sur la ligne de
commande. Le fichier est traité par
CTM uniquement s'il est
sélectionné après application des options
-e
et -x
.
Il y en a des tonnes:
Utiliser une méthode d'authentification au système CTM pour détecter la substitution de mises à jour.
Faire le ménage dans les options de CTM, elles commencent à engendrer de la confusion et à contredire l'intuition.
Il existe aussi une séquence de deltas pour le catalogue des logiciels portés, mais elle n'a pas reçue beaucoup d'écho jusqu'ici.
CTM/FreeBSD est disponible via FTP anonyme sur les miroirs suivants. Si vous faites le choix de vous procurer CTM via FTP anonyme, utilisez s'il vous plaît un site proche de vous.
En cas de problème, contactez la liste de diffusion ctm-users.
Si vous n'avez pas trouvé de miroir proche de vous, où si le miroir est incomplet, essayez d'utiliser un moteur de recherche comme alltheweb.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://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>.