logo chat

Contact/Email

printImpression

Valid XHTML 1.0!

william dodé

Traduction du tutoriel Arch de Thomas Lord

Étiquettes symboliques

Lorsqu'un projet grossit et devient plus complexe, il est souvent utile de pouvoir donner un nom symbolique à une révision particulière de l'archive.

Par exemple, supposons que le projet hello-world ait de nombreuses révisions :

mainline
--------
base-0
patch-1
patch-2
....
patch-23

Il est possible qu'en cours de développement des publications de « snapshots » soient effectuées à partir de la mainline. Toutes les révisions ne deviennent pas des « snapshots », mais certaines oui.

Il serait intéressant d'indiquer une étiquette aux révisions qui deviennent des « snapshots » :

mainline
--------
base-0
patch-1         snapshot 0
patch-2
....
patch-12        snapshot 2
....
patch-23        snapshot 3

La commande tag introduite précédemment, peut être utilisée à cette fin. (voir « Créer une branche d'un projet distant dans une archive locale »)

La première fois que nous avons rencontré la commande tag, c'était pour créer la révision base_0 d'une branche élémentaire. Elle peut également être utilisée pour créer une branche pour toutes les révisions ayant une étiquette.

Supposons que nous voulions créer une branche appelée hello-world--snapshots--0.1. Sous forme de diagramme, nous aurons :

mainline                        snapshots
--------                        ---------
base-0                --------> base-0 (tag)
patch-1 -------------'  ------> patch-1 (tag)
patch-2                '
....                  '
patch-12 ------------'
....
patch-23

Pour créer l'étiquette snapshot pour le patch-23:

% tla tag hello-world--mainline--0.1--patch-23 \
            hello-world--snapshots--0.1

après quoi nous aurons :

mainline                        snapshots
--------                        ---------
base-0                --------> base-0 (tag)
patch-1 -------------'  ------> patch-1 (tag)
patch-2                ' -----> patch-2 (tag)
....                  ' '
patch-12 ------------' '
....                  '
patch-23 ------------'

En effet, la branche snapshots est une sorte de nom symbolique avec un historique. Nous pouvons récupérer la dernière révision nommée par ce symbole avec :

% tla get hello-world--snapshots--0.1

et les révisions précédentes par le nom spécifique de leurs révisions, ex. :

% tla get hello-world--snapshots--0.1--patch-1

Attention!

En général, vos branches devraient être soit des branches basées sur commit (toutes les révisions après base-0 sont créées par commit), soit des branches basées sur tag (toutes les révisions sont créées par tag). Les commandes telles que replay, update, et star-merge sont basées sur la présomption que vous suivez cette règle. Même s'il peut être tentant, dans d'obscures circonstances, de mélanger commit et tag sur une même branche -- c'est généralement peu recommandable.
Version du 31/05/2004 21h18 : wilk@flibuste.net--libre   docs-tla--fr--1.0     patch-99 ... base-0