|
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
Utiliser arch sur un projet avec développeur unique.
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.
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.
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.
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
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 "-".
hello
désigne un nom de
catégorie.
C'est le nom d'un projet, sans aucune information concernant la version.dev
est un nom de branche.
Ici, dev
signifie devellopement. Nous pouvons plus tard créer une branche
stable.1.0
est le numéro de
version. Traditionellement il est contitué de deux
chiffres, séparés par un point - maintenant vous pouvez
choisir autant de chiffres que vous voulez.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.
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
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.
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.
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.
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
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.
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.
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
[Prev in Thread] | Current Thread | [Next in Thread] |