Accélérer arch en mettant les révisions des archives en cache

Ce chapitre explique une technique pour accélérer l'accès à une archive arch.

Considérons une version arch qui contient de nombreuses révisions :

mainline
--------
base-0
patch-1
....
patch-23
patch-24
patch-25
...
patch-42

Supposons qu'un utilisateur (sans copie locale) veut récupérer (get) la révision patch-42. get va en premier lieu récupérer et décompresser la révision base-0, et ensuite récupérer chaque changeset patch-<N>, dans l'ordre, et les appliquer à l'arborescence.

Si la liste des changesets à appliquer est longue, ou la somme de leur taille très grande en comparaison de la taille de l'arborescence, alors l'implémentation de get est inutilement inefficace.

Un moyen d'accélérer get est en mettant les révisions en cache -- en stockant des copies « pré-construites » de quelques révisions dans l'archive.

Par exemple, la commande :

% tla cacherev -A lord@emf.net--2003-example \
        hello-world--mainline--0.1--patch-40

va construire la révision patch-40, en faire un paquet avec tar, et stocker une copie de ce paquet dans le répertoire du patch-40 de l'archive.

En conséquence, un get du patch-42 va en premier lieu récupérer la copie mise en cache de la révision patch-40, puis récupérer et appliquer les changesets patch-41 et patch-42 : évitant 40 changesets.

Note

Pour l'instant, c'est à vous de décider quelles révisions mettre en cache ou non. Vous pourriez décider, par exemple, de mettre en cache automatiquement certaines révisions à partir d'une tache cron ou à la main tout simplement lorsque vous constatez que get est trop lent. Dans le futur, nous espérons ajouter un moyen plus automatique pour mettre les révisions en cache.
Version du 28/05/2004 11h55 : wilk@flibuste.net--libre   docs-tla--fr--1.0     patch-97 ... base-0