~svn/ubuntu/raring/subversion/ppa

« back to all changes in this revision

Viewing changes to doc/translations/french/repos_admin.texi

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-12-05 01:26:14 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051205012614-qom4xfypgtsqc2xq
Tags: 1.2.3dfsg1-3ubuntu1
Merge with the final Debian release of 1.2.3dfsg1-3, bringing in
fixes to the clean target, better documentation of the libdb4.3
upgrade and build fixes to work with swig1.3_1.3.27.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
@node Administration des D�p�ts
 
2
@chapter Administration des D�p�ts
 
3
 
 
4
Comment administrer un d�p�t Subversion.
 
5
 
 
6
Dans cette section, nous nous concentrerons sur comment utiliser les
 
7
programmes @command{svnadmin} et @command{svnlook} pour travailler avec
 
8
des d�p�ts.
 
9
 
 
10
@menu
 
11
* Cr�er un d�p�t::
 
12
* Examiner un d�p�t::
 
13
* Accroches d un d�p�t::
 
14
* Maintenance d un d�p�t::
 
15
* Mettre un d�p�t sur le r�seau::
 
16
* Migrer un d�p�t::
 
17
* WebDAV::
 
18
@end menu
 
19
 
 
20
 
 
21
 
 
22
@c ------------------------------------------------------------------
 
23
@node Cr�er un d�p�t
 
24
@section Cr�er un d�p�t
 
25
 
 
26
Cr�er un d�p�t est incroyablement simple:
 
27
 
 
28
@example
 
29
$ svnadmin create path/to/myrepos
 
30
@end example
 
31
 
 
32
Ceci cr�e un nouveau d�p�t dans le sous-r�pertoire @file{myrepos}.
 
