gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnu-arch-users] French translation of "A brief Introduction to Arch"


From: Laurent WANDREBECK
Subject: [Gnu-arch-users] French translation of "A brief Introduction to Arch"
Date: Sun, 23 May 2004 12:37:50 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040212

Hi there !
This is my 1st post on this ML, so please bear with me ;)

I have really seldom used Arch, and felt pretty lost with it. Anyway, i'm sure this program is really powerful, so I'd like to thanks Tom and all the team working with him in order to improve tla. I know wiki can be edited by anyone, but as I'm not good enough with Arch, i'd like to submit the translation here 1st, so people can tell me where I failed about translation or even Arch itself. Please don't hesitate to send me bug reports, i'd happily correct them before adding that file to the wiki.
Keep up the good work !
--
Laurent Wandrebeck                            irc nick: low
GNU/Linux user #114549
SourceMage GNU/Linux                          /~\ ASCII Ribbon Campaign
GNU/Linux so advanced it may as well be magic \_/ Stop HTML mail & news
Source Mage Developer                         / \
http://www.sourcemage.org

Une brève introduction à Arch

Utiliser arch sur un projet avec développeur unique.

(Russian translation)

Ce mini-guide présente une vue d'ensemble de quelques fonctionnalitées basiques de Arch. Il peut-être utile de le lire en premier, puis de se tourner vers d'autres mini-guides, et enfin, d'aborder le tutorial pour en apprendre plus.

Creer une archive


Avant de pouvoir utiliser Arch, il est nécessaire de créer une archive. Il s'agit simplement d'un répertoire sur votre système de fichier, dans lequel les révisions d'un projet sont stockées. Cela n'a pas forcément besoin d'être en local - vous pouvez créer une archive sur une autre machine, et y accéder via HTTP, FTP, SFTP, etc. Nous utiliserons dans le cas présent une archive locale pour garder les choses aussi simples que possible.

Si vous êtes familier d'un programme de type CVS, vous pouvez considérer l'archive comme l'équivalent du CVSROOT.

Créer une archive est aisé:

address@hidden tla make-archive address@hidden ~/myarchive
address@hidden tla my-default-archive address@hidden

Ceci associe le nom de l'archive address@hidden avec ~/myarchive, et définit cette archive par défaut.

Nous pouvons vérifier que cette étape a fonctionné en demandant à Arch la liste des archives disponibles:

address@hidden tla archives
address@hidden
http://arch.quackerhead.com/~lord/archives/address@hidden
address@hidden
/home/john/myarchive

Avez-vous remarqué que address@hidden n'est pas la seule archive ? L'autre étant l'un des lieux où vous pouvez récupérer la dernière version de Arch. Elle ne sera pas utilisée dans ce tutoriel.

Le nom de l'archive est de la forme:

address@hidden

L'adresse de messagerie électronique n'a pas besoin d'être réelle - C'est juste un identifiant pour faire que cette archive soit unique. Les noms d'archives doivent respecter cette convention.

Configurer votre identité

Dernière étape avant que vous puissiez importer votre projet - il faut configurer son identité. Cela se fait grace à la commande my-id:

address@hidden tla my-id "John Doe <address@hidden>"

Arch s'en souviendra, tout comme l'archive par défaut. L'identité est utilisée pour, par exemple, les messages rapportant aux modifications du projet.

Importer votre premier projet

Maintenant que vous avez crée une archive, et crée votre identité, vous pouvez importer votre premier projet. Pour cela, allez dans le répertoire où se trouvent les sources du projet à importer. Ce répertoire est appelé répertoire de travail, ou racine du projet. Le classique "bonjour monde" sera utilisé comme exemple:

address@hidden cd $wd/hello
address@hidden ls
hello.py world.py

Nommer votre projet

Il faut tout d'abord donner un nom au projet à importer. Nous choisissons de l'appeller comme cela:

hello--dev--1.0

Trois information sont contenues dans ce nom, et sont reliées par deux "-".

Arch oblige à utiliser ce format de nommage, qui peut paraitre etrange à première vue. Au final, c'est un moyen simple de référencer une revision particulière du programme.

Pour nommer le projet, nous initialisons notre répertoire comme le répertoire de travail de Arch. Ceci grâce à la commande init-tree:

address@hidden tla init-tree hello--dev--1.0
address@hidden ls
hello.py world.py {arch}


Remarquez qu'un répertoire {arch} a été crée. Il contient des informations relatives au nom du projet, à quelle archive il est associé, etc.

