logo chat

Contact/Email

printImpression

Valid XHTML 1.0!

william dodé

Traduction du tutoriel Arch de Thomas Lord

Commencer une nouvelle arborescence

Après avoir suivi les exemples des chapitres précédents, on devrait avoir une nouvelle archive et un nouveau projet « hello-world » dans cette archive.

Dans ce chapitre nous étudierons les différentes étapes de la préparation d'une arborescence afin qu'elle soit intégrée à ce projet.

L'arborescence initiale

Afin de fournir des exemples concrets, supposons que nous ayons une version initiale de « hello-world » :

% cd ~/wd


% ls
hello-world

% cd hello-world

% ls
hw.c    main.c

% cat hw.c

#include <stdio.h>

void
hello_world (void)
{
  (void)printf ("hello warld");
}


% cat main.c

extern void hello_world (void);

int
main (int argc, char * argv[])
{
  hello_world ();
  return 0;
}

Initialiser une arborescence

La première étape pour préparer une arborescence de code source ordinaire est de la convertir en « arborescence de projet ».

% cd ~/wd/hello-world

% tla init-tree hello-world--mainline--0.1

% ls
hw.c    main.c  {arch}

Notez que nous avons indiqué à init-tree le nom de la version de l'archive dans laquelle nous travaillerons. init-tree a créé un sous-répertoire à la racine de l'arborescence ({arch}).

Le sous-répertoire {arch} indique qu'il est la racine d'une arborescence de projet :

% tla tree-root
/usr/lord/wd/hello-world

tla sait pour quelle version de l'archive est cette arborescence :

% tla tree-version
lord@emf.net--2003-example/hello-world--mainline--0.1

Enfin, arch a créé quelque chose appelé patch-log pour la version passée à init-tree :

% tla log-versions
lord@emf.net--2003-example/hello-world--mainline--0.1

Nous expliquerons ce que sont les « patch logs » dans les chapitres suivants.

Initialiser une arborescence ne change pas une archive

Jusqu'à présent, nous avons seulement déclaré l'arborescence du projet en tant que source : nous n'avons pour l'instant rien stocké de nouveau dans cette archive. Nous y viendrons. Mais avant de faire cela, il y a un sujet important qui doit être abordé : les inventaires de sources (source inventories). Nous verrons cela dans le chapitre suivant.

Comment gérer une erreur avec init-tree ?

Supposons que dans l'exemple ci-dessus, nous ayons fait une erreur de frappe :

% tla init-tree hello-world--mainlin--0.1

Une solution « brutale » consisterait à simplement effacer le sous-répertoire {arch} et recommencer. Cependant, à terme, cette solution n'est pas souhaitable : le sous-répertoire {arch} peut contenir des informations que vous ne souhaitez pas perdre. Nous profiterons donc de cette occasion pour introduire quelques commandes avancées.

L'erreur dans la commande init-tree pose deux problèmes. Le résultat des deux commandes suivantes ne donne pas ce à quoi nous nous attendons :

% tla tree-version
lord@emf.net--2003-example/hello-world--mainlin--0.1

% tla log-versions
lord@emf.net--2003-example/hello-world--mainlin--0.1

On peut changer la tree-version d'une arborescence à n'importe quel moment :

% tla set-tree-version hello-world--mainline--0.1

% tla tree-version
lord@emf.net--2003-example/hello-world--mainline--0.1

Gérer les « patch logs » est un peu plus compliqué. Nous devons ajouter les logs que nous voulons...

% tla add-log-version hello-world--mainline--0.1

% tla log-versions
lord@emf.net--2003-example/hello-world--mainlin--0.1
lord@emf.net--2003-example/hello-world--mainline--0.1

... et effacer ceux que ne souhaitons pas conserver :

% tla remove-log-version hello-world--mainlin--0.1

% tla log-versions
lord@emf.net--2003-example/hello-world--mainline--0.1

Attention!

remove-log-version est une commande dangereuse. Elle effacera les « patch logs » dont vous pourriez avoir besoin. On devrait utiliser remove-log-version en étant certain, comme nous l'étions dans le cas ci-dessus, que ce qui est supprimé est ce que nous ne souhaitons pas conserver.

Comment ça marche ? -- Initialiser une nouvelle arborescence

init-tree a créé le sous-répertoire {arch} à la racine de l'arborescence. Qu'y a-t-il dedans ?

% ls {arch}
++default-version       =tagging-method         hello-world

% cat {arch}/++default-version
lord@emf.net--2003-example/hello-world--mainline--0.1

% cat {arch}/=tagging-method
[... long output ...]

{arch}/hello-world est la racine d'une arborescence assez profonde. Les « patch logs » sont stockés dans cette arborescence.

{arch}/=tagging-method est un fichier de configuration que vous pouvez utiliser pour personnaliser la procédure de nommage (naming conventions) qui s'applique à cette arborescence. Cela est expliqué dans un chapitre suivant (voir « Personnaliser les procédures de nommage de l'inventaire »).

Note

On ne devrait évidemment pas éditer le contenu de {arch} à la main.
Version du 31/05/2004 21h18 : wilk@flibuste.net--libre   docs-tla--fr--1.0     patch-99 ... base-0