33
 
 
34
(Notez que les programmes @command{svnadmin} et @command{svnlook} op�re
 
35
@emph{directement} sur un d�p�t car ils utilisent la librairie
 
36
@file{libsvn_fs.so}. Ainsi, ces outils attendent un chemin local ordinaire
 
37
vers le d�p�t. Ceci est en opposition avec le programme client
 
38
@command{svn}, qui acc�de toujours � un d�p�t via une URL de type
 
39
@url{http://} ou @url{file://}.)
 
40
 
 
41
Un nouveau dep�t commence toujours sa ``vie'' � la r�vision 0, qui est
 
42
d�fini pour n'�tre rien saut le r�pertoire racine (@file{/}).
 
43
 
 
44
Comme mentionn� pr�c�dament, les r�visions de d�p�t peuvent avoir des
 
45
propri�t�s non versionn�es qui lui sont attach�es.  En particulier, chaque
 
46
r�vision est cr��e avec une propri�t� ``date de modification''
 
47
@samp{svn:date} (les autres propri�t�s communes incluent @samp{svn:author}
 
48
et @samp{svn:log}).
 
49
 
 
50
Pour un d�p�t nouvellement cr��, la r�vision 0 n'a rien sauf la propri�t�
 
51
@samp{svn:date} attach�e.
 
52
 
 
53
Voici un arr�t rapide sur l'anatomie d'un d�p�t:
 
54
 
 
55
@example
 
56
$ ls myrepos
 
57
conf/
 
58
dav/
 
59
db/
 
60
hooks/
 
61
locks/
 
62
@end example
 
63
 
 
64
@table @samp
 
65
@item conf
 
66
Actuellement inutilis�; les fichiers de configuration c�t� d�p�t
 
67
arriveront un jour ici.
 
68
@item dav
 
69
Si le d�p�t est acc�d� par Apache et mod_dav_svn, des bases de donn�es
 
70
priv�es de gestion sont stock�es ici.
 
71
@item db
 
72
L'environnement principal de ``Berkeley DB'', c'est plein de tables DB qui
 
73
comprennent les donn�es stok�es par libsvn_fs. C'est ici que toutes vos
 
74
donn�es sont! En particulier, la plupart de vos contenus de fichiers
 
75
arrivent dans la table ``strings''. Les fichiers log s'accumulent aussi ici,
 
76
ainsi les transactions peuvent �tre r�cup�r�es.
 
77
@item hooks
 
78
C'est ici que ce trouve les fichiers d'accroche de pr�-remont�e et
 
79
post-remont�e (et un jour, une accroche de lecture).
 
80
@item locks
 
81
Un simple fichier se trouve ici; les lectures et �criveurs prennent un
 
82
v�rrou partag� sur ce fichier. Ne pas supprimer ce fichier.
 
83
@end table
 
84
 
 
85
Une fois que le d�p�t a �t� cr��, il est tr�s probable que vous vouliez
 
86
utiliser le client svn pour importer une arborescence initiale. (essayez
 
87
@samp{svn help import}, ou @xref{Autres commandes}.)
 
88
 
 
89
 
 
90
@c ------------------------------------------------------------------
 
91
@node Examiner un d�p�t
 
92
@section Examiner un d�p�t
 
93
 
 
94
@subsection Transactions et R�visions
 
95
 
 
96
Un d�p�t Subversion est essentiellement une s�quence d'arborescence;
 
97
chaque arborescence est appel�e une @dfn{r�vision}. Si ceci est nouveau
 
98
pour vous, il serait bon que vous lisiez
 
99
@ref{Transactions et num�ro de r�vision}.
 
100
 
 
101
Chaque r�vision commence comme une @dfn{transaction} d'arborescence. Quand
 
102
vous faites une remont�e, un client construit une transaction qui copie
 
103
ses modifications locales, et lorsque la remont�e a r�ussie, la
 
104
transaction est effectivement promue en une nouvelle r�vision
 
105
d'arborescence et un nouveau num�ro de r�vision lui est assign�.
 
106
 
 
107
Les mise � jour fonctionnent de fa�on similaire: le client contruit une
 
108
transaction d'arborescence qui est un ``mirroir'' de sa copie de travail.
 
109
Le d�p�t alors compare la transaction d'arborescence avec une r�vision de
 
110
l'arborescence, et envoie en retour un delta des arborescences. Lorsque
 
111
la mise � jour est termin�e, la transaction est termin�e et supprim�e du
 
112
d�p�t.
 
113
 
 
114
L'utilisation de transaction d'arborescence est le seul moyen pour
 
115
'�crire' dans le syst�me de fichier versionn� du d�p�t; tous les
 
116
utilisateurs de libsvn_fs font ��. Cependant, il est important de
 
117
comprendre que la dur�e de vie de la transaction est totalement flexible.
 
118
Dans le cas d'une mise � jour, la transaction d'arborescences est
 
119
temporaires et imm�diatement d�truites. Dans le cas d'une remont�e,
 
120
les transactions sont transform�es en une r�vision permanente (ou
 
121
abandonn�es si la remont�e �choue). Dans le cas d'une erreur ou d'un bug,
 
122
il est possible que la transaction soit accidentellement soit laiss�e tel
 
123
quel -- l'appelant de libsvn_fs peut mourrir avant de la supprimer. Et en
 
124
th�orie, un jour une application de workflow enti�re pourra faire des
 
125
r�parations lors de la creation des transaction; elles pourraient �tre
 
126
examin�es alternativement par diff�rents gestionnaires avant d'�tre
 
127
supprim�es pour promues � une r�vision.
 
128
 
 
129
Le fait est que si vous �tes en train d'administrer un d�p�t Subversion,
 
130
vous allez devoir examiner les r�visions et les transactions. Cel� fait
 
131
partie du travail de suveillance de la bonne sant� de votre d�p�t.
 
132
 
 
133
@subsection @command{svnlook}
 
134
 
 
135
@command{svnlook} est un outil qui travail en lecture-seule@footnote{
 
136
pourquoi en lecture-seule? parce que si un script d'accroche de
 
137
pr�-remont�e modifie la transaction avant que la remont�e soit faite, la
 
138
copie de travail n'aura aucune moyen pour savoir ce qui c'est pass�, et
 
139
serait donc d�synchronis� sans le savoir. Subversion n'a actuellement
 
140
aucun moyen pour traiter cette situation, et peut-�tre ne l'aura jamais.}
 
141
et qui peut-�tre utilis� pour examiner les r�visions et les transactions
 
142
d'arborescences d'un d�p�t. Il est utile pour les administrateurs syst�me,
 
143
et peut �galement �tre utilis� par les scripts d'accroche de pr�-remont�e,
 
144
(@file{pre-commit}), ou post-remont�e, @file{post-commit}.
 
145
 
 
146
L'utilisation la plus simple est:
 
147
 
 
148
@example
 
149
$ svnlook repos
 
150
@end example
 
151
 
 
152
Cel� imprime des informations sur la derni�re r�vision dans le d�p�t
 
153
``repos''. En particulier, elle montrera les descriptions de modification,
 
154
l'auteur, la date, et un diagramme de l'arborescence.
 
155
 
 
156
Pour regarder � une r�vision ou une transaction particuli�re:
 
157
 
 
158
@example
 
159
$ svnlook repos rev 522
 
160
$ svnlook repos txn 340
 
161
@end example
 
162
 
 
163
Ou, si vous voulez uniquement voir certains type d'information,
 
164
@command{svnlook} acc�pte plusieurs sous-commandes. par exemple:
 
165
 
 
166
@example
 
167
$ svnlook repos rev 522 log
 
168
$ svnlook repos rev 559 diff
 
169
@end example
 
170
   
 
171
Les sous-commandes disponibles sont:
 
172
   
 
173
@table @samp
 
174
@item @samp{log}
 
175
Affiche la description des modifications de l'aborescence.
 
176
@item @samp{author}
 
177
Affiche l'auteur de l'arborescence.
 
178
@item @samp{date}
 
179
Affiche la date de l'arborescence.
 
180
@item @samp{dirs-changed}
 
181
Affiche la liste des r�pertoires qui ont chang� dans l'arborescence.
 
182
@item @samp{changed}
 
183
Affiche la liste de tous les fichiers et r�pertoires qui ont chang� dans
 
184
l'arborescence.
 
185
@item @samp{diff}
 
186
Affiche un ``unified diff'' des fichiers modifi�s.
 
187
@end table
 
188
 
 
189
 
 
190
@subsection l'interpr�teur de commande
 
191
 
 
192
L'outil @command{svnadmin} a un mode avec un interpr�teur de commande
 
193
'jouet'. Il n'en fait pas beaucoup, mais il permet de ``fourrager'' dans
 
194
le le d�p�t comme s'il y avait une mountage de syst�me de fichier
 
195
imaginaire.  Les commandes de base @samp{cd}, @samp{ls}, @samp{exit}, et
 
196
@samp{help} sont disponibles, aussi bien que la tr�s sp�ciale commande
 
197
@samp{cr} -- ``changer de r�vision''. La derni�re commande vous permet de
 
198
vous d�placer entre r�visions d'arborescence.
 
199
 
 
200
@example 
 
201
$ svnadmin shell repos
 
202
<609: />$
 
203
<609: />$ ls
 
204
  < 1.0.2i7>  [   601]  1           0    trunk/
 
205
  <nh.0.2i9>  [   588]  0           0    branches/
 
206
  <jz.0.18c>  [   596]  0           0    tags/
 
207
 
 
208
<609: />$ cd trunk
 
209
<609: /trunk>$ cr 500
 
210
<500: /trunk>$ ls
 
211
  <   2.0.1>  [     1]  0        3462    svn_config.dsp
 
212
  <  4.0.dj>  [   487]  0        3856    PORTING
 
213
  <  3.0.cr>  [   459]  0        7886    Makefile.in
 
214
  <  d.0.ds>  [   496]  0        9736    build.conf
 
215
  <  5.0.d9>  [   477]  1           0    ac-helpers/
 
216
  <   y.0.1>  [     1]  0        1805    subversion.dsp
 
217
@dots{}
 
218
<500: />$ exit
 
219
@end example
 
220
 
 
221
L'affichage de @samp{ls} a seulement quelques colonnes:
 
222
 
 
223
@example
 
224
  NODE-ID  CREATED-REV HAS_PROPS?  SIZE  NAME
 
225
 
 
226
  < 1.0.2i7>  [   601]  1           0    trunk/
 
227
  <nh.0.2i9>  [   588]  0           0    branches/
 
228
  <jz.0.18c>  [   596]  0           0    tags/
 
229
@end example
 
230
 
 
231
 
 
232
@c ------------------------------------------------------------------
 
233
@node Accroches d un d�p�t
 
234
@section Accroches d un d�p�t
 
235
 
 
236
Une @dfn{accroche} est un programme d�clench� par un acc�s en lecture ou
 
237
�criture au d�p�t. L'accoche re�oie suffisament d'information pour dire
 
238
quel est l'action, la/les cibles de l'op�ration, et qui le fait. En
 
239
fonction de la sortie ou du code de retour de l'accroche, le programme
 
240
d'accroche peut continuer l'action, la stopper, ou la suspendre
 
241
d'une certaine mani�re.
 
242
 
 
243
Les accroches de Subversion sont des programme qui r�sident dans le
 
244
r�pertoire @file{hooks} du d�p�t:
 
245
 
 
246
@example
 
247
$ ls repos/hooks/
 
248
post-commit.tmpl*  read-sentinels.tmpl  write-sentinels.tmpl
 
249
pre-commit.tmpl*   start-commit.tmpl*
 
250
@end example
 
251
 
 
252
C'est ainsi que le r�pertoire @file{hooks} apparait apr�s la cr�ation d'un
 
253
d�p�t. Il ne contient aucun programmes d'accroche -- ce ne sont que des
 
254
mod�les.
 
255
 
 
256
Les accroches actuelles doivent �tre nomm�es @file{start-commit},
 
257
@file{pre-commit} ou @file{post-commit}. Les fichiers mod�les (.tmpl) sont des exemples de
 
258
script shell pour vous aider � commencer; lisez les pour connaitre les
 
259
d�tails de fonctionnement de chaque accroche. Pour faire vos propre
 
260
accroche, copi� @file{foo.tmpl} en @file{foo} et �ditez le.
 
261
 
 
262
Les @file{read-sentinels} et @file{write-sentinels} ne sont pas encore
 
263
impl�ment�s.  Leurs intentions est d'offrir un fonctionnement plus proche
 
264
du d�mon que des accroches. Une sentinelle (Ndt: c'est la bonne traduction
 
265
?) est d�marr� au d�but d'une op�ration utilisateur. Le serveur Subversion
 
266
commnunique avec la sentinelle en utilisant un protocole encore a d�finir.
 
267
En fonction de la r�ponse de la sentinelle, Subversion va peut-�tre
 
268
stopper ou modifier l'op�ration.
 
269
 
 
270
Voici une description des programmes d'accroche:
 
271
 
 
272
@table @samp
 
273
 
 
274
@item @file{start-commit}
 
275
Le programme est ex�cut� avant que la transaction de remont�e soit cr��e.
 
276
C'est typiquement utilis� pour d�cider si l'utilisateur � les privil�ges
 
277
de remonter des modifications dans le d�p�t. Le d�p�t passe deux arguments
 
278
� ce programme: le chemin vers le d�p�t, et le nom de l'utilisateur qui
 
279
tente la remont�e. Si le programme retourne un code de sortie diff�rent de
 
280
z�ro, la remont�e est stopp�e avant que la transaction ne soit cr��e.
 
281
@item @file{pre-commit}
 
282
Ce programme est ex�cuter quand la transaction est compl�te, mais avant
 
283
quelle soit valid�e. Typiquement, cette accroche est utilis�e pour
 
284
prot�ger contre des remont�es qui ne sont pas authoris�es � cause du
 
285
contenu ou du lieu (par exemple, votre site pourrait exiger que toutes
 
286
les remont�es � une certaine branche inclues un num�ros de ticket du
 
287
syst�me de tra�age de bug, ou que la description des modifications
 
288
arrivant soit non vide.)@footnote{Actuellement, c'est la seule m�thode
 
289
part laquelle un utilisateur peut impl�menter un contr�le d'acc�s avec une
 
290
granulosit� fine; au-del� des facilit�s offertes pas Apache
 
291
(@file{httpd.conf}). Dans une future version de Subversion, Nous
 
292
planifions d'impl�menter une syst�me d'ACL (Liste de Control d'Acc�s)
 
293
directement dans le syst�me de fichier.} Le d�p�t passe deux param�tres �
 
294
ce programme: le chemin vers le d�p�t et le nom de la transaction en
 
295
attende de validation. Si le programme retourne un code de sortie
 
296
diff�rente de z�ro, la remont�e est annul�e et la transaction supprim�e.
 
297
 
 
298
Subversion inclut le script @file{tools/hook-scripts/commit-access-control.pl} 
 
299
qui peut �tre appel� depuis @file{pre-commit} pour impl�menter un contr�le
 
300
d'acc�s plus fin.
 
301
 
 
302
@item @file{post-commit}
 
303
Ce programme est ex�cut� apr�s que la transation soit r�alis�e et que nous
 
304
avons une nouvelle r�vision. La plupart des gens utilise cette accroche
 
305
pour envoyer des emails decrivant la remont�e ou pour r�aliser une
 
306
sauvegarde � chaud du d�p�t. Le d�p�t passe deux arguments � ce programme:
 
307
le chemin vers le d�p�t et le nouveau num�ros de r�vision qui a �t� cr��.
 
308
Le code de sortie du programme est ignor�.
 
309
 
 
310
Subversion inclut le script @file{tools/hook-scripts/commit-email.pl} qui
 
311
peut �tre utilis� pour envoyer les modifications appliqu�es par la
 
312
remont�e � un nombre quelconque d'adresse de courrier �lectronique.
 
313
Le script @file{tools/backup/hot-backup.py}, �galement inclut, permet de
 
314
faire des sauvegardes � chaud de votre d�p�t Subversion apr�s chaque
 
315
remont�e.
 
316
 
 
317
@end table
 
318
 
 
319
Notez que les accroches doient �tre ex�cutable part l'utilisateur qui
 
320
les lance (commun�ment l'utilisateur qui ex�cute httpd) et que ce m�me
 
321
utilisateur doit �tre capable d'acc�der au d�p�t.
 
322
 
 
323
Les accroches de pre-remont�e (@file{pre-commit}) et de post-remont�e
 
324
(@file{post-commit}) ont besoin de connaitre des choses a propos des
 
325
modifications qui vont �tre remont�es (ou qui viennent d'�tre remont�e).
 
326
La solution est un programme ind�pendant, @command{svnlook}
 
327
(@xref{Examiner un d�p�t}.) qui est install� au m�me endroit que le
 
328
binaire @command{svn}. Le script peut utiliser @command{svnlook} pour
 
329
examiner une transaction ou une r�vision d'arborescence. Il produit une
 
330
sortie qui est aussi visible par un humain que par un programme, ainsi les
 
331
scripts d'accroche peuvent facilement le parser. Notez que `svnlook'
 
332
travail en lecture-seule -- il ne peut que inspecter et ne peut pas
 
333
modifier le d�p�t.
 
334
 
 
335
 
 
336
@c ------------------------------------------------------------------
 
337
@node Maintenance d un d�p�t
 
338
@section Maintenance d un d�p�t
 
339
 
 
340
@subsection Gestion de Berkeley DB
 
341
 
 
342
Actuellement, le d�p�ts de Subversion n'a qu'un moteur de base de donn�es:
 
343
Berkeley DB. Toute votre structure de syst�me de fichier et vos donn�es
 
344
sont dans un ensemble de tables dans @file{repos/db/}.
 
345
 
 
346
Berkeley DB est livr� avec des outils pour g�rer ces fichiers, et ont
 
347
leure propre et excellente documenations.  (voir
 
348
@url{http://www.sleepycat.com}, ou lisez juste les pages man.) Nous ne
 
349
couvrirons pas tous ces outils ici; nous mentionnerons quelqu'une des
 
350
proc�dures les plus communes dont un administrateur de d�p�t pourrait
 
351
avoir besoin.
 
352
 
 
353
Premi�rement, rappelez vous que Berkeley DB a de v�ritables transactions.
 
354
toutes tentatives de modifications de la DB (Data-Base, Base de Donn�e)
 
355
est un premier loggu�. Au moindre probl�me, la DB peut retourner
 
356
d'elle-m�me en arri�re au pr�c�dent ``point de contr�le'' et recommencer
 
357
la transaction pour r�cup�rer les donn�es dans le m�me �tat.
 
358
 
 
359
Selon notre propre exp�rient, nous avons rencontr� des situations ou un
 
360
bug dans Subversion (qui produit un plantage) peut parfois avoir l'effet
 
361
de bord de laisser d'environnement de DB dans un �tat ``v�rouill�''. Les
 
362
tentatives suivantes de lecture ou �criture reste bloqu�es, en attente sur
 
363
le verrou.
 
364
 
 
365
Pour ``d�bloquer'' le d�p�t, utilisez @command{db_recover}:
 
366
 
 
367
@example
 
368
$ db_recover -ve -h repos/db
 
369
db_recover: Finding last valid log LSN: file: 40 offset 4080873
 
370
db_recover: Checkpoint at: [40][4080333]
 
371
db_recover: Checkpoint LSN: [40][4080333]
 
372
db_recover: Previous checkpoint: [40][4079793]
 
373
db_recover: Checkpoint at: [40][4079793]
 
374
db_recover: Checkpoint LSN: [40][4079793]
 
375
db_recover: Previous checkpoint: [40][4078761]
 
376
db_recover: Recovery complete at Sun Jul 14 07:15:42 2002
 
377
db_recover: Maximum transaction id 80000000 Recovery checkpoint [40][4080333]
 
378
@end example
 
379
 
 
380
Premi�rement, assurez vous que vous ex�cutez cette commande avec le compte
 
381
de la base de donn�e et @emph{non} en tant que root. En ex�cutant
 
382
@command{db_recover} sous le compte root, cel� laissera des fichiers avec
 
383
le propri�taire root dans le r�pertoire db qui ne pourront �tre ouvert par
 
384
le compte non root qui g�re la base de donn�e et qui est typiquement le
 
385
compte du processus Apache.
 
386
 
 
387
Deuxi�mement, un administrateur de d�p�t peut avoir besoin de g�rer le
 
388
grossissement des fichiers log. A tout instant, l'environnement DB
 
389
utilise au moins un fichier log pour enregistrer la transactions; lorsque
 
390
le ficheir log actuel grossi jusqu'� 10 m�ga octet, un nouveau fichier log
 
391
est d�but�, et l'ancien reste.
 
392
 
 
393
Ainsi, apr�s une longue periode, vous constaterez un nombre important de
 
394
fichiers log. A ce moment l�, vous avez deux choix : si vous laissez
 
395
tous les fichiers log, vous avez la garantie que @command{db_recorer}
 
396
pourra toujours ``rejouer'' chaques transactions de la base de donn�e,
 
397
depuis la premi�re remont�e (ceci est la m�those s�re et un peu
 
398
parano�aque). L'autre m�thode, est de demander � Berkeley DB de vous dire
 
399
quels fichiers log ne sont plus activement utilis�s :
 
400
 
 
401
@example
 
402
$ db_archive -a -h repos/db
 
403
log.0000000023
 
404
log.0000000024
 
405
log.0000000029
 
406
@end example
 
407
 
 
408
Notre d�p�t de Subversion utilise une script d'accroche de post-remont�e
 
409
(@file{post-commit}), qui apr�s avoir r�alis� une sauvegarde � chaud du
 
410
d�p�t, supprime ces fichiers log exc�dentaire. Dans les sources de
 
411
Subversion, regardez @file{tools/backup/hot-backup.py}.
 
412
 
 
413
Ce script illustre �galement une m�thode s�re de faire une sauvegarde du
 
414
d�p�t alors qu'il reste en cours d'utilisation: copier tout le repertoire
 
415
du d�p�t, puis recopier les fichiers log list� par la commande
 
416
@samp{db_recorer -l}.
 
417
 
 
418
Pour utiliser un d�p�t de sauvegarde que vous venez de restaurer, assurez
 
419
vous d'ex�cuter la commande @samp{db_recover -ve} dans l'espace @file{db}
 
420
en premier. Ceci garanti que toutes transactions non-termin�es soient
 
421
compl�tement ``jou�es'' avant que le d�p�t ne soit utilis� � nouveau.
 
422
 
 
423
Enfin, not� que Berkeley DB a un syst�me de verrouillage complet; dans des
 
424
cas d'op�rations ext�mement intense de svn, nous avons constat� des
 
425
situations o� l'envirennement de DB n'a plus suffisament de verroux. Le
 
426
nombre maximum de verrou peut-�tre ajust� en changant les valeurs dans
 
427
le fichier @file{repos/db/DB_CONFIG}. Ne changez pas les valeurs par
 
428
d�faut sans savoir exactement ce que vous faites; Voyez s�r d'avoir lu
 
429
@uref{http://www.sleepycat.com/docs/ref/lock/max.html} en premier.
 
430
 
 
431
@subsection Utilisation de svnadmin 
 
432
 
 
433
L'outil @command{svnadmin} a des sous-commandes qui sont sp�cifiquement
 
434
utiles � un administrateur de d�p�t. Faites attention lorsque vous
 
435
utilisez @command{svnadmin}! @command{svnadmin} contrairement �
 
436
@command{svnlook}, qui ne fonctionne qu'en lecture seule, peut modifier
 
437
le d�p�t.
 
438
 
 
439
La fonctionnalit� la plus utilis�e est probablement @samp{svadmin
 
440
setlog}. Une description de modification est une propri�t� unversionn�e
 
441
directement attach� � la r�vision; Il n'y a qu'une seule description de
 
442
modification par r�vision. Parfois l'utilisateur a remont� sa description
 
443
de modification et il a besoin de la remplacer.
 
444
 
 
445
@example
 
446
$ echo "Here is the new, correct log message" > newlog.txt
 
447
$ svnadmin setlog myrepos 388 newlog.txt
 
448
@end example
 
449
 
 
450
Il y a un sympathique script CGI dans @file{tools/cgi/} qui permet �
 
451
certain (avec un mot de passe d'acc�s) de modifier les descriptions de
 
452
message via un navigateur web.
 
453
 
 
454
Un autre usage courant de @command{svnadmin} est d'inspecter et de
 
455
nettoyer de vieilles transactions abandonn�es. Les remont�es et les mises
 
456
� jour cr�ent toutes les deux des transactions d'arborescence, mais
 
457
occasionnellement un bug ou un plantage peut les laisser telles quelles.
 
458
En inspectant la date de la transaction, un administrateur peut decider la
 
459
supprimer.
 
460
 
 
461
@example
 
462
$ svnadmin lstxns myrepos
 
463
319
 
464
321
 
465
$ svnadmin lstxns --long myrepos
 
466
Transaction 319
 
467
Created: 2002-07-14T12:57:22.748388Z
 
468
@dots{}
 
469
$ svnadmin rmtxns myrepos 319 321
 
470
@end example
 
471
 
 
472
@c ### Hey guys, are going to continue to support @samp{svnadmin undeltify}??
 
473
 
 
474
Une autre sous-commande tr�s utilis�e est @samp{svnadmin undeltify}.
 
475
Rappelez vous que la derni�re version de chaque fichier est stock�e en
 
476
entier dans le d�p�t, et les r�visions pr�c�dentes des fichiers sont
 
477
stock�s comme diff�rences par rapport � la r�vision suivant la plus
 
478
proche. Lorsqu'un utilisateur tente un acc�s � une r�vision ant�rieur, le
 
479
d�p�t doit appliquer � rebours les diff�rences au plus r�cent des contenus
 
480
complet pour obtenir la version ant�rieur d�sir�e.
 
481
 
 
482
Si une r�vision d'arborescence particuli�re est tr�s populaire,
 
483
l'administrateur peut am�liorer le temps d'acc�s � cette arborescence en
 
484
``undeltifying'' (supprimer les diff�rences) tous les patches dans la
 
485
r�vision -- C'est-�-dire en convertissant chaque fichier en contenu
 
486
complet.
 
487
 
 
488
@example
 
489
$ svnadmin undeltify myrepos 230 /project/tags/release-1.3
 
490
Undeltifying `/project/tags/release-1.3' in revision 230...done.
 
491
@end example
 
492
 
 
493
 
 
494
@c ------------------------------------------------------------------
 
495
@node Mettre un d�p�t sur le r�seau
 
496
@section Mettre un d�p�t sur le r�seau
 
497
 
 
498
Vous avez donc un d�p�t et vous voulez le rendre accessible pour tout le
 
499
r�seau.
 
500
 
 
501
Le serveur r�seau primaire de Subversion est httpd d'Apache parlant le
 
502
protocole WebDav/deltaV, qui est un ensemble d'extension � http. Pour plus
 
503
d'information sur DAV, voir @uref{http://www.webdav.org}.
 
504
 
 
505
Pour rendre votre d�p�t accessible depuis le r�seau, vous devez
 
506
@itemize @bullet
 
507
@item
 
508
avoir httpd 2.0 fonctionnant avec le module mod_dav
 
509
@item
 
510
installer le greffon mod_dav_svn pour mod_dav, qui utilise la librairie
 
511
d'acc�s au d�p�t de Subversion
 
512
@item
 
513
configurer votre fichier @file{httpd.conf} pour exporter le d�p�t
 
514
@end itemize
 
515
 
 
516
Vous pouvez accomplir les deux premiers en contruisant httpd et Subversion
 
517
depuis les sources ou en installant un paquetage binaire sur votre
 
518
syst�me. Le second appendice de ce document contient plus d'instruction
 
519
d�taill�es pour le faire. (@xref{Compilation et installation}.) Des
 
520
instructions sont �galement disponibles dans le fichier @file{INSTALL}
 
521
dans les sources de Subversion.
 
522
 
 
523
Dans cette section, nous nous concentrerons sur la configuration de votre
 
524
fichier @file{httpd.conf}.
 
525
 
 
526
Quelque part au d�but de votre fichier de configuration, d�finissez un
 
527
nouveau bloque @samp{Location}:
 
528
 
 
529
@example
 
530
<Location /repos>
 
531
   DAV svn
 
532
   SVNPath /absolute/path/to/myrepos
 
533
</Location>
 
534
@end example
 
535
 
 
536
Ceci rend le d�p�t @file{myrepos} disponible � l'URL
 
537
@url{http://hostname/repos}, sans aucune restriction d'acc�s :
 
538
 
 
539
@itemize @bullet
 
540
@item
 
541
Chaqu'un peut utiliser son client svn pour sortir une copie de travail, ou
 
542
de toute URL qui correspond � un sous-r�pertoire du d�p�t.
 
543
@item
 
544
En pointant un navigateur web ordinaire � l'URL, toute personne peut
 
545
naviger int�rectivement dans la derni�re r�vision.
 
546
@item
 
547
Tout le monte peut remonter des modifications au d�p�t.
 
548
@end itemize
 
549
 
 
550
Si vous voulez restreindre en lecture ou �criture l'acc�s � l'ensemble du
 
551
d�p�t, vous pouvez utiliser les facilit�s de contr�le d'acc�s d'Apache.
 
552
 
 
553
Premi�rement, cr�� un fichier vide qui contiendra les noms d'utilisateur
 
554
et leur mot de passe. Renseign� les noms et les mots de passe crypt�s dans
 
555
le fichier comme ci-dessous:
 
556
 
 
557
@example
 
558
joe:Msr3lKOsYMkpc
 
559
frank:Ety6rZX6P.Cqo
 
560
mary:kV4/mQbu0iq82
 
561
@end example
 
562
 
 
563
Vous pouvez g�n�rer les mots de passe crypt�s en utilisant une commande
 
564
@samp{crypt(3)} standard ou en utilisant l'outil @command{htpasswd}
 
565
pr�sent dans le r�pertoire @file{bin} d'Apache.
 
566
 
 
567
@example
 
568
$ /usr/local/apache2/bin/htpasswd -n sussman
 
569
New password: 
 
570
Re-type new password: 
 
571
sussman:kUqncD/TBbdC6
 
572
@end example
 
573
 
 
574
Puis ajoutez ces quelques lignes dans votre block @samp{<Location>} qui
 
575
pointent sur le fichier des utilisateurs:
 
576
 
 
577
@example
 
578
AuthType Basic
 
579
AuthName "Subversion repository"
 
580
AuthUserFile /path/to/users/file
 
581
@end example
 
582
 
 
583
Si vous voulez restreindre @emph{tout} acc�s au d�p�t, ajouter une ligne
 
584
suppl�mentaire:
 
585
 
 
586
@example
 
587
Require valid-user
 
588
@end example
 
589
 
 
590
Cette ligne fait qu'Apache exigent un utilisateur authentifi� pour toutes
 
591
les requ�tes http � votre d�p�t.
 
592
 
 
593
Pour restreindre les acc�s en �criture uniquement, vous devez exiger un
 
594
utilisateur authentifi� pour toutes les m�thodes de requ�te sauf celles
 
595
qui sont de type lecture seule:
 
596
 
 
597
@example
 
598
<LimitExcept GET PROPFIND OPTIONS REPORT>
 
599
   Require valid-user
 
600
</LimitExcept>
 
601
@end example
 
602
 
 
603
Ou, si vous voulez quelque chose de plus astucieux, vous pouvez cr�er deux
 
604
groupes d'utilisateurs s�par�s, un pour les utilisateurs en lecture, un
 
605
autre pour les utilisateurs en �criture:
 
606
 
 
607
@example
 
608
AuthGroupFile /my/svn/group/file
 
609
 
 
610
<LimitExcept GET PROPFIND OPTIONS REPORT>
 
611
   Require group svn_committers
 
612
</LimitExcept>
 
613
 
 
614
<Limit GET PROPFIND OPTIONS REPORT>
 
615
   Require group svn_committers
 
616
   Require group svn_readers
 
617
</Limit>
 
618
@end example
 
619
 
 
620
Ce ne sont que de simples exemples. Pour un tutorial complet sur les
 
621
contr�le d'acc�s d'Apache, regarder 
 
622
@uref{http://httpd.apache.org/docs-2.0/misc/tutorials.html}.
 
623
 
 
624
Autre remarque: pour que @samp{svn cp} marche (ce qui est actuellement
 
625
impl�ment� comme une requ�te DAV COPY), mod_dav doit �tre capable de
 
626
d�terminer le hostname du serveur. Un moyen standard est d'utiliser la
 
627
directive ServerName d'Apache pour fixer le hostname du serveur.
 
628
 
 
629
Ndt: si UseCanonicalName d'apache est sur off il n'est pas forc�ment
 
630
n�cessaire de renseigner ServerName. Je vous conseile d'essayer en
 
631
premier ``UseCanonicalName Off'' qui pose moins de probl�me lors des
 
632
redirections par Apache.
 
633
 
 
634
Editez votre @file{httpd.conf} pour inclure:
 
635
 
 
636
@example
 
637
ServerName svn.myserver.org
 
638
@end example 
 
639
 
 
640
Si vous utilisez le ``virtual hosting'' d'apache avec la directive
 
641
@samp{NameVirtualHost}, vous pourrez avoir besoin d'utiliser la directive
 
642
@samp{ServerAlias} pour sp�cifier des noms additionnels par lesquels votre
 
643
serveur est connu.
 
644
 
 
645
Si vous n'est pas familier avec une directive d'Apache, ou pas tr�s s�r
 
646
de ce qu'elle fait, n'h�sitez pas � consulter la documentation:
 
647
@uref{http://httpd.apache.org/docs-2.0/mod/directives.html}.
 
648
 
 
649
Vous pouvez tester votre d�p�t export� en lan�ant httpd:
 
650
 
 
651
@example
 
652
$ /usr/local/apache2/bin/apachectl stop
 
653
$ /usr/local/apache2/bin/apachectl start
 
654
@end example
 
655
 
 
656
Contr�ler @file{/usr/local/apache2/logs/error_log} pour �tre s�re que sont
 
657
d�marrage est OK. Essayez une sortie via le r�seau de votre d�p�t:
 
658
 
 
659
@example
 
660
$ svn co http://localhost/repos wc
 
661
@end example
 
662
 
 
663
La raison la plus commune pour que cel� ne marche pas est un probl�me de
 
664
permission de lecture/�criture des fichiers db du d�p�t. Assurez-vous que
 
665
l'utilisateur ``nobody'' (ou un autre UID utilis� par le processus httpd)
 
666
a les permissions de lecture et �criture aux fichiers Berkeley DB! C'est
 
667
le probl�me le plus courant.
 
668
 
 
669
Vous pouvez voire toute les ``plaintes'' de mod_dav_svn dans le fichier
 
670
d'erreur d'Apache, @file{/usr/local/apache2/logs/error_log} ou ailleur
 
671
en fonction de votre installation d'Apache. Pour plus d'information sur le
 
672
tra�age des probl�mes, regardez ``Debugging the server'' dans le fichier
 
673
@file{HACKING}.
 
674
 
 
675
 
 
676
@c ------------------------------------------------------------------
 
677
@node Migrer un d�p�t
 
678
@section Migrer un d�p�t
 
679
 
 
680
Parfois des situations sp�ciales arrivent o� vous devez d�placer tout
 
681
votre donn�e du syst�me de fichier d'un d�p�t vers un autre. Le sch�ma du
 
682
syst�me de fichier de la base de donn�es a chang� dans une nouvelle
 
683
version de Subversion, ou peut-�tre vous voulez utiliser un moteur de base
 
684
de donn�e diff�rent.
 
685
 
 
686
Quoiqu'il en soit, vos donn�es doivent �tre migr�es vers un nouveau
 
687
d�p�t. Pour le faire, vous avez les commandes @samp{svnadmin dump} et
 
688
@samp{svnadmin load}.
 
689
 
 
690
@samp{svnadmin dump} �crit un flux de vos donn�es de votre d�p�t vers
 
691
la sortie standard (stdout):
 
692
 
 
693
@example
 
694
$ svnadmin dump myrepos > dumpfile
 
695
* Dumped revision 0.
 
696
* Dumped revision 1.
 
697
* Dumped revision 2.
 
698
@dots{}
 
699
@end example
 
700
 
 
701
Ce flux d�crit toutes les r�visions dans votre d�p�t comme un liste de de
 
702
modifications � des noeuds. C'est principalement du texte lisible par un
 
703
humain; mais lorsqu'un contenu de fichier change, le contenu entier est
 
704
envoy� dans le flux. Si vous avez des fichiers binaires ou des propri�t�s
 
705
binaires dans votre d�p�t, ces parties du flux pourront �tre moins lisible
 
706
pour un humain. Plus loin, le flux complet sera appel� un dump.
 
707
 
 
708
Apr�s avoir extrait vos donn�es, vous pouvez d�placer le fichier vers un
 
709
syst�me diff�rent (ou quelque part ou l'environnement utilise une version
 
710
diff�rente de @command{svnadmin} et/ou @file{libsvn_fs.so}), et cr�er un
 
711
``nouveau'' style de d�p�t qui a un nouveau sch�ma ou moteur de base de
 
712
donn�es.
 
713
 
 
714
@example
 
715
$ svnadmin create newrepos
 
716
@end example
 
717
 
 
718
La commande @samp{svnadmin load} est d'entreprendre de lire le dump
 
719
depuis l'entr�e standard (stdin) et de rejouer chaques remont�es:
 
720
 
 
721
@example
 
722
$ svnadmin load newrepos < dumpfile
 
723
<<< Started new txn, based on original revision 1
 
724
     * adding path : A ... done.
 
725
     * adding path : A/B ... done.
 
726
@dots{}
 
727
------- Committed new rev 1 (loaded from original rev 1) >>>
 
728
 
 
729
<<< Started new txn, based on original revision 2
 
730
     * editing path : A/mu ... done.
 
731
     * editing path : A/D/G/rho ... done.
 
732
 
 
733
------- Committed new rev 2 (loaded from original rev 2) >>>
 
734
@end example
 
735
 
 
736
Voil�, vos r�visions ont �t� remont�es dans le nouveau d�p�t.
 
737
 
 
738
@subsection Stupide dump/load astuces
 
739
 
 
740
Les personne que aime ``copiner'' avec Unix peuvent essayer des choses comme
 
741
celles ci:
 
742
@example
 
743
$ svnadmin create newrepos
 
744
$ svnadmin dump myrepos | svnadmin load newrepos
 
745
@end example
 
746
 
 
747
Il est aussi possible de cr�er une s�rie de petits fichiers dump et de les
 
748
charger en s�rie (Dans le cas o� un unique fichier dump est trop grop pour
 
749
rentrer sur le media de sauvegarde). Mais cel� demande un peu de boulot.
 
750
 
 
751
@example
 
752
$ svnadmin dump myrepos 0 2000 > dumpfile1
 
753
$ svnadmin dump myrepos 2000 4000 > dumpfile2
 
754
@end example
 
755
 
 
756
Donc maintenant vous avez deux fichiers de dump. Le premier contient les
 
757
r�vision 0 � 2000, et le second contient les r�visions 2000 � 4000.
 
758
Pourquoi le recouvrement ?
 
759
 
 
760
Voici le pourquoi. La premi�re r�vision extraite par @samp{svnadmin
 
761
dump} est toujours compar�e � la r�vision 0 qui est juste le r�pertoire
 
762
racine @file{/} vide. Ceci signifie que la premi�re r�vision de tout dump
 
763
resemble toujours � une gigantesque liste de noeuds ``ajout�s''. Ce choix
 
764
a �t� fait pour que tout fichier comme @file{dumpfile2} puisse �tre
 
765
directement charg� dans un d�p�t vide.
 
766
 
 
767
Mais il y a un inconv�nient � cet avantage. Lorsque nous voulons charger
 
768
plusieurs fichiers de dump � la suite, Nous devons �tre s�r que chaques
 
769
fichiers se recouvrent par au moins une r�vision. Avant le chargement, la
 
770
premi�re r�vision d'un fichier comme @file{dumpfile2} doit �tre
 
771
@emph{supprim�}, ainsi le fichier commence par une description de la
 
772
r�vision 2001 comme une diff�rence d'arborescence par rapport � la
 
773
r�vision 2000:
 
774
 
 
775
@itemize @bullet
 
776
@item
 
777
Ouvrire le @file{dumpfile2} dans un �diteur
 
778
@item 
 
779
ne @emph{pas} supprimer la ligne d'ent�te
 
780
@samp{SVN-fs-dump-format-version} au d�but du fichier.
 
781
@item
 
782
@emph{supprimer} la premi�re r�vision, qui commence avec un enregistrement
 
783
@samp{Revision-number:}, et qui va jusqu'au prochain bloque
 
784
@samp{Revision-number:}.
 
785
@end itemize
 
786
 
 
787
Une fois que vos fichiers de dump ont �t� proprement ``ajust�s'', vous
 
788
pouvez les charger avec la s�quence:
 
789
 
 
790
@example
 
791
$ svnadmin load newrepos < dumpfile1
 
792
$ svnadmin load newrepos < dumpfile2
 
793
@end example
 
794
 
 
795
@c ------------------------------------------------------------------
 
796
@node WebDAV
 
797
@section WebDAV
 
798
 
 
799
WebDAV est le protocole r�seau utilis� par Subversion. DAV (Distributed
 
800
Authoring and Versioning : publication et versionnement distribu�). Nous
 
801
discuterons ici de ce que cel� signifie pour vous, actuellement et dans le
 
802
futur.
 
803
 
 
804
WebDAV a �t� con�u pour faire du web un medium en lecture/�criture,
 
805
au-lieu d'un medium en lecture seule (comme c'est principalement le cas
 
806
actuellement). La principe de base est que les r�pertoires et les fichiers
 
807
peuvent �tre partag�s � travers le web en utilisant une extension
 
808
standardis�e d'HTTP. La RFC 2518 d�crit l'extension WebDAV d'HTTP, et est
 
809
disponible (avec beaucoup d'autres informations utiles) �
 
810
@uref{http://www.webdav.org/}.
 
811
 
 
812
Actuellement, un grand nombre de gestionnaire de fichier de syst�me
 
813
d'exploitation sont capable de ``monter'' un r�pertoire r�seau utilisant
 
814
WebDAV. Sur Win32, l'Explorateur Windows peut naviguer dans ce qu'il
 
815
app�le un ``Dossier Web'', comme avec d'autres r�pertoires partag�s. Mac
 
816
OS X a �galement cette capacit� comme le navigateur Nautilus de GNOME.
 
817
 
 
818
Cependant, la RFC 2518 n'impl�mente pas compl�tement l'aspet versionnement
 
819
de WebDAV. Un commit� s�par� a cr�� la RFC 3253, connue comme l'extension
 
820
@dfn{DeltaV}  de WebDAV, et disponible � @uref{http://www.webdav.org/deltav/}.
 
821
Ces extensions ajoutent le concept de contr�le de version � HTTP et c'est
 
822
ce qu'utilise Subversion.
 
823
 
 
824
Il est important de comprendre que bien que Subversion utilise DeltaV pour
 
825
communiquer, le client Subversion n'est @emph{pas} un client � usage
 
826
g�n�ral de DeltaV. En fait, il attend des fonctionnalit�es personnalis�es
 
827
du serveur. De m�me, le serveur Subversion n'est pas un serveur � usage
 
828
g�n�ral de DeltaV. Il impl�mente un strict sous-ensemble des
 
829
sp�cifications de DeltaV. Un client WebDAV ou DeltaV pourait tr�s bien
 
830
communiquer avec, mais uniquement si ce client op�re � l'int�rieur de ce
 
831
faisceau �troit de fonctionnalit� que le serveur impl�mente. Les futures
 
832
versions de Subversion apporteront une int�rop�rabilit� plus compl�te de
 
833
WebDAV.
 
834
 
 
835
Au moment de l'�criture de ce guide, la plupart des navigateurs DAV et des
 
836
clients ne supporte pas encore DeltaV; ceci signifie qu'un d�p�t
 
837
Subversion peut uniquement �tre consult� ou mont� uniquement comme une
 
838
ressource en lecture-seule. (une requ�te ``PUT'' HTTP est valide
 
839
lorsqu'elle est envoy�e � un serveur uniquement WebDAV, mais un serveur
 
840
DeltaV tel que mod_dav_svn ne le permet pas. Le client doit utiliser des
 
841
m�thodes sp�ciales de contr�le de version pour �crire sur le serveur.)
 
842
Et, de l'autre c�t�, un client Subversion ne peut pas sortir une copie de
 
843
travail d'un serveur WebDAV g�n�rique; il attend un sous-ensemble
 
844
sp�cifique de fonctionnalit�s DeltaV.
 
845
 
 
846
Pour une description d�taill�e de l'impl�mentation WebDAV de Subversion, voir
 
847
@uref{http://svn.collab.net/repos/svn-repos/trunk/www/webdav-usage.html}.