Marquer les fichiers à ajouter

Par default, Arch utilise une méthode explicite de marquage. Cela signifie que vous devez indiquer de manière explicite à Arch les fichiers que vous voulez inclure dans l'archive. Nous désirons dans ce cas que tous les fichiers soient inclus.

address@hidden tla add *.py

Nous pouvons vérifier que l'opération s'est correctement déroulée en regardant l'inventaire des fichiers:

address@hidden tla inventory
S ./hello.py
S ./world.py

Si nous n'avions pas marqués les fichiers, ils apparaitraient comme non reconnus (Unrecognised (U)), plutôt qu'en tant que fichiers source (S):

address@hidden tla inventory
U ./hello.py
U ./world.py

Importer la révision initiale

Nous sommes maintenant prêts à importer notre répertoire de travail dans l'archive. Cela se déroule en deux étapes - une pour créer les catégories, branches et révisions nécessaires dans l'archive, la seconde pour faire l'importation. Nous utiliserons une fonctionnalité apparue dans la version 1.1 de tla pour faire les deux en même temps: 

address@hidden tla import --setup
* creating category address@hidden/hello
* creating branch address@hidden/hello--dev
* creating version address@hidden/hello--dev--1.0
* imported address@hidden/hello--dev--1.0

Félicitations ! Si vous avez suivi jusqu'ici, vous avez fait le plus dur. Le reste du didacticiel va vous montrer comment Arch peut vous  faciliter la vie.

Tâches courantes

Qu'est-ce qui a changé ?

Ayant importé le projet, nous pouvons y apporter des modifications. Imaginez que John Doe a modifié hello.py pour y ajouter une fonctionnalité - afficher 5 fois la chaîne "hello", au lieu d'une seule fois. Avant de valider sa modification dans l'archive, il veut vérifier d'une manière globale que c'est correct, qu'il n'a pas laissé de code de test dans le fichier source.

Pour cela, Arch propse une commande appellée what-changed:

address@hidden tla what-changed
M ./hello.py

Cela indique à John que hello.py a été modifié (M). Afin de voir le changement, John veut voir la différence entre la version présente dans l'archive et ses propres modifications. Pour cela, il peut ajouter un argument à what-changed:

address@hidden tla what-changed --diffs
M ./hello.py

* modified files

--- orig/hello.py
+++ mod/hello.py
@@ -1,3 +1,4 @@
#!/usr/bin/env python

-print "hello"
+for i in range(5):
+ print "hello"

Ceci montre qu'une ligne a été retirée, et que deux ont été ajoutées.

Notez que ces commandes utilisent une copie cachée de la dernière version de l'archive, appellée pristine tree (pristine, car c'est une version non modifiée de la dernière révision). C'est particulièrement pratique quand vous n'êtes pas relié au reseau - il n'est pas nécessaire d'accéder à l'archive pour voir vos modifications.

Validations rapides

John, heureux que sa modification ait les conséquences espérées, souhaite valider ses modifications dans l'archive. Pour cela, arch dispose de la commande commit:

address@hidden tla commit -L "print hello 5 times instead of 1"
M ./hello.py
* update pristine tree (address@hidden/hello--dev--1.0--base-0
=> hello--dev--1.0--patch-1)
* commited address@hidden/hello--dev--1.0--patch-1

Remarquez l'argument -L. Il permet de préciser le message de log sur la ligne de commande. C'est utile pour les petites modifications, mais parfois vous désireriez avoir un message plus détaillé. Il faut pour cela créer le message de log avant de valider.

Valider avec un fichier de log

Pour les modifications plus importantes, qui requièrent une description plus fine, il peut être utile de créer un message de log avant de procéder à la validation. Pour cela, il faut utiliser la commande make-log:

address@hidden tla make-log
/home/john/wd/hello/address@hidden

address@hidden cat address@hidden
Summary:
Keywords:

Cela crée un message de log vide, et affiche son nom de fichier. La pratique commune est d'editer ce fichier après création, par exemple de la manière suivante:

address@hidden $EDITOR $(tla make-log)
Warning: not overwriting existing log file
<editor opens up>

Le résumé de la ligne du-dessus est utilisé pour une description courte - habituellement moins de 60 caractères. Le champs mot-clefs (keywords) n'est pas souvent utilisé. Tout texte se trouvant en dessous de celui précedemment cité est traité comme le corps du message de log - il peut être aussi long que vous le désirez.

John pourrait remplir le message de log comme ceci:

Summary: print hello 5 times instead of 1
Keywords:

Upon a request from a user, I have made hello print 5 times instead of 1. You
can still obtain the old functionality by running hello | tail -1. Comments
on this change are welcome.

Quand john est prêt à valider la modification, il suffit d'omettre l'argument -L:

address@hidden tla commit
M ./hello.py
* update pristine tree (address@hidden/hello--dev--1.0--base-0
=> hello--dev--1.0--patch-1)
* commited address@hidden/hello--dev--1.0--patch-1

Obtenir la liste des changements

Pour lister les changements présents dans l'archive, vous pouvez utiliser la commande revisions. Arch propose aussi la commande  log-ls, qui montre les changements dans votre répertoire de travail. Vous pouvez trouver moins de modifications dans votre répertoire de travail que dans l'archive si vous travaillez avec d'autres personnes sur la même branche - nous n'approdirons pas plus ce cas ici.

Les descriptions des modifications sont contenues dans des "patch logs". Chaque patch log ressemble à un message électronique, et il contient la description de la modification, la date etc. Les patch logs sont stockés à la fois dans l'archive et dans le répertoire de travail. Ainsi, si vous programmez sur votre portable, et que vous n'avez pas accès à l'archive, vous pouvez quand même lister toutes les modifications qui ont été apportées à l'arbre.

La commande des révisions s'apparente à:

address@hidden tla revisions --summary
base-0
initial import
patch-1
print hello 5 times instead of 1

Pour une branche avec un développeur unique, log-ls affichera toujours la même chose. Nous montrons ici un argument supplémentaire que ces commandes accepteront:

address@hidden tla log-ls --summary --creator
base-0
John Doe <address@hidden>
initial import
patch-1
John Doe <address@hidden>
print hello 5 times instead of 1

Remarquez le nom du créateur - c'est le nom que nous avons donné à my-id plus tôt.

Génerer un changelog

Les patch logs qui ont été précedemment mentionnées décrivent plus d'informations que nous ne pouvons voir grâce aux commandes log-ls ou encore revisions. Afin d'accéder à ses informations supplémentaires, Arch fourni une commande changelog:

address@hidden tla changelog
# do not edit -- automatically generated by arch changelog
# arch-tag: address@hidden/hello--dev--1.0
#

2003-07-13 09:36:33 GMT John Doe <address@hidden> patch-1

Summary:
print hello 5 times instead of 1
Revision:
hello--dev--1.0--patch-1

Upon a request from a user, I have made hello print 5 times instead of 1.
You can still obtain the old functionality by running hello | tail -1.
Comments on this change are welcome.

modified files:
./hello.py


2003-07-13 08:58:18 GMT John Doe <address@hidden> base-0

Summary:
initial import
Revision:
hello--dev--1.0--base-0


(automatically generated log message)

new files:
./hello.py ./world.py

La commande changelog accède à l'archive pour fournir la liste des modifications - Ainsi, la liste complètes des modifications est affichée même si votre répertoire de travail n'est pas à jour.

Récupérer une révision à partir de l'archive

Supposons que John s'apercoive que sa nouvelle version de hello fait échouer d'autres programmes l'utilisant. Afin de s'assurer que le problème vienne de sa mise à jour, il veut récupérer une version précédente.

Il commence par lister les modifications (qu'il a oublié depuis):

address@hidden cd
address@hidden tla revisions --summary hello--dev--1.0
base-0
initial import
patch-1
print hello 5 times instead of 1

Remarquez que le nom du projet est fourni à la commande revisions. Cela est dû au fait que nous travaillions en dehors d'un répertoire de travail - il n'y a donc pas de projet qui y soit associé.

John, en regardant la liste, réalises qu'il veut récupérer la version de base (il aurait pû choisir un patch plus ancien, s'il y en avait eu). Afin de récupérer la version base-0, il peut utiliser la commande suivante:

address@hidden tla get hello--dev--1.0--base-0
* from import revision: address@hidden/hello--dev--1.0--base-0
* making pristine copy
* tree version set address@hidden/hello--dev--1.0

Cela crée un répertoire appellé hello--dev--1.0--base-0. Vous pouvez indiquer un autre nom si vous le désirez:

address@hidden tla get hello--dev--1.0--base-0 mydir

Si vous voulez la dernière version, il y'a un raccourci - vous pouvez omettre la version (base-0, patch-1, etc), comme ceci:

address@hidden tla get hello--dev--1.0              

Back to the Homepage.
Laurent Wandrebeck - address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]