bring cvs_1.12.13+real.orig.tar.gz into the game, with -I ! -I CVS -kb
[alioth/cvs.git] / doc / i18n / pt_BR / cvs.texinfo
1 \input texinfo  @c -*-texinfo-*-
2 @comment Documentation for CVS.
3 @setfilename cvs.info
4 @macro copyleftnotice
5 @noindent
6 Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
7                        2001, 2002, 2003 Free Software Foundation, Inc.
8
9 @multitable @columnfractions .12 .88
10 @item Portions
11 @item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003 Derek R. Price,
12 @item @tab Copyright @copyright{} 2002, 2003 Ximbiot @url{http://ximbiot.com},
13 @item @tab Copyright @copyright{} 1992, 1993, 1999 Signum Support AB,
14 @item @tab and Copyright @copyright{} others.
15 @end multitable
16
17 @ignore
18 Permission is granted to process this file through Tex and print the
19 results, provided the printed document carries copying permission
20 notice identical to this one except for the removal of this paragraph
21 (this paragraph not being relevant to the printed manual).
22
23 @end ignore
24 Permission is granted to make and distribute verbatim copies of
25 this manual provided the copyright notice and this permission notice
26 are preserved on all copies.
27
28 Permission is granted to copy and distribute modified versions of this
29 manual under the conditions for verbatim copying, provided also that the
30 entire resulting derived work is distributed under the terms of a
31 permission notice identical to this one.
32
33 Permission is granted to copy and distribute translations of this manual
34 into another language, under the above conditions for modified versions,
35 except that this permission notice may be stated in a translation
36 approved by the Free Software Foundation.
37 @end macro
38
39 @comment This file is part of the CVS distribution.
40
41 @comment CVS is free software; you can redistribute it and/or modify
42 @comment it under the terms of the GNU General Public License as published by
43 @comment the Free Software Foundation; either version 2, or (at your option)
44 @comment any later version.
45
46 @comment CVS is distributed in the hope that it will be useful,
47 @comment but WITHOUT ANY WARRANTY; without even the implied warranty of
48 @comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
49 @comment GNU General Public License for more details.
50
51 @c See ../README for A4 vs. US letter size.
52 @c When we provided A4 postscript, and people tried to
53 @c print it on US letter, the usual complaint was that the
54 @c page numbers would get cut off.
55 @c If one prints US letter on A4, reportedly there is
56 @c some extra space at the top and/or bottom, and the side
57 @c margins are a bit narrow, but no text is lost.
58 @c
59 @c See
60 @c http://www.ft.uni-erlangen.de/~mskuhn/iso-paper.html
61 @c for more on paper sizes.  Insuring that margins are
62 @c big enough to print on either A4 or US letter does
63 @c indeed seem to be the usual approach (RFC2346).
64
65 @c This document seems to get overfull hboxes with some
66 @c frequency (probably because the tendency is to
67 @c sanity-check it with "make info" and run TeX less
68 @c often).  The big ugly boxes just seem to add insult
69 @c to injury, and I'm not aware of them helping to fix
70 @c the overfull hboxes at all.
71 @finalout
72
73 @c ???@include version.texi???
74 @settitle CVS---Concurrent Versions System v@c ???@value{VERSION}???
75 @setchapternewpage odd
76
77 @c -- TODO list:
78 @c -- Fix all lines that match "^@c -- "
79 @c -- Also places marked with FIXME should be manual
80 @c problems (as opposed to FIXCVS for CVS problems).
81
82 @c @splitrcskeyword{} is used to avoid keyword expansion.  It is replaced by
83 @c @asis when generating info and dvi, and by <i></i> in the generated html,
84 @c such that keywords are not expanded in the generated html. 
85 @ifnothtml
86 @macro splitrcskeyword {arg}
87 @asis{}\arg\
88 @end macro
89 @end ifnothtml
90
91 @ifhtml
92 @macro splitrcskeyword {arg}
93 @i{}\arg\
94 @end macro
95 @end ifhtml
96
97 @dircategory GNU Packages
98 @direntry
99 * CVS: (cvs).                   Concurrent Versions System
100 @end direntry
101 @dircategory Individual utilities
102 @direntry
103 * cvs: (cvs)CVS commands.       Concurrent Versions System
104 @end direntry
105
106 @comment The titlepage section does not appear in the Info file.
107 @titlepage
108 @sp 4
109 @comment The title is printed in a large font.
110 @center @titlefont{Version Management}
111 @sp
112 @center @titlefont{with}
113 @sp
114 @center @titlefont{CVS}
115 @sp 2
116 @center for @sc{cvs} @c ???@value{VERSION}???
117 @comment -release-
118 @sp 3
119 @center Per Cederqvist et al
120
121 @comment  The following two commands start the copyright page
122 @comment  for the printed manual.  This will not appear in the Info file.
123 @page
124 @vskip 0pt plus 1filll
125 @copyleftnotice
126 @end titlepage
127
128 @comment ================================================================
129 @comment                   The real text starts here
130 @comment ================================================================
131
132 @ifnottex
133 @c ---------------------------------------------------------------------
134 @node    Top
135 @top
136
137 @c <en> This info manual describes how to use and administer
138 Esta página manual ensina a como usar e administrar o
139 @c <en> @sc{cvs} version @value{VERSION}.
140 @sc{cvs} versão @c ???@value{VERSION}???.
141 @end ifnottex
142
143 @ifinfo
144 @copyleftnotice
145 @end ifinfo
146
147 @c This menu is pretty long.  Not sure how easily that
148 @c can be fixed (no brilliant ideas right away)...
149 @menu
150 @c <en>* Overview::                    An introduction to CVS
151 * Visão Geral::                 Uma introdução ao CVS
152 @c <en>* Repository::                  Where all your sources are stored
153 * Repositório::                 Onde todos os seus fontes são guardados
154 @c <en>* Starting a new project::      Starting a project with CVS
155 * Começando um novo projeto::   Começando um projeto com CVS
156 @c <en>* Revisions::                   Numeric and symbolic names for revisions
157 * Revisões::                    Nomes numéricos e simbólicos para revisões
158 @c <en>* Branching and merging::       Diverging/rejoining branches of development
159 * Ramificando e mesclando::     Divergindo/reunindo ramos de desenvolvimento
160 @c <en>* Recursive behavior::          CVS descends directories
161 * Comportamento recursivo::     CVS adentra nos diretórios
162 @c <en>* Adding and removing::         Adding/removing/renaming files/directories
163 * Adicionando e removendo::     Adicionando/apagando/renomeando arquivos/diretórios
164 @c <en>* History browsing::            Viewing the history of files in various ways
165 * Navegação no Histórico::      Vendo o histórico dos arquivos de várias formas
166
167 @c <en>CVS and the Real World.
168 CVS e o mundo Real.
169 -----------------------
170 @c <en>* Binary files::                CVS can handle binary files
171 * Arquivos binários::             CVS pode lidar com arquivos binários
172 @c <en>* Multiple developers::         How CVS helps a group of developers
173 * Múltiplos desenvolvedores::     Como CVS ajuda um grupo de desenvolvedores
174 @c <en>* Revision management::         Policy questions for revision management
175 * Gerenciamento de revisões::     Questões de política para gerenciamento de revisões
176 @c <en>* Keyword substitution::        CVS can include the revision inside the file
177 * Substituição de palavra-chave:: CVS inclui a revisão dentro do arquivo
178 @c <en>* Tracking sources::            Tracking third-party sources
179 * Acompanhando fontes::           Acompanhando fontes de terceiros
180 @c <en>* Builds::                      Issues related to CVS and builds
181 * Builds::                        Issues related to CVS and builds
182 @c <en>* Special Files::                Devices, links and other non-regular files
183 * Arquivos especiais::            Dispositivos, ligações e outros arquivos diferentes
184
185 @c <en>References.
186 Referências.
187 -----------
188 @c <en>* CVS commands::                CVS commands share some things
189 * Comandos do CVS::            Comandos do CVS têm algo em comum
190 @c <en>* Invoking CVS::                Quick reference to CVS commands
191 * Chamando o CVS::             Referência rápida aos comandos do CVS
192 @c <en>* Administrative files::        Reference manual for the Administrative files
193 * Arquivos administrativos::   Manual de referência para os arquivos administrativos
194 @c <en>* Environment variables::       All environment variables which affect CVS
195 * Variáveis de ambiente::      Todas as variáveis de ambiente que afetam o CVS
196 @c <en>* Compatibility::               Upgrading CVS versions
197 * Compatibilidade::            Upgrading CVS versions
198 @c <en>* Troubleshooting::             Some tips when nothing works
199 * Resolução de problemas::     Algumas dicas quando nada funciona
200 @c <en>* Credits::                     Some of the contributors to this manual
201 * Créditos::                   Alguns dos contribuidores deste manual
202 @c <en>* BUGS::                        Dealing with bugs in CVS or this manual
203 * Paus::                       Lidando com paus no CVS ou neste manual
204 @c <en>* Index::                       Index
205 * Indice::                     Índice
206 @end menu
207
208 @c ---------------------------------------------------------------------
209 @c <en>@node Overview
210 @c <en>@chapter Overview
211 @c <en>@cindex Overview
212 @node Visão Geral
213 @chapter Visão Geral
214 @cindex Visão Geral
215
216 @c <en>This chapter is for people who have never used
217 @c <en>@sc{cvs}, and perhaps have never used version control
218 @c <en>software before.
219 Este capítulo é para aqueles que nunca usaram o
220 @sc{cvs} antes, e talvez nunca tenham usado um programa
221 de controle de versões antes.
222
223 @c <en>If you are already familiar with @sc{cvs} and are just
224 @c <en>trying to learn a particular feature or remember a
225 @c <en>certain command, you can probably skip everything here.
226 Se você já conhece o @sc{cvs} e está apenas tentando
227 aprender sobre uma habilidade em particular ou lembrar
228 um certo comando, você provavelmente pode pular tudo
229 aqui.
230
231 @menu
232 @c <en>* What is CVS?::                What you can do with @sc{cvs}
233 * O que é CVS?::                O que você pode fazer com @sc{cvs}
234 @c <en>* What is CVS not?::            Problems @sc{cvs} doesn't try to solve
235 * O que CVS não é?::            Problemas que o @sc{cvs} não tenta resolver
236 @c <en>* A sample session::            A tour of basic @sc{cvs} usage
237 * Uma sessão de exemplo::          Um tour pelo uso básico do @sc{cvs}
238 @end menu
239
240 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
241 @c <en>@node What is CVS?
242 @c <en>@section What is CVS?
243 @c <en>@cindex What is CVS?
244 @c <en>@cindex Introduction to CVS
245 @c <en>@cindex CVS, introduction to
246 @node O que é CVS?
247 @section O que é CVS?
248 @cindex O que é CVS?
249 @cindex Introdução ao CVS
250 @cindex CVS, introdução ao
251
252 @c <en>@sc{cvs} is a version control system.  Using it, you can
253 @c <en>record the history of your source files.
254 @sc{cvs} é um sistema de controle de versões.  Ao
255 usá-lo, você pode registrar a história dos seus códigos
256 fonte.
257
258 @c -- ///
259 @c -- ///Those who cannot remember the past are condemned to repeat it.
260 @c -- ///               -- George Santayana
261 @c -- //////
262
263 @c -- Insert history  quote here!
264 @c <en>For example, bugs sometimes creep in when
265 @c <en>software is modified, and you might not detect the bug
266 @c <en>until a long time after you make the modification.
267 @c <en>With @sc{cvs}, you can easily retrieve old versions to see
268 @c <en>exactly which change caused the bug.  This can
269 @c <en>sometimes be a big help.
270 Por exemplo, às vezes aparecem erros quando um programa
271 é modificado e você não detecta o problema até muito
272 tempo depois de você ter feito a modificação.  Com
273 @sc{cvs}, você pode recuperar versões antigas para ver
274 exatamente o que causou o erro.  Isto às vezes é de
275 grande ajuda.
276
277 @c <en>You could of course save every version of every file
278 @c <en>you have ever created.  This would
279 @c <en>however waste an enormous amount of disk space.  @sc{cvs}
280 @c <en>stores all the versions of a file in a single file in a
281 @c <en>clever way that only stores the differences between
282 @c <en>versions.
283 Você pode, é claro, salvar toda versão de todo arquivo
284 que um dia você criou.  Mas isto vai consumir um enorme
285 espaço no disco.  O @sc{cvs} guarda todas as versões de um
286 arquivo em um único arquivo em uma forma inteligente
287 que guarda apenas as diferenças entre versões.
288
289 @c <en>@sc{cvs} also helps you if you are part of a group of people working
290 @c <en>on the same project.  It is all too easy to overwrite
291 @c <en>each others' changes unless you are extremely careful.
292 @c <en>Some editors, like @sc{gnu} Emacs, try to make sure that
293 @c <en>the same file is never modified by two people at the
294 @c <en>same time.  Unfortunately, if someone is using another
295 @c <en>editor, that safeguard will not work.  @sc{cvs} solves this problem
296 @c <en>by insulating the different developers from each other.  Every
297 @c <en>developer works in his own directory, and @sc{cvs} merges
298 @c <en>the work when each developer is done.
299 @sc{cvs} também ajuda se você é parte de um grupo de
300 pessoas trabalhando no mesmo projeto.  É muito fácil uns
301 sobreescreverem as mudanças de outros se não forem
302 extremamente cuidadosos.  Alguns editores, como o
303 @sc{gnu} Emacs, tentam se certificar de que o mesmo
304 arquivo nunca seja modificado por duas pessoas ao mesmo
305 tempo.  Infelizmente, se alguém estiver usando outro
306 editor, está segurança não vai funcionar.  O @sc{cvs}
307 resolve este problema isolando os desenvolvedores uns
308 dos outros.  Todo desenvolvedor trabalha em seu próprio
309 diretório e o @sc{cvs} mescla o trabalho quando cada
310 desenvolvedor tiver terminado.
311
312 @c <en>@cindex History of CVS
313 @cindex História do CVS
314 @c <en>@cindex CVS, history of
315 @cindex CVS, história do
316 @c <en>@cindex Credits (CVS program)
317 @cindex Créditos (programa CVS)
318 @c <en>@cindex Contributors (CVS program)
319 @cindex Contribuidores (programa CVS)
320 @c <en>@sc{cvs} started out as a bunch of shell scripts written by
321 @c <en>Dick Grune, posted to the newsgroup
322 @c <en>@code{comp.sources.unix} in the volume 6
323 @c <en>release of July, 1986.  While no actual code from
324 @c <en>these shell scripts is present in the current version
325 @c <en>of @sc{cvs} much of the @sc{cvs} conflict resolution algorithms
326 @c <en>come from them.
327 @sc{cvs} começou como um monte de shell scripts
328 escritos por Dick Grune, postados no newsgroup
329 @code{comp.sources.unix} no volume 6, de Julho de
330 1986.  Na verdade, nenhum código daqueles scripts está
331 presente na versão atual do @sc{cvs}, mas muito dos
332 algoritmos de resolução de conflitos do @sc{cvs} vem
333 deles.
334
335 @c <en>In April, 1989, Brian Berliner designed and coded @sc{cvs}.
336 @c <en>Jeff Polk later helped Brian with the design of the @sc{cvs}
337 @c <en>module and vendor branch support.
338 Em abril de 1989, Brian Berliner projetou e codificou
339 @sc{cvs}.  Depois, Jeff Polk ajudou Brian com o projeto
340 do módulo @sc{cvs} e o suporte ao ramo do fornecedor.
341
342 @c <en>@cindex Source, getting CVS source
343 @cindex Fontes, adquirindo os fontes do CVS
344 @c <en>You can get @sc{cvs} in a variety of ways, including
345 @c <en>free download from the internet.  For more information
346 @c <en>on downloading @sc{cvs} and other @sc{cvs} topics, see:
347 Você pode conseguir o @sc{cvs} de várias formas,
348 inclusive baixando gratuitamente da internet.  Para
349 maiores informações sobre baixar o @sc{cvs} e para
350 outros tópicos sobre @sc{cvs}, veja:
351
352 @example
353 @url{http://cvs.nongnu.org/}
354 @end example
355
356 @c <en>@cindex Mailing list
357 @cindex Lista de Discussão
358 @c <en>@cindex List, mailing list
359 @cindex Lista, lista de discussão
360 @c <en>@cindex Newsgroups
361 @cindex Newsgroups
362 @c <en>There is a mailing list, known as @email{info-cvs@@nongnu.org},
363 @c <en>devoted to @sc{cvs}.  To subscribe or
364 @c <en>unsubscribe
365 @c <en>write to
366 @c <en>@email{info-cvs-request@@nongnu.org}.
367 @c <en>If you prefer a usenet group, there is a one-way mirror (posts to the email
368 @c <en>list are usually sent to the news group, but not visa versa) of
369 @c <en>@email{info-cvs@@nongnu.org} at @url{news:gnu.cvs.help}.  The right
370 @c <en>usenet group for posts is @url{news:comp.software.config-mgmt} which is for
371 @c <en>@sc{cvs} discussions (along with other configuration
372 @c <en>management systems).  In the future, it might be
373 @c <en>possible to create a
374 @c <en>@code{comp.software.config-mgmt.cvs}, but probably only
375 @c <en>if there is sufficient @sc{cvs} traffic on
376 @c <en>@url{news:comp.software.config-mgmt}.
377 Existe uma lista de discussão, conhecida como @email{info-cvs@@nongnu.org},
378 dedicada ao @sc{cvs}.  Para se cadastrar ou descadastrar nela
379 escreva para @email{info-cvs-request@@nongnu.org}.  Se você
380 preferir um grupo de usenet, existe um espelho de mão
381 única (postagens para a lista de email são usualmente
382 mandadas para o news group, mas não vice-versa) da lista
383 @email{info-cvs@@nongnu.org} em @url{news:gnu.cvs.help}.  O
384 grupo usenet correto para postagens é o
385 @url{news:comp.software.config-mgmt} que é para
386 discussões sobre @sc{cvs} (juntamente com outros
387 sistemas de gerência de configuração).  No futuro, poderá ser criada uma
388 @code{comp.software.config-mgmt.cvs}, mas apenas se
389 houver bastante tráfego sobre o @sc{cvs} na
390 @url{news:comp.software.config-mgmt}.
391 @c Other random data is that the tale was very
392 @c skeptical of comp.software.config-mgmt.cvs when the
393 @c subject came up around 1995 or so (for one
394 @c thing, because creating it would be a "reorg" which
395 @c would need to take a more comprehensive look at the
396 @c whole comp.software.config-mgmt.* hierarchy).
397
398 @c <en>You can also subscribe to the @email{bug-cvs@@nongnu.org} mailing list,
399 @c <en>described in more detail in @ref{BUGS}.  To subscribe
400 @c <en>send mail to @email{bug-cvs-request@@nongnu.org}.  There is a two-way
401 @c <en>usenet mirror (posts to the usenet group are usually sent to the email list and
402 @c <en>visa versa) of @email{bug-cvs@@nongnu.org} named @url{news:gnu.cvs.bug}.
403 Você também pode se cadastrar na lista de discussão
404 @email{bug-cvs@@nongnu.org}, descrita em maiores detalhes
405 em @ref{Paus}.  Para se cadastrar mande um e-mail para
406 @email{bug-cvs-request@@nongnu.org}.  Existe um espelho
407 usenet de mão-dupla (postagens para o grupo usenet são
408 usualmente mandadas para a lista e vice-versa) de
409 @email{bug-cvs@@nongnu.org} chamado
410 @url{news:gnu.cvs.bug}.
411
412 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
413 @c <en>@node What is CVS not?
414 @node O que CVS não é?
415 @c <en>@section What is CVS not?
416 @section O que CVS não é?
417 @c <en>@cindex What is CVS not?
418 @cindex O que CVS não é?
419
420 @c <en>@sc{cvs} can do a lot of things for you, but it does
421 @c <en>not try to be everything for everyone.
422 @sc{cvs} pode fazer várias coisas para você, mas não
423 tenta fazer tudo para todo mundo.
424
425 @table @asis
426 @c <en>@item @sc{cvs} is not a build system.
427 @item @sc{cvs} não é um sistema de construção (build system).
428
429 @c <en>Though the structure of your repository and modules
430 @c <en>file interact with your build system
431 @c <en>(e.g. @file{Makefile}s), they are essentially
432 @c <en>independent.
433 Embora a estrutura do seu repositório e arquivos de
434 módulo interajam com seu sistema de construção
435 (e.g. @file{Makefile}s), eles são essencialmente
436 independentes.
437
438 @c <en>@sc{cvs} does not dictate how you build anything.  It
439 @c <en>merely stores files for retrieval in a tree structure
440 @c <en>you devise.
441 @sc{cvs} não dita como você constroi nada.  Ele apenas
442 guarda arquivos para recuperação numa estrutura de
443 árvore que você concebeu.
444
445 @c <en>@sc{cvs} does not dictate how to use disk space in the
446 @c <en>checked out working directories.  If you write your
447 @c <en>@file{Makefile}s or scripts in every directory so they
448 @c <en>have to know the relative positions of everything else,
449 @c <en>you wind up requiring the entire repository to be
450 @c <en>checked out.
451 @sc{cvs} não dita como usar o espaço em disco em
452 diretórios de trabalho locais.  Se você
453 escreve seus @file{Makefile}s ou scripts em cada
454 diretório, eles têm que saber a posição relativa de
455 todo o resto, logo você acaba tendo que pegar todo o
456 repositório.
457
458 @c <en>If you modularize your work, and construct a build
459 @c <en>system that will share files (via links, mounts,
460 @c <en>@code{VPATH} in @file{Makefile}s, etc.), you can
461 @c <en>arrange your disk usage however you like.
462 Se você modularizar o seu trabalho e fizer um sistema
463 de construção (build) que irá compartilhar arquivos
464 (via links, mounts, @code{VPATH} em @file{Makefile}s,
465 etc.), você pode organizar a sua utilização de disco de
466 qualquer forma.
467
468 @c <en>But you have to remember that @emph{any} such system is
469 @c <en>a lot of work to construct and maintain.  @sc{cvs} does
470 @c <en>not address the issues involved.
471 Mas você tem que lembrar que @emph{qualquer} sistema
472 desse é muito trabalhoso para construir e
473 manter.  O @sc{cvs} não se importa com tais questões.
474
475 @c <en>Of course, you should place the tools created to
476 @c <en>support such a build system (scripts, @file{Makefile}s,
477 @c <en>etc) under @sc{cvs}.
478 Obviamente, você pode botar as ferramentas criadas para
479 auxiliar tal sistema de construção (scripts,
480 @file{Makefile}s, etc) dentro do @sc{cvs}.
481
482 @c <en>Figuring out what files need to be rebuilt when
483 @c <en>something changes is, again, something to be handled
484 @c <en>outside the scope of @sc{cvs}.  One traditional
485 @c <en>approach is to use @code{make} for building, and use
486 @c <en>some automated tool for generating the dependencies which
487 @c <en>@code{make} uses.
488 Definir quais arquivos precisam ser reconstruídos
489 quando algo muda é, novamente, algo para ser visto fora
490 do escopo do @sc{cvs}.  Uma abordagem tradicional é
491 usar o @code{make} para construir, e usar alguma
492 ferramenta automatizada para gerar as dependências que
493 o @code{make} usa.
494
495 @c <en>Veja em @ref{Builds}, for more information on doing builds
496 @c <en>in conjunction with @sc{cvs}.
497 See @ref{Builds}, para mais informações sobre
498 construção com @sc{cvs}.
499
500 @c <en>@item @sc{cvs} is not a substitute for management.
501 @item @sc{cvs} não substitui gerenciamento.
502
503 @c <en>Your managers and project leaders are expected to talk
504 @c <en>to you frequently enough to make certain you are aware
505 @c <en>of schedules, merge points, branch names and release
506 @c <en>dates.  If they don't, @sc{cvs} can't help.
507 Espera-se que seus gerentes e líderes de projetos falem
508 com você com a frequência suficiente para que você
509 saiba de prazos, pontos de mescla, nomes de ramos e
510 datas de lançamento (release).  Se eles não o fizerem, o
511 @sc{cvs} não pode ajudar.
512
513 @c <en>@sc{cvs} is an instrument for making sources dance to
514 @c <en>your tune.  But you are the piper and the composer.  No
515 @c <en>instrument plays itself or writes its own music.
516 @sc{cvs} é um instrumento para fazer o fonte dançar
517 conforme a sua música.  Mas você é o maestro e o
518 compositor.  Nenhum instrumento toca sozinho ou escreve
519 sua própria música.
520
521 @c <en>@item @sc{cvs} is not a substitute for developer communication.
522 @item @sc{cvs} não é um substituto para comunicação entre desenvolvedores.
523
524 @c <en>When faced with conflicts within a single file, most
525 @c <en>developers manage to resolve them without too much
526 @c <en>effort.  But a more general definition of ``conflict''
527 @c <en>includes problems too difficult to solve without
528 @c <en>communication between developers.
529 Quando se deparam com conflitos num único arquivo, a
530 maioria dos desenvolvedores conseguem resolvê-los sem
531 muito esforço.  Mas uma definição mais geral de
532 ``conflito'' inclui problemas tão difíceis de resolver
533 que é necessária a comunicação entre os desenvolvedores.
534
535 @c <en>@sc{cvs} cannot determine when simultaneous changes
536 @c <en>within a single file, or across a whole collection of
537 @c <en>files, will logically conflict with one another.  Its
538 @c <en>concept of a @dfn{conflict} is purely textual, arising
539 @c <en>when two changes to the same base file are near enough
540 @c <en>to spook the merge (i.e. @code{diff3}) command.
541 @sc{cvs} não pode determinar quando é que alterações
542 simultâneas em um arquivo, ou vários, vão conflitar
543 logicamente umas com as outras.  Seu conceito de
544 @dfn{conflito} é puramente textual, surgindo quando
545 duas alterações num mesmo arquivo base são próximas o
546 suficiente para intimidar o comando de mescla
547 (i.e. @code{diff3}).
548
549 @c <en>@sc{cvs} does not claim to help at all in figuring out
550 @c <en>non-textual or distributed conflicts in program logic.
551 @sc{cvs} não se propõe a dar qualquer ajuda quanto a
552 localizar conflitos não-textuais ou distribuídos na
553 lógica de programação.
554
555 @c <en>For example: Say you change the arguments to function
556 @c <en>@code{X} defined in file @file{A}.  At the same time,
557 @c <en>someone edits file @file{B}, adding new calls to
558 @c <en>function @code{X} using the old arguments.  You are
559 @c <en>outside the realm of @sc{cvs}'s competence.
560 Por exemplo: Digamos que você altere os argumentos da
561 função @code{X} definida no arquivo @file{A}.  Neste
562 instante, alguem altera o arquivo @file{B}, adicionando
563 novas chamadas à função @code{X} usando os argumentos
564 antigos.  Vocês estão fora do escopo da competência do
565 @sc{cvs}.
566
567 @c <en>Acquire the habit of reading specs and talking to your
568 @c <en>peers.
569 Adquira o hábito de ler documentação e conversar com
570 seus parceiros.
571
572
573 @c <en>@item @sc{cvs} does not have change control
574 @item @sc{cvs} não tem controle de mudanças
575
576 @c <en>Change control refers to a number of things.  First of
577 @c <en>all it can mean @dfn{bug-tracking}, that is being able
578 @c <en>to keep a database of reported bugs and the status of
579 @c <en>each one (is it fixed?  in what release?  has the bug
580 @c <en>submitter agreed that it is fixed?).  For interfacing
581 @c <en>@sc{cvs} to an external bug-tracking system, see the
582 @c <en>@file{rcsinfo} and @file{verifymsg} files
583 @c <en>(@pxref{Administrative files}).
584 Controle de mudanças se refere a várias coisas.  Em
585 primeiro lugar, pode significar @dfn{bug-tracking
586 (busca de erros)}, que é manter uma base de dados de
587 erros relatados e o status de cada um (foi consertado?
588 em qual lançamento? o submissor do erro concordou que o
589 erro foi corrigido?).  Para fazer a interface do
590 @sc{cvs} com um sistema de bug-tracking externo, veja
591 os arquivos @file{rcsinfo} e @file{verifymsg}
592 (@pxref{Arquivos administrativos}).
593
594 @c <en>Another aspect of change control is keeping track of
595 @c <en>the fact that changes to several files were in fact
596 @c <en>changed together as one logical change.  If you check
597 @c <en>in several files in a single @code{cvs commit}
598 @c <en>operation, @sc{cvs} then forgets that those files were
599 @c <en>checked in together, and the fact that they have the
600 @c <en>same log message is the only thing tying them
601 @c <en>together.  Keeping a @sc{gnu} style @file{ChangeLog}
602 @c <en>can help somewhat.
603 Outra característica de controle de mudanças é manter
604 um controle no fato de que mudanças em vários arquivos
605 foram, de fato, uma única mudança lógica.  Se você
606 devolve vários arquivos numa única operação com
607 @code{cvs commit} (efetivar), @sc{cvs} esquece que os arquivos
608 foram devolvidos juntos, e o fato de eles terem a mesma
609 mensagem de log é a única coisa que os une.  Manter um
610 @file{ChangeLog} no estilo @sc{gnu} pode de certa forma
611 ajudar.
612 @c FIXME: should have an xref to a section which talks
613 @c more about keeping ChangeLog's with CVS, but that
614 @c section hasn't been written yet.
615
616 @c <en>Another aspect of change control, in some systems, is
617 @c <en>the ability to keep track of the status of each
618 @c <en>change.  Some changes have been written by a developer,
619 @c <en>others have been reviewed by a second developer, and so
620 @c <en>on.  Generally, the way to do this with @sc{cvs} is to
621 @c <en>generate a diff (using @code{cvs diff} or @code{diff})
622 @c <en>and email it to someone who can then apply it using the
623 @c <en>@code{patch} utility.  This is very flexible, but
624 @c <en>depends on mechanisms outside @sc{cvs} to make sure
625 @c <en>nothing falls through the cracks.
626 Outro aspecto do controle de mudanças, em alguns
627 sistemas, é a habilidade de se obter informação sobre o
628 status de cada mudança.  Algumas mudanças foram escritas
629 por um certo desenvolvedor, outras foram revisadas por
630 um segundo desenvolvedor, e por aí vai.  Geralmente, a
631 forma de fazer isto com o @sc{cvs} é gerando um diff
632 (usando @code{cvs diff} ou @code{diff}) e mandando por
633 email para alguem que possa resolver as diferenças usando o
634 utilitário @code{patch}.  Isto é muito flexível, mas
635 depende de mecanismos externos ao @sc{cvs} para
636 garantir que nada dê problema.
637
638 @c <en>@item @sc{cvs} is not an automated testing program
639 @item @sc{cvs} não é um programa de testes automático
640
641 @c <en>It should be possible to enforce mandatory use of a
642 @c <en>testsuite using the @code{commitinfo} file.  I haven't
643 @c <en>heard a lot about projects trying to do that or whether
644 @c <en>there are subtle gotchas, however.
645 é possível reforçar o uso obrigatório de uma suíte de
646 testes usando o arquivo @code{commitinfo}.  Eu nunca
647 ouvi falar muito sobre projetos que tentam fazer isto,
648 ou se existem armadilhas sutís nestes casos.
649
650 @c <en>@item @sc{cvs} does not have a builtin process model
651 @item @sc{cvs} não tem um modelo de processo inerente
652
653 @c <en>Some systems provide ways to ensure that changes or
654 @c <en>releases go through various steps, with various
655 @c <en>approvals as needed.  Generally, one can accomplish
656 @c <en>this with @sc{cvs} but it might be a little more work.
657 @c <en>In some cases you'll want to use the @file{commitinfo},
658 @c <en>@file{loginfo}, @file{rcsinfo}, or @file{verifymsg}
659 @c <en>files, to require that certain steps be performed
660 @c <en>before cvs will allow a checkin.  Also consider whether
661 @c <en>features such as branches and tags can be used to
662 @c <en>perform tasks such as doing work in a development tree
663 @c <en>and then merging certain changes over to a stable tree
664 @c <en>only once they have been proven.
665 alguns sistemas fornecem formas de garantir que
666 mudanças ou lançamentos sigam vários passos, com várias
667 aprovações obrigatórias.  Geralmente, pode-se obter
668 isto com o @sc{cvs}, mas acarreta em um pouco mais de
669 trabalho.  Em alguns casos você vai querer usar o
670 arquivo @file{commitinfo}, @file{loginfo},
671 @file{rcsinfo}, ou @file{verifymsg} para exigir que
672 certos passos sejam executados antes que o cvs permita
673 uma devolução (checkin).  Também considere se
674 características tais como ramos e etiquetas (tags) podem ser usadas
675 para realizar tarefas como desenvolver numa árvore de
676 desenvolvimento e então mesclar certas mudanças numa
677 árvore estável apenas quando eles tenham sido confirmados.
678 @end table
679
680 @c ---------------------------------------------------------------------
681 @c <en>@node A sample session
682 @node Uma sessão de exemplo
683 @c <en>@section A sample session
684 @section Uma sessão de exemplo
685 @c <en>@cindex Example of a work-session
686 @cindex Exemplo de uma sessão de trabalho
687 @c <en>@cindex Getting started
688 @cindex Iniciando
689 @c <en>@cindex Work-session, example of
690 @cindex Sessão de trabalho, exemplo de uma
691 @c <en>@cindex tc, Trivial Compiler (example)
692 @cindex tc, Trivial Compiler (Compilador trivial) (exemplo)
693 @c <en>@cindex Trivial Compiler (example)
694 @cindex Trivial Compiler (Compilador trivial) (exemplo)
695
696 @c I think an example is a pretty good way to start.  But
697 @c somewhere in here, maybe after the sample session,
698 @c we need something which is kind of
699 @c a "roadmap" which is more directed at sketching out
700 @c the functionality of CVS and pointing people to
701 @c various other parts of the manual.  As it stands now
702 @c people who read in order get dumped right into all
703 @c manner of hair regarding remote repositories,
704 @c creating a repository, etc.
705 @c
706 @c The following was in the old Basic concepts node.  I don't
707 @c know how good a job it does at introducing modules,
708 @c or whether they need to be introduced so soon, but
709 @c something of this sort might go into some
710 @c introductory material somewhere.
711 @ignore
712 @cindex Modules (intro)
713 The repository contains directories and files, in an
714 arbitrary tree.  The @dfn{modules} feature can be used
715 to group together a set of directories or files into a
716 single entity (@pxref{modules}).  A typical usage is to
717 define one module per project.
718 @end ignore
719
720 @c <en>As a way of introducing @sc{cvs}, we'll go through a
721 @c <en>typical work-session using @sc{cvs}.  The first thing
722 @c <en>to understand is that @sc{cvs} stores all files in a
723 @c <en>centralized @dfn{repository} (@pxref{Repository}); this
724 @c <en>section assumes that a repository is set up.
725 Vamos apresentar o @sc{cvs} usando numa sessão de
726 trabalho típica.  A primeira coisa a saber é que
727 @sc{cvs} guarda todos os arquivos em um
728 @dfn{repository} centralizado (@pxref{Repositório});
729 esta sessão assume que um repositório esteja ativo.
730 @c I'm not sure that the sentence concerning the
731 @c repository quite tells the user what they need to
732 @c know at this point.  Might need to expand on "centralized"
733 @c slightly (maybe not here, maybe further down in the example?)
734
735 @c <en>Suppose you are working on a simple compiler.  The source
736 @c <en>consists of a handful of C files and a @file{Makefile}.
737 @c <en>The compiler is called @samp{tc} (Trivial Compiler),
738 @c <en>and the repository is set up so that there is a module
739 @c <en>called @samp{tc}.
740 Suponha que você esteja trabalhando num compilador
741 simples.  O fonte é um monte de arquivos C e um
742 @file{Makefile}.  O compilador é chamado @samp{tc}
743 (Trivial Compiler, ou Compilador trivial), e o repositório é feito de
744 forma que exista um módulo chamado @samp{tc}.
745
746 @menu
747 @c <en>* Getting the source::          Creating a workspace
748 * Obtendo os fontes::           Criando uma área de trabalho
749 @c <en>* Committing your changes::     Making your work available to others
750 * Efetivando suas alterações::  Disponibilizando seu trabalho para outros
751 @c <en>* Cleaning up::                 Cleaning up
752 * Limpando::                    Limpando
753 @c <en>* Viewing differences::         Viewing differences
754 * Vendo as diferenças::         Vendo as diferenças
755 @end menu
756
757 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
758 @c <en>@node Getting the source
759 @node Obtendo os fontes
760 @c <en>@subsection Getting the source
761 @subsection Obtendo os fontes
762 @c <en>@cindex Getting the source
763 @cindex Obtendo os fontes
764 @c <en>@cindex Checking out source
765 @cindex Pegando emprestado os fontes
766 @c <en>@cindex Fetching source
767 @cindex Recuperando os fontes
768 @c <en>@cindex Source, getting from CVS
769 @cindex Fonte, pegando do CVS
770 @c <en>@cindex Checkout, example
771 @cindex Checkout, exemplo
772
773 @c <en>The first thing you must do is to get your own working copy of the
774 @c <en>source for @samp{tc}.  For this, you use the @code{checkout} command:
775 A primeira coisa a fazer é pegar sua própria cópia de
776 trabalho dos fontes de @samp{tc}.  Para isto, use o comando
777 @code{checkout} (pegar emprestado):
778
779 @example
780 $ cvs checkout tc
781 @end example
782
783 @noindent
784 @c <en>This will create a new directory called @file{tc} and populate it with
785 @c <en>the source files.
786 Isto vai criar um novo diretório chamado @file{tc} e
787 povoa-lo com os fontes.
788
789 @example
790 $ cd tc
791 $ ls
792 CVS         Makefile    backend.c   driver.c    frontend.c  parser.c
793 @end example
794
795 @c <en>The @file{CVS} directory is used internally by
796 @c <en>@sc{cvs}.  Normally, you should not modify or remove
797 @c <en>any of the files in it.
798 O diretório @file{CVS} é usado internamente pelo
799 @sc{cvs}.  Normalmente, você não deve modificar ou
800 remover quaisquer arquivos dele.
801
802 @c <en>You start your favorite editor, hack away at @file{backend.c}, and a couple
803 @c <en>of hours later you have added an optimization pass to the compiler.
804 @c <en>A note to @sc{rcs} and @sc{sccs} users: There is no need to lock the files that
805 @c <en>you want to edit.  @xref{Multiple developers}, for an explanation.
806 Você abre o seu editor favorito, trabalha no arquivo
807 @file{backend.c}, e algumas horas depois você deixou o
808 compilador mais otimizado.  Uma observação para usuários
809 de @sc{rcs} e @sc{sccs}: Não é necessário travar (lock)
810 os arquivos que você quer editar.  @xref{Múltiplos
811 desenvolvedores}, para uma explicação.
812
813 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
814 @c <en>@node Committing your changes
815 @node Efetivando suas alterações
816 @c <en>@subsection Committing your changes
817 @subsection Efetivando suas alterações
818 @c <en>@cindex Committing changes to files
819 @cindex Efetivando mudanças nos arquivos
820 @c <en>@cindex Log message entry
821 @cindex Registro de mensagens de log
822
823 @c <en>When you have checked that the compiler is still compilable you decide
824 @c <en>to make a new version of @file{backend.c}.  This will
825 @c <en>store your new @file{backend.c} in the repository and
826 @c <en>make it available to anyone else who is using that same
827 @c <en>repository.
828 Quando você se certificar que o compilador ainda é
829 compilável você decide criar uma nova versão de
830 @file{backend.c}.  Tal ato vai botar o seu novo
831 @file{backend.c} no repositório e torná-lo disponível
832 para qualquer outra pessoa que esteja usando o mesmo
833 repositório.
834
835 @example
836 $ cvs commit backend.c
837 @end example
838
839 @noindent
840 @c <en>@sc{cvs} starts an editor, to allow you to enter a log
841 @c <en>message.  You type in ``Added an optimization pass.'',
842 @c <en>save the temporary file, and exit the editor.
843 @sc{cvs} inicia um editor, para que você possa digitar
844 uma messagem de log.  Você digita ``Uma otimização adicionada.'',
845 salva o arquivo temporário e sai do editor.
846
847 @c <en>@cindex CVSEDITOR, environment variable
848 @cindex CVSEDITOR, variável de ambiente
849 @c <en>@cindex EDITOR, environment variable
850 @cindex EDITOR, variável de ambiente
851 @c <en>The environment variable @code{$CVSEDITOR} determines
852 @c <en>which editor is started.  If @code{$CVSEDITOR} is not
853 @c <en>set, then if the environment variable @code{$EDITOR} is
854 @c <en>set, it will be used. If both @code{$CVSEDITOR} and
855 @c <en>@code{$EDITOR} are not set then there is a default
856 @c <en>which will vary with your operating system, for example
857 @c <en>@code{vi} for unix or @code{notepad} for Windows
858 @c <en>NT/95.
859 A variável de ambiente @code{$CVSEDITOR} determina qual
860 editor vai ser aberto.  Se @code{$CVSEDITOR} não existe,
861 e se a variável de ambiente @code{$EDITOR} existe, esta
862 última é usada.  Se nenhuma das duas @code{$CVSEDITOR} e
863 @code{$EDITOR} existem então o padrão vai variar
864 dependendo do sistema operacional, por exemplo,
865 @code{vi} para unix ou @code{notepad} para Windows
866 NT/95.
867
868 @c <en>@cindex VISUAL, environment variable
869 @cindex VISUAL, variável de ambiente
870 @c <en>In addition, @sc{cvs} checks the @code{$VISUAL} environment
871 @c <en>variable.  Opinions vary on whether this behavior is desirable and
872 @c <en>whether future releases of @sc{cvs} should check @code{$VISUAL} or
873 @c <en>ignore it.  You will be OK either way if you make sure that
874 @c <en>@code{$VISUAL} is either unset or set to the same thing as
875 @c <en>@code{$EDITOR}.
876 Adicionalmente, @sc{cvs} busca pela variável de
877 ambiente @code{$VISUAL}.  Isto gera duas opiniões
878 divergentes, se este é um comportamento desejável ou se
879 releases futuras do @sc{cvs} devem verificar
880 @code{$VISUAL} ou ignorá-la.  Você vai estar OK se não
881 tiver a variável @code{$VISUAL} ou se ela for igual à
882 @code{$EDITOR}.
883
884 @c This probably should go into some new node
885 @c containing detailed info on the editor, rather than
886 @c the intro.  In fact, perhaps some of the stuff with
887 @c CVSEDITOR and -m and so on should too.
888 @c <en>When @sc{cvs} starts the editor, it includes a list of
889 @c <en>files which are modified.  For the @sc{cvs} client,
890 @c <en>this list is based on comparing the modification time
891 @c <en>of the file against the modification time that the file
892 @c <en>had when it was last gotten or updated.  Therefore, if
893 @c <en>a file's modification time has changed but its contents
894 @c <en>have not, it will show up as modified.  The simplest
895 @c <en>way to handle this is simply not to worry about it---if
896 @c <en>you proceed with the commit @sc{cvs} will detect that
897 @c <en>the contents are not modified and treat it as an
898 @c <en>unmodified file.  The next @code{update} will clue
899 @c <en>@sc{cvs} in to the fact that the file is unmodified,
900 @c <en>and it will reset its stored timestamp so that the file
901 @c <en>will not show up in future editor sessions.
902 Quando o @sc{cvs} inicia o editor, ele inclui uma lista
903 de arquivos que foram modificados.  Para o @sc{cvs}
904 cliente, esta lista é baseada na comparação da data de
905 modificação do arquivo com a data de modificação que o
906 arquivo tinha da última vez que foi pego ou
907 atualizado.  Entretanto, se a data de modificação de um
908 arquivo mudou mas seu conteúdo não, ele vai ser
909 considerado modificado.  A maneira mais fácil de lidar
910 com isto é desconsidarando---se você seguir efetivando,
911 o @sc{cvs} vai notar que o conteúdo está intacto e vai
912 tratar o arquivo como não-modificado.  O próximo
913 @code{update} vai dar a dica para o @sc{cvs} de que o
914 arquivo está igual, e isto vai restaurar a data,
915 fazendo com que o arquivo não apareça nas próximas
916 aparições do editor.
917 @c FIXCVS: Might be nice if "commit" and other commands
918 @c would reset that timestamp too, but currently commit
919 @c doesn't.
920 @c FIXME: Need to talk more about the process of
921 @c prompting for the log message.  Like show an example
922 @c of what it pops up in the editor, for example.  Also
923 @c a discussion of how to get the "a)bort, c)ontinue,
924 @c e)dit" prompt and what to do with it.  Might also
925 @c work in the suggestion that if you want a diff, you
926 @c should make it before running commit (someone
927 @c suggested that the diff pop up in the editor.  I'm
928 @c not sure that is better than telling people to run
929 @c "cvs diff" first if that is what they want, but if
930 @c we want to tell people that, the manual possibly
931 @c should say it).
932
933 @c <en>If you want to avoid
934 @c <en>starting an editor you can specify the log message on
935 @c <en>the command line using the @samp{-m} flag instead, like
936 @c <en>this:
937 Se você quer evitar o aparecimento de um editor, você
938 pode especificar a mensagem de log na linha de comando
939 usando a opção @samp{-m}, desta forma:
940
941 @example
942 $ cvs commit -m "Uma otimização adicionada" backend.c
943 @end example
944
945 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
946 @c <en>@node Cleaning up
947 @node Limpando
948 @c <en>@subsection Cleaning up
949 @subsection Limpando
950 @c <en>@cindex Cleaning up
951 @cindex Limpando
952 @c <en>@cindex Working copy, removing
953 @cindex Cópia de trabalho, removendo
954 @c <en>@cindex Removing your working copy
955 @cindex Removendo sua cópia de trabalho
956 @c <en>@cindex Releasing your working copy
957 @cindex Lançando sua cópia de trabalho
958
959 @c <en>Before you turn to other tasks you decide to remove your working copy of
960 @c <en>tc.  One acceptable way to do that is of course
961 Antes de ir fazer outras tarefas, você decide remover
962 sua cópia de trabalho de tc.  Uma forma aceitável de
963 fazer isto é, obviamente:
964
965 @example
966 $ cd ..
967 $ rm -r tc
968 @end example
969
970 @noindent
971 mas uma forma melhor é usando o comando @code{release} (@pxref{release}):
972
973 @example
974 $ cd ..
975 $ cvs release -d tc
976 M driver.c
977 ? tc
978 You have [1] altered files in this repository.
979 Are you sure you want to release (and delete) directory `tc': n
980 ** `release' aborted by user choice.
981 @end example
982
983 @c <en>The @code{release} command checks that all your modifications have been
984 @c <en>committed.  If history logging is enabled it also makes a note in the
985 @c <en>history file.  @xref{history file}.
986 O comando @code{release} verifica se todas as suas
987 modificações foram efetivadas.  Se o registro
988 histórico (history log) está ativo ele também escreve uma
989 observação no arquivo de histórico.  @xref{arquivo
990 history (histórico)}.
991
992 @c <en>When you use the @samp{-d} flag with @code{release}, it
993 @c <en>also removes your working copy.
994 Quando você usa a opção @samp{-d} com o @code{release},
995 ele também remove a sua cópia de trabalho local.
996
997 @c <en>In the example above, the @code{release} command wrote a couple of lines
998 @c <en>of output.  @samp{? tc} means that the file @file{tc} is unknown to @sc{cvs}.
999 @c <en>That is nothing to worry about: @file{tc} is the executable compiler,
1000 @c <en>and it should not be stored in the repository.  @xref{cvsignore},
1001 @c <en>for information about how to make that warning go away.
1002 @c <en>@xref{release output}, for a complete explanation of
1003 @c <en>all possible output from @code{release}.
1004 No exemplo acima, o comando @code{release} escreve
1005 poucas linhas de saída.  @samp{? tc} significa que o
1006 arquivo @file{tc} é desconhecido pelo @sc{cvs}.  Não há
1007 nada com que se preocupar: @file{tc} é um compilador
1008 executável, e não deve ser guardado no
1009 repositório.  @xref{cvsignore}, para ver como fazer para
1010 sumir com este aviso.  @xref{release output}, para uma
1011 explicação geral de todas as possíveis saídas do
1012 @code{release}.
1013
1014 @c <en>@samp{M driver.c} is more serious.  It means that the
1015 @c <en>file @file{driver.c} has been modified since it was
1016 @c <en>checked out.
1017 @samp{M driver.c} é mais sério.  Significa que o arquivo
1018 @file{driver.c} foi modificado desde quando foi pego.
1019
1020 @c <en>The @code{release} command always finishes by telling
1021 @c <en>you how many modified files you have in your working
1022 @c <en>copy of the sources, and then asks you for confirmation
1023 @c <en>before deleting any files or making any note in the
1024 @c <en>history file.
1025 O comando @code{release} sempre termina dizendo quantos
1026 arquivos modificados você tem em sua cópia de trabalho
1027 dos fontes, e então pergunta por confirmação antes de
1028 apagar qualquer arquivo ou escrever qualquer coisa no
1029 arquivo de histórico.
1030
1031 @c <en>You decide to play it safe and answer @kbd{n @key{RET}}
1032 @c <en>when @code{release} asks for confirmation.
1033 Você decide que executar isto é seguro e responde @kbd{n @key{RET}}
1034 quando @code{release} pede uma confirmação.
1035
1036 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1037 @c <en>@node Viewing differences
1038 @node Vendo as diferenças
1039 @c <en>@subsection Viewing differences
1040 @subsection Vendo diferenças
1041 @c <en>@cindex Viewing differences
1042 @cindex Vendo diferenças
1043 @c <en>@cindex Diff
1044 @cindex Diff
1045
1046 @c <en>You do not remember modifying @file{driver.c}, so you want to see what
1047 @c <en>has happened to that file.
1048 Você não lembra se modificou @file{driver.c}.  Logo,
1049 você precisa ver o que aconteceu com este arquivo.
1050
1051 @example
1052 $ cd tc
1053 $ cvs diff driver.c
1054 @end example
1055
1056 @c <en>This command runs @code{diff} to compare the version of @file{driver.c}
1057 @c <en>that you checked out with your working copy.  When you see the output
1058 @c <en>you remember that you added a command line option that enabled the
1059 @c <en>optimization pass.  You check it in, and release the module.
1060 Este comando roda o @code{diff} para comparar a versão
1061 de @file{driver.c} que você pegou com a da sua cópia de
1062 trabalho.  Quando você vê a saída, você lembra de ter
1063 adicionado uma opção de linha de comando que permite a
1064 otimização.  Você devolve e lança (release) o módulo.
1065 @c FIXME: we haven't yet defined the term "check in".
1066
1067 @example
1068 @c <en>$ cvs commit -m "Added an optimization pass" driver.c
1069 $ cvs commit -m "Uma otimização adicionada" driver.c
1070 Checking in driver.c;
1071 /usr/local/cvsroot/tc/driver.c,v  <--  driver.c
1072 new revision: 1.2; previous revision: 1.1
1073 done
1074 $ cd ..
1075 $ cvs release -d tc
1076 ? tc
1077 You have [0] altered files in this repository.
1078 Are you sure you want to release (and delete) directory `tc': y
1079 @end example
1080
1081 @c ---------------------------------------------------------------------
1082 @c <en>@node Repository
1083 @node Repositório
1084 @c <en>@chapter The Repository
1085 @chapter O Repositório
1086 @c <en>@cindex Repository (intro)
1087 @cindex Repositório (intro)
1088 @c <en>@cindex Repository, example
1089 @cindex Repositório, exemplo
1090 @c <en>@cindex Layout of repository
1091 @cindex Estrutura do repositório
1092 @c <en>@cindex Typical repository
1093 @cindex Repositório típico
1094 @c <en>@cindex /usr/local/cvsroot, as example repository
1095 @cindex /usr/local/cvsroot, como um repositório de exemplo
1096 @c <en>@cindex cvsroot
1097 @cindex cvsroot
1098
1099 @c <en>The @sc{cvs} @dfn{repository} stores a complete copy of
1100 @c <en>all the files and directories which are under version
1101 @c <en>control.
1102 O @dfn{repositório} do @sc{cvs} guarda uma cópia
1103 completa de todos os arquivos e diretórios que estão
1104 sob controle de versão.
1105
1106 @c <en>Normally, you never access any of the files in the
1107 @c <en>repository directly.  Instead, you use @sc{cvs}
1108 @c <en>commands to get your own copy of the files into a
1109 @c <en>@dfn{working directory}, and then
1110 @c <en>work on that copy.  When you've finished a set of
1111 @c <en>changes, you check (or @dfn{commit}) them back into the
1112 @c <en>repository.  The repository then contains the changes
1113 @c <en>which you have made, as well as recording exactly what
1114 @c <en>you changed, when you changed it, and other such
1115 @c <en>information.  Note that the repository is not a
1116 @c <en>subdirectory of the working directory, or vice versa;
1117 @c <en>they should be in separate locations.
1118 Normalmente, você nunca acessa qualquer dos arquivos do
1119 repositório diretamente.  Ao invés disso, você usa os
1120 comandos do @sc{cvs} para pegar emprestada a sua cópia
1121 dos arquivos num @dfn{diretório de trabalho}, e então
1122 trabalhar nesta cópia.  Quando você termina um conjunto
1123 de mudanças, você as @dfn{efetiva} no repositório.  O
1124 repositório então passa a conter as mudanças que você
1125 fez, assim como gravar exatamente o que você fez,
1126 quando você fez e outras informações deste
1127 tipo.  Observe que o repositório não é um subdiretório
1128 do diretório de trabalho nem vice-versa; eles estão em
1129 locais diferentes.
1130 @c Need some example, e.g. repository
1131 @c /usr/local/cvsroot; working directory
1132 @c /home/joe/sources.  But this node is too long
1133 @c as it is; need a little reorganization...
1134
1135 @c <en>@cindex :local:, setting up
1136 @cindex :local:, ajustando
1137 @c <en>@sc{cvs} can access a repository by a variety of
1138 @c <en>means.  It might be on the local computer, or it might
1139 @c <en>be on a computer across the room or across the world.
1140 @c <en>To distinguish various ways to access a repository, the
1141 @c <en>repository name can start with an @dfn{access method}.
1142 @c <en>For example, the access method @code{:local:} means to
1143 @c <en>access a repository directory, so the repository
1144 @c <en>@code{:local:/usr/local/cvsroot} means that the
1145 @c <en>repository is in @file{/usr/local/cvsroot} on the
1146 @c <en>computer running @sc{cvs}.  For information on other
1147 @c <en>access methods, see @ref{Remote repositories}.
1148 @sc{cvs} pode acessar um repositório de várias
1149 formas.  Ele pode estar no mesmo computador, ou num
1150 computador do outro lado da sala, ou do outro lado do
1151 mundo.  Para distinguir as várias formas de acessar um
1152 repositório o seu nome deve começar com um
1153 @dfn{método de acesso}.  Por exemplo, o método de acesso
1154 @code{:local:} significa acessar um diretório que é um
1155 repositório.  Logo, @code{:local:/usr/local/cvsroot}
1156 significa que o repositório está em
1157 @file{/usr/local/cvsroot} no computador rodando
1158 @sc{cvs}.  Para informações sobre outros métodos de
1159 acesso, vá em @ref{Repositórios remotos}.
1160
1161 @c Can se say this more concisely?  Like by passing
1162 @c more of the buck to the Remote repositories node?
1163 @c <en>If the access method is omitted, then if the repository
1164 @c <en>starts with @samp{/}, then @code{:local:} is
1165 @c <en>assumed.  If it does not start with @samp{/} then either
1166 @c <en>@code{:ext:} or @code{:server:} is assumed.  For
1167 @c <en>example, if you have a local repository in
1168 @c <en>@file{/usr/local/cvsroot}, you can use
1169 @c <en>@code{/usr/local/cvsroot} instead of
1170 @c <en>@code{:local:/usr/local/cvsroot}.  But if (under
1171 @c <en>Windows NT, for example) your local repository is
1172 @c <en>@file{c:\src\cvsroot}, then you must specify the access
1173 @c <en>method, as in @code{:local:c:/src/cvsroot}.
1174 Se o método de acesso é omitido e se o repositório
1175 começa com @samp{/}, então assume-se @code{:local:}.  Se
1176 não começa com @samp{/} então ou @code{:ext:} ou
1177 @code{:server:} é assumido.  Por exemplo, se você tem um
1178 repositório local em @file{/usr/local/cvsroot}, você
1179 pode usar @code{/usr/local/cvsroot} ao invés de
1180 @code{:local:/usr/local/cvsroot}.  Mas se (no Windows
1181 NT, por exemplo) seu repositório local é
1182 @file{c:\src\cvsroot}, então você deve especificar o
1183 método de acesso, como em @code{:local:c:/src/cvsroot}.
1184
1185 @c This might appear to go in Repository storage, but
1186 @c actually it is describing something which is quite
1187 @c user-visible, when you do a "cvs co CVSROOT".  This
1188 @c isn't necessary the perfect place for that, though.
1189 @c <en>The repository is split in two parts.  @file{$CVSROOT/CVSROOT} contains
1190 @c <en>administrative files for @sc{cvs}.  The other directories contain the actual
1191 @c <en>user-defined modules.
1192 O repositório é separado em duas
1193 partes.  @file{$CVSROOT/CVSROOT} contém arquivos
1194 administrativos do @sc{cvs}.  Os outros diretórios
1195 contém os módulos definidos pelo usuário.
1196
1197 @menu
1198 @c <en>* Specifying a repository::  Telling CVS where your repository is
1199 * Especificando um repositório::          Dizendo ao CVS onde está o seu repositório
1200 @c <en>* Repository storage::       The structure of the repository
1201 * Armazenamento do repositório::          A estrutura do repositório
1202 @c <en>* Working directory storage:: The structure of working directories
1203 * Armazenamento do Diretório de trabalho:: A estrutura dos diretórios de trabalho
1204 @c <en>* Intro administrative files::  Defining modules
1205 * Intro aos arquivos administrativos:: Definindo módulos
1206 @c <en>* Multiple repositories::       Multiple repositories
1207 * Repositórios múltiplos::             Repositórios múltiplos
1208 @c <en>* Creating a repository::       Creating a repository
1209 * Criando um repositório::             Criando um repositório
1210 @c <en>* Backing up::                  Backing up a repository
1211 * Fazendo backup::                     Criando Backup de um repositório
1212 @c <en>* Moving a repository::         Moving a repository
1213 * Movendo um repositório::             Movendo um repositório
1214 @c <en>* Remote repositories::         Accessing repositories on remote machines
1215 * Repositórios remotos::               Acessando repositórios em máquinas remotas
1216 @c <en>* Read-only access::            Granting read-only access to the repository
1217 * Acesso somente-leitura::             Dando acesso somente-leitura ao repositório
1218 @c <en>* Server temporary directory::  The server creates temporary directories
1219 * Diretório temporário do servidor::   O servidor cria diretórios temporários
1220 @end menu
1221
1222 @c <en>@node Specifying a repository
1223 @node Especificando um repositório
1224 @c <en>@section Telling CVS where your repository is
1225 @section Dizendo ao CVS onde está o seu repositório
1226
1227 @c <en>There are several ways to tell @sc{cvs}
1228 @c <en>where to find the repository.  You can name the
1229 @c <en>repository on the command line explicitly, with the
1230 @c <en>@code{-d} (for "directory") option:
1231 Existem várias formas de dizer ao @sc{cvs} onde
1232 encontrar o repositório.  Você pode dar o nome do
1233 repositório explicitamente na linha de comando, com a
1234 opção @code{-d} (de "diretório"):
1235
1236 @example
1237 cvs -d /usr/local/cvsroot checkout yoyodyne/tc
1238 @end example
1239
1240 @c <en>@cindex .profile, setting CVSROOT in
1241 @cindex .profile, configurando o CVSROOT no
1242 @c <en>@cindex .cshrc, setting CVSROOT in
1243 @cindex .cshrc, configurando o CVSROOT no
1244 @c <en>@cindex .tcshrc, setting CVSROOT in
1245 @cindex .tcshrc, configurando o CVSROOT no
1246 @c <en>@cindex .bashrc, setting CVSROOT in
1247 @cindex .bashrc, configurando o CVSROOT no
1248 @c <en>@cindex CVSROOT, environment variable
1249 @cindex CVSROOT, variável de ambiente
1250 @c <en>        Or you can set the @code{$CVSROOT} environment
1251 @c <en>variable to an absolute path to the root of the
1252 @c <en>repository, @file{/usr/local/cvsroot} in this example.
1253 @c <en>To set @code{$CVSROOT}, @code{csh} and @code{tcsh}
1254 @c <en>users should have this line in their @file{.cshrc} or
1255 @c <en>@file{.tcshrc} files:
1256         Ou você pode ajustar a variável de ambiente
1257 @code{$CVSROOT} para um caminho absoluto para a raiz
1258 (root) do repositório, @file{/usr/local/cvsroot} neste
1259 exemplo.  Para ajustar o @code{$CVSROOT}, usuário de
1260 @code{csh} e @code{tcsh} devem ter esta linha no seu
1261 arquivo @file{.cshrc} ou @file{.tcshrc}:
1262
1263 @example
1264 setenv CVSROOT /usr/local/cvsroot
1265 @end example
1266
1267 @noindent
1268 @c <en>@code{sh} and @code{bash} users should instead have these lines in their
1269 @c <en>@file{.profile} or @file{.bashrc}:
1270 usuários de @code{sh} e @code{bash} devem, por sua vez,
1271 ter estas linhas nos seus @file{.profile} ou @file{.bashrc}:
1272
1273 @example
1274 CVSROOT=/usr/local/cvsroot
1275 export CVSROOT
1276 @end example
1277
1278 @c <en>@cindex Root file, in CVS directory
1279 @cindex O arquivo Root, no diretório CVS
1280 @c <en>@cindex CVS/Root file
1281 @cindex O arquivo CVS/Root
1282 @c <en>        A repository specified with @code{-d} will
1283 @c <en>override the @code{$CVSROOT} environment variable.
1284 @c <en>Once you've checked a working copy out from the
1285 @c <en>repository, it will remember where its repository is
1286 @c <en>(the information is recorded in the
1287 @c <en>@file{CVS/Root} file in the working copy).
1288         Um repositório especificado com @code{-d} se
1289 sobrepõe à variável de ambiente @code{$CVSROOT}.  Uma
1290 vez que você tenha pego emprestada uma cópia de
1291 trabalho do repositório, ela vai se lembrar onde está o
1292 seu repositório (a informação é registrada no arquivo
1293 @file{CVS/Root} na cópia de trabalho).
1294
1295 @c <en>The @code{-d} option and the @file{CVS/Root} file both
1296 @c <en>override the @code{$CVSROOT} environment variable.  If
1297 @c <en>@code{-d} option differs from @file{CVS/Root}, the
1298 @c <en>former is used.  Of course, for proper operation they
1299 @c <en>should be two ways of referring to the same repository.
1300 Tanto a opção @code{-d} quanto o arquivo
1301 @file{CVS/Root} sobreescrevem a variável de ambiente
1302 @code{$CVSROOT}.  Se a opção @code{-d} é diferente do
1303 @file{CVS/Root}, a primeira é usada.  Obviamente, para
1304 operações corretas, elas devem ser duas formas de
1305 referenciar o mesmo repositório.
1306
1307 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1308 @c <en>@node Repository storage
1309 @node Armazenamento do repositório
1310 @c <en>@section How data is stored in the repository
1311 @section Como os dados são guardados no repositório
1312 @c <en>@cindex Repository, how data is stored
1313 @cindex Repositório, como os dados são guardados no
1314
1315 @c <en>For most purposes it isn't important @emph{how}
1316 @c <en>@sc{cvs} stores information in the repository.  In
1317 @c <en>fact, the format has changed in the past, and is likely
1318 @c <en>to change in the future.  Since in almost all cases one
1319 @c <en>accesses the repository via @sc{cvs} commands, such
1320 @c <en>changes need not be disruptive.
1321 Para a maioria das aplicações, não importa @emph{como}
1322 o @sc{cvs} guarda as informações no repositório.  De
1323 fato, o formato mudou no passado, e provavelmente vai
1324 mudar no futuro.  Já que em quase todo os casos o acesso
1325 ao repositório é feito via comandos do @sc{cvs}, tais
1326 mudanças não serão radicais.
1327
1328 @c <en>However, in some cases it may be necessary to
1329 @c <en>understand how @sc{cvs} stores data in the repository,
1330 @c <en>for example you might need to track down @sc{cvs} locks
1331 @c <en>(@pxref{Concurrency}) or you might need to deal with
1332 @c <en>the file permissions appropriate for the repository.
1333 Entretanto, em alguns casos pode ser necessário
1334 entender como o @sc{cvs} guarda os dados no
1335 repositório.  Por exemplo, você pode precisar localizar
1336 travas do @sc{cvs} (@pxref{Concorrência}) ou você pode
1337 precisar lidar com permissões de arquivos apropriadas
1338 para o repositório.
1339
1340 @menu
1341 @c <en>* Repository files::            What files are stored in the repository
1342 * Arquivos do repositório::           Quais arquivos são guardados no repositório
1343 @c <en>* File permissions::            File permissions
1344 * Permissões de arquivos::            Permisões de arquivos
1345 @c <en>* Windows permissions::         Issues specific to Windows
1346 * Permissões no Windows::         Questões específicas ao Windows
1347 @c <en>* Attic::                       Some files are stored in the Attic
1348 * Attic::                       Alguns arquivos são guardados no Attic
1349 @c <en>* CVS in repository::           Additional information in CVS directory
1350 * CVS no repositório::           Informações adicionais no diretório CVS
1351 @c <en>* Locks::                       CVS locks control concurrent accesses
1352 * Travas::                       Travas do CVS controlam acesso concorrente
1353 @c <en>* CVSROOT storage::             A few things about CVSROOT are different
1354 * Armazenamento do CVSROOT::          Umas poucas coisas sobre CVSROOT são diferentes
1355 @end menu
1356
1357 @c <en>@node Repository files
1358 @node Arquivos do repositório
1359 @c <en>@subsection Where files are stored within the repository
1360 @subsection Onde arquivos são guardados dentro do repositório
1361
1362 @c @cindex Filenames, legal
1363 @c @cindex Legal filenames
1364 @c Somewhere we need to say something about legitimate
1365 @c characters in filenames in working directory and
1366 @c repository.  Not "/" (not even on non-unix).  And
1367 @c here is a specific set of issues:
1368 @c      Files starting with a - are handled inconsistently. They can not
1369 @c   be added to a repository with an add command, because it they are
1370 @c   interpreted as a switch. They can appear in a repository if they are
1371 @c   part of a tree that is imported. They can not be removed from the tree
1372 @c   once they are there.
1373 @c Note that "--" *is* supported (as a
1374 @c consequence of using GNU getopt).  Should document
1375 @c this somewhere ("Common options"?).  The other usual technique,
1376 @c "./-foo", isn't as effective, at least for "cvs add"
1377 @c which doesn't support pathnames containing "/".
1378
1379 @c <en>The overall structure of the repository is a directory
1380 @c <en>tree corresponding to the directories in the working
1381 @c <en>directory.  For example, supposing the repository is in
1382 A estrutura geral do repositório é uma árvore de
1383 diretórios correspondendo aos diretórios no diretório
1384 de trabalho.  Por exemplo, suponha que o repositório
1385 está em
1386
1387 @example
1388 /usr/local/cvsroot
1389 @end example
1390
1391 @noindent
1392 @c <en>here is a possible directory tree (showing only the
1393 @c <en>directories):
1394 Aqui está uma possível árvore de diretórios (mostrando
1395 apenas os diretórios):
1396
1397 @example
1398 @t{/usr}
1399  |
1400  +--@t{local}
1401  |   |
1402  |   +--@t{cvsroot}
1403  |   |    |
1404  |   |    +--@t{CVSROOT}
1405 @c <en>          |      (administrative files)
1406           |      (arquivos administrativos)
1407           |
1408           +--@t{gnu}
1409           |   |
1410           |   +--@t{diff}
1411 @c <en>          |   |   (source code to @sc{gnu} diff)
1412           |   |   (código fonte do @sc{gnu} diff)
1413           |   |
1414           |   +--@t{rcs}
1415 @c <en>          |   |   (source code to @sc{rcs})
1416           |   |   (código fonte do @sc{rcs})
1417           |   |
1418           |   +--@t{cvs}
1419 @c <en>          |       (source code to @sc{cvs})
1420           |       (código fonte do @sc{cvs})
1421           |
1422           +--@t{yoyodyne}
1423               |
1424               +--@t{tc}
1425               |    |
1426               |    +--@t{man}
1427               |    |
1428               |    +--@t{testing}
1429               |
1430               +--(other Yoyodyne software)
1431 @end example
1432
1433 @c <en>With the directories are @dfn{history files} for each file
1434 @c <en>under version control.  The name of the history file is
1435 @c <en>the name of the corresponding file with @samp{,v}
1436 @c <en>appended to the end.  Here is what the repository for
1437 @c <en>the @file{yoyodyne/tc} directory might look like:
1438 Nos diretórios estão os @dfn{arquivos de histórico} para
1439 cada arquivo sob controle de versão.  O nome do arquivo
1440 de histórico é o nome do arquivo correspondente com um
1441 @samp{,v} no final.  Aqui está como o repositório do
1442 diretório @file{yoyodyne/tc} deve se parecer:
1443 @c FIXME: Should also mention CVS (CVSREP)
1444 @c FIXME? Should we introduce Attic with an xref to
1445 @c Attic?  Not sure whether that is a good idea or not.
1446 @example
1447   @code{$CVSROOT}
1448     |
1449     +--@t{yoyodyne}
1450     |   |
1451     |   +--@t{tc}
1452     |   |   |
1453             +--@t{Makefile,v}
1454             +--@t{backend.c,v}
1455             +--@t{driver.c,v}
1456             +--@t{frontend.c,v}
1457             +--@t{parser.c,v}
1458             +--@t{man}
1459             |    |
1460             |    +--@t{tc.1,v}
1461             |
1462             +--@t{testing}
1463                  |
1464                  +--@t{testpgm.t,v}
1465                  +--@t{test2.t,v}
1466 @end example
1467
1468 @c <en>@cindex History files
1469 @cindex Arquivos de histórico
1470 @c <en>@cindex RCS history files
1471 @cindex Arquivos de histórico do RCS
1472 @c The first sentence, about what history files
1473 @c contain, is kind of redundant with our intro to what the
1474 @c repository does in node Repository....
1475 @c <en>The history files contain, among other things, enough
1476 @c <en>information to recreate any revision of the file, a log
1477 @c <en>of all commit messages and the user-name of the person
1478 @c <en>who committed the revision.  The history files are
1479 @c <en>known as @dfn{RCS files}, because the first program to
1480 @c <en>store files in that format was a version control system
1481 @c <en>known as @sc{rcs}.  For a full
1482 @c <en>description of the file format, see the @code{man} page
1483 @c <en>@cite{rcsfile(5)}, distributed with @sc{rcs}, or the
1484 @c <en>file @file{doc/RCSFILES} in the @sc{cvs} source
1485 @c <en>distribution.  This
1486 @c <en>file format has become very common---many systems other
1487 @c <en>than @sc{cvs} or @sc{rcs} can at least import history
1488 @c <en>files in this format.
1489 Os arquivos de histórico contém, entre outras coisas,
1490 informações suficientes para recriar qualquer revisão
1491 do arquivo, um log com todas as mensagens ???de
1492 commit??? e o usuário que efetivou (commit) a
1493 @comment This is the same as a "log message", "log entry", or whatever else
1494 @comment you might want to call it.  It is sometimes called a "commit message"
1495 @comment in this manual because it is entered into the log at commit time.
1496 @comment -DRP
1497 revisão.  Os arquivos de histórico são conhecidos como
1498 @dfn{arquivos RCS} (RCS files), pois o primeiro
1499 programa a guardar arquivos neste formato foi o sistema
1500 de controle de versões conhecido como @sc{rcs}.  Para
1501 uma descrição completa do formato de arquivo, leia a
1502 página @code{man} @cite{rcsfile(5)}, distribuída com o
1503 @sc{rcs}, ou o arquivo @file{doc/RCSFILES} na
1504 distribuição dos fontes do @sc{cvs}.  Este formato de
1505 arquivo se tornou muito comum---muitos sistemas além do
1506 @sc{cvs} e do @sc{rcs} podem, pelo menos, importar
1507 arquivos de histórico neste formato.
1508 @c FIXME: Think about including documentation for this
1509 @c rather than citing it?  In the long run, getting
1510 @c this to be a standard (not sure if we can cope with
1511 @c a standards process as formal as IEEE/ANSI/ISO/etc,
1512 @c though...) is the way to go, so maybe citing is
1513 @c better.
1514
1515 @c <en>The @sc{rcs} files used in @sc{cvs} differ in a few
1516 @c <en>ways from the standard format.  The biggest difference
1517 @c <en>is magic branches; for more information see @ref{Magic
1518 @c <en>branch numbers}.  Also in @sc{cvs} the valid tag names
1519 @c <en>are a subset of what @sc{rcs} accepts; for @sc{cvs}'s
1520 @c <en>rules see @ref{Tags}.
1521 Os arquivos @sc{rcs} usados no @sc{cvs} diferem em
1522 algumas poucas coisas do formato padrão.  A maior
1523 diferença são os ramos mágicos; para mais informações
1524 veja em @ref{Números de ramos mágicos}.  Além disso, no
1525 @sc{cvs} os nomes válidos de etiquetas (tags) é um subconjunto dos
1526 que são aceitos pelo @sc{rcs}; para regras do @sc{cvs},
1527 leia em @ref{Etiquetas}.
1528
1529 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1530 @c <en>@node File permissions
1531 @node Permissões de arquivos
1532 @c <en>@subsection File permissions
1533 @subsection Permissões de arquivos
1534 @c -- Move this to @node Creating a repository or similar
1535 @c <en>@cindex Security, file permissions in repository
1536 @cindex Segurança, permissões de arquivos no repositório
1537 @c <en>@cindex File permissions, general
1538 @cindex Permissões de arquivos, geral
1539 @c <en>@cindex Permissions, general
1540 @cindex Permissões, geral
1541 @c FIXME: we need to somehow reflect "permissions in
1542 @c repository" versus "permissions in working
1543 @c directory" in the index entries.
1544 @c <en>@cindex Group, UNIX file permissions, in repository
1545 @cindex Grupo, permissões de arquivos UNIX, no repositório
1546 @c <en>@cindex Read-only files, in repository
1547 @cindex Arquivos somente-leitura, no repositório
1548 @c <en>All @samp{,v} files are created read-only, and you
1549 @c <en>should not change the permission of those files.  The
1550 @c <en>directories inside the repository should be writable by
1551 @c <en>the persons that have permission to modify the files in
1552 @c <en>each directory.  This normally means that you must
1553 @c <en>create a UNIX group (see group(5)) consisting of the
1554 @c <en>persons that are to edit the files in a project, and
1555 @c <en>set up the repository so that it is that group that
1556 @c <en>owns the directory.
1557 @c <en>(On some systems, you also need to set the set-group-ID-on-execution bit
1558 @c <en>on the repository directories (see chmod(1)) so that newly-created files
1559 @c <en>and directories get the group-ID of the parent directory rather than
1560 @c <en>that of the current process.)
1561 Todos os arquivos @samp{,v} são criados
1562 somente-leitura, e você não deve mudar as permissões
1563 destes arquivos.  Os diretórios dentro do repositório
1564 devem dar permissão de escrita para as pessoas que tem
1565 permissão para modificar os arquivos em cada diretório.
1566 Isto normalmente significa que você deve criar um grupo
1567 do UNIX (veja em group(5)) consistindo nas pessoas que
1568 vão editar os arquivos num projeto, e ajustar o
1569 repositório tal que aquele grupo seja o dono do
1570 diretório.  (Em alguns sistemas, você também vai
1571 precisar ajustar o bit set-group-ID-on-execution nos
1572 diretórios do repositório (veja em chmod(1)) de forma
1573 que arquivos e diretório criados recebam o ID de grupo
1574 do diretório pai e não do processo atual.)
1575
1576 @c See also comment in commitinfo node regarding cases
1577 @c which are really awkward with unix groups.
1578
1579 @c <en>This means that you can only control access to files on
1580 @c <en>a per-directory basis.
1581 Isto significa que você pode apenas controlar o acesso
1582 aos arquivos por diretório.
1583
1584 @c <en>Note that users must also have write access to check
1585 @c <en>out files, because @sc{cvs} needs to create lock files
1586 @c <en>(@pxref{Concurrency}).  You can use LockDir in CVSROOT/config
1587 @c <en>to put the lock files somewhere other than in the repository
1588 @c <en>if you want to allow read-only access to some directories
1589 @c <en>(@pxref{config}).
1590 Observe que os usuários devem ter direito de escrita
1591 para pegar arquivos emprestados, já que o @sc{cvs} tem
1592 que criar arquivos de trava (@pxref{Concorrência}).  Você
1593 pode usar LockDir (diretório de trava) no CVSROOT/config
1594 para botar os arquivos de trava num lugar fora do
1595 repositório se você quer permitir acesso
1596 somente-leitura a alguns diretórios (@pxref{config}).
1597
1598 @c CVS seems to use CVSUMASK in picking permissions for
1599 @c val-tags, but maybe we should say more about this.
1600 @c Like val-tags gets created by someone who doesn't
1601 @c have CVSUMASK set right?
1602 @c <en>@cindex CVSROOT/val-tags file, and read-only access to projects
1603 @cindex O arquivo CVSROOT/val-tags, e acesso somente-leitura a projetos
1604 @c <en>@cindex val-tags file, and read-only access to projects
1605 @cindex O arquivo val-tags, e acesso somente-leitura a projetos
1606 @c <en>Also note that users must have write access to the
1607 @c <en>@file{CVSROOT/val-tags} file.  @sc{cvs} uses it to keep
1608 @c <en>track of what tags are valid tag names (it is sometimes
1609 @c <en>updated when tags are used, as well as when they are
1610 @c <en>created).
1611 Observe também que os usuários devem ter permissão de
1612 escrita ao arquivo @file{CVSROOT/val-tags}.  O @sc{cvs} usa
1613 tal arquivo para ter controle sobre quais etiquetas
1614 (tags) são nomes de etiquetas válidos (é às vezes
1615 atualizado quando etiquetas são usadas ou criadas).
1616
1617 @c <en>Each @sc{rcs} file will be owned by the user who last
1618 @c <en>checked it in.  This has little significance; what
1619 @c <en>really matters is who owns the directories.
1620 Cada arquivo @sc{rcs} vai pertencer ao usuário que o
1621 devolveu por último.  Isto tem pouco significado; o que
1622 realmente importa é quem possui os diretórios.
1623
1624 @c <en>@cindex CVSUMASK, environment variable
1625 @cindex CVSUMASK, variável de ambiente
1626 @c <en>@cindex Umask, for repository files
1627 @cindex Umask, para arquivos do repositório
1628 @c <en>@sc{cvs} tries to set up reasonable file permissions
1629 @c <en>for new directories that are added inside the tree, but
1630 @c <en>you must fix the permissions manually when a new
1631 @c <en>directory should have different permissions than its
1632 @c <en>parent directory.  If you set the @code{CVSUMASK}
1633 @c <en>environment variable that will control the file
1634 @c <en>permissions which @sc{cvs} uses in creating directories
1635 @c <en>and/or files in the repository.  @code{CVSUMASK} does
1636 @c <en>not affect the file permissions in the working
1637 @c <en>directory; such files have the permissions which are
1638 @c <en>typical for newly created files, except that sometimes
1639 @c <en>@sc{cvs} creates them read-only (see the sections on
1640 @c <en>watches, @ref{Setting a watch}; -r, @ref{Global
1641 @c <en>options}; or @code{CVSREAD}, @ref{Environment variables}).
1642 O @sc{cvs} tenta ajustar de forma razoável as permissões para novos
1643 diretórios que vão sendo adicionados na árvore, mas
1644 você vai ter que mudar as permissões manualmente quando
1645 um novo diretório deve ter permissões diferentes das do
1646 seu diretório pai.  Se você ajusta a variável de
1647 ambiente @code{CVSUMASK} ela vai controlar as
1648 permissões que o @sc{cvs} usa na criação de diretórios
1649 e/ou arquivos no repositório.  @code{CVSUMASK} não mexe
1650 nas permissões do diretório de trabalho; tais arquivos
1651 têm as permissões que são típicas para novos arquivos,
1652 exceto que algumas vezes o @sc{cvs} cria os arquivos
1653 somente-leitura (veja as seções em ???watches???,
1654 @comment From Webster's:
1655 @comment 1. The act of watching; forbearance of sleep; vigil; wakeful,
1656 @comment    vigilant, or constantly observant attention; close
1657 @comment    observation; guard; preservative or preventive vigilance;
1658 @comment    formerly, a watching or guarding by night.
1659 @comment 
1660 @comment A "watch" in CVS terminology, is the command run to request
1661 @comment notifications of file status changes.  Thus CVS keeps a "watch" on the
1662 @comment file for you and notifies you of changes.  When you have requested
1663 @comment that CVS "watch" several files, it is said to be keeping "watches".
1664 @comment -DRP
1665 @ref{Ajustando um ???watch???}; -r, @ref{Opções globais}; or
1666 @code{CVSREAD}, @ref{Variáveis de ambiente}).
1667 @c FIXME: Need more discussion of which
1668 @c group should own the file in the repository.
1669 @c Include a somewhat detailed example of the usual
1670 @c case where CVSUMASK is 007, the developers are all
1671 @c in a group, and that group owns stuff in the
1672 @c repository.  Need to talk about group ownership of
1673 @c newly-created directories/files (on some unices,
1674 @c such as SunOS4, setting the setgid bit on the
1675 @c directories will make files inherit the directory's
1676 @c group.  On other unices, your mileage may vary.  I
1677 @c can't remember what POSIX says about this, if
1678 @c anything).
1679
1680 @c <en>Note that using the client/server @sc{cvs}
1681 @c <en>(@pxref{Remote repositories}), there is no good way to
1682 @c <en>set @code{CVSUMASK}; the setting on the client machine
1683 @c <en>has no effect.  If you are connecting with @code{rsh}, you
1684 @c <en>can set @code{CVSUMASK} in @file{.bashrc} or @file{.cshrc}, as
1685 @c <en>described in the documentation for your operating
1686 @c <en>system.  This behavior might change in future versions
1687 @c <en>of @sc{cvs}; do not rely on the setting of
1688 @c <en>@code{CVSUMASK} on the client having no effect.
1689 Observe que ao usar o @sc{cvs} cliente/servidor
1690 (@pxref{Repositórios remotos}), não há uma boa maneira
1691 de ajustar o @code{CVSUMASK}; o ajuste na máquina
1692 cliente não tem efeito.  Se você está se conectando com
1693 @code{rsh}, você pode ajustar o @code{CVSUMASK} em
1694 @file{.bashrc} ou @file{.cshrc}, como descrito na
1695 documentação de seu sistema operacional.  Este
1696 comportamento pode mudar em futuras versões do
1697 @sc{cvs}; Não se basear na configuração do @code{CVSUMASK}
1698 no cliente não afeta nada.
1699 @c FIXME: need to explain what a umask is or cite
1700 @c someplace which does.
1701 @c
1702 @c There is also a larger (largely separate) issue
1703 @c about the meaning of CVSUMASK in a non-unix context.
1704 @c For example, whether there is
1705 @c an equivalent which fits better into other
1706 @c protection schemes like POSIX.6, VMS, &c.
1707 @c
1708 @c FIXME: Need one place which discusses this
1709 @c read-only files thing.  Why would one use -r or
1710 @c CVSREAD?  Why would one use watches?  How do they
1711 @c interact?
1712 @c
1713 @c FIXME: We need to state
1714 @c whether using CVSUMASK removes the need for manually
1715 @c fixing permissions (in fact, if we are going to mention
1716 @c manually fixing permission, we better document a lot
1717 @c better just what we mean by "fix").
1718
1719 @c <en>Using pserver, you will generally need stricter
1720 @c <en>permissions on the @sc{cvsroot} directory and
1721 @c <en>directories above it in the tree; see @ref{Password
1722 @c <en>authentication security}.
1723 Quando usar pserver, você deve ser, em geral, mais mais
1724 restritivo com permissões no diretório @sc{cvsroot} e
1725 nos diretórios abaixo dele na árvore; veja em
1726 @ref{Segurança com autenticação por senha}.
1727
1728 @c <en>@cindex Setuid
1729 @cindex Setuid
1730 @c <en>@cindex Setgid
1731 @cindex Setgid
1732 @c <en>@cindex Security, setuid
1733 @cindex Segurança, setuid
1734 @c <en>@cindex Installed images (VMS)
1735 @cindex ???Installed images??? (VMS)
1736 @comment I have no idea what I could tell you to help you translate this since
1737 @comment I know little of the VMS operating system.  Perhaps you could look
1738 @comment this up in some VMS documentation somewhere?
1739 @comment -DRP
1740 @c <en>Some operating systems have features which allow a
1741 @c <en>particular program to run with the ability to perform
1742 @c <en>operations which the caller of the program could not.
1743 @c <en>For example, the set user ID (setuid) or set group ID
1744 @c <en>(setgid) features of unix or the installed image
1745 @c <en>feature of VMS.  @sc{cvs} was not written to use such
1746 @c <en>features and therefore attempting to install @sc{cvs} in
1747 @c <en>this fashion will provide protection against only
1748 @c <en>accidental lapses; anyone who is trying to circumvent
1749 @c <en>the measure will be able to do so, and depending on how
1750 @c <en>you have set it up may gain access to more than just
1751 @c <en>@sc{cvs}.  You may wish to instead consider pserver.  It
1752 @c <en>shares some of the same attributes, in terms of
1753 @c <en>possibly providing a false sense of security or opening
1754 @c <en>security holes wider than the ones you are trying to
1755 @c <en>fix, so read the documentation on pserver security
1756 @c <en>carefully if you are considering this option
1757 @c <en>(@ref{Password authentication security}).
1758 alguns sistemas operacionais têm a habilidade de
1759 permitir que um programa execute com a habilidade de
1760 executar certas operações que quem chamou o programa
1761 não não tem.  Por exemplo, os set user ID (setuid) ou
1762 set group ID (setgid) do unix ou a caracteristica de
1763 installed image do VMS.  @sc{cvs} não foi escrito para
1764 usar tais habilidades, logo, tentar instalar o @sc{cvs}
1765 nesta forma vai gerar proteção apenas contra erros
1766 acidentais; qualquer um que esteja tentando driblar a
1767 segurança vai ser capaz de fazê-lo,
1768 e dependendo de como você configurou, o invasor pode ganhar
1769 acesso até a mais do que apenas o @sc{cvs}.  Você pode
1770 estar considerando o uso do pserver.  Ele compartilha
1771 alguns dos mesmos atributos, em termos de possivelmente
1772 fornecer uma falsa sensação de segurança ou de abrir
1773 buracos de segurança ainda maiores dos que os que você
1774 quer fechar.  Portanto leia a documentação de segurança
1775 com pserver cuidadosamente se você está pensando nesta
1776 opção (@ref{Segurança com autenticação por senha}).
1777
1778 @c <en>@node Windows permissions
1779 @node Permissões no Windows
1780 @c <en>@subsection File Permission issues specific to Windows
1781 @subsection Questões sobre permissões de arquivos específicas ao Windows
1782 @c <en>@cindex Windows, and permissions
1783 @cindex Windows, e permissões
1784 @c <en>@cindex File permissions, Windows-specific
1785 @cindex Permissões de arquivos, específicas ao Windows
1786 @c <en>@cindex Permissions, Windows-specific
1787 @cindex Permissões, específicas ao Windows
1788
1789 @c <en>Some file permission issues are specific to Windows
1790 @c <en>operating systems (Windows 95, Windows NT, and
1791 @c <en>presumably future operating systems in this family.
1792 @c <en>Some of the following might apply to OS/2 but I'm not
1793 @c <en>sure).
1794 Algumas questões sobre permissões de arquivos são
1795 específicas ao sistema operacional Windows (Windows 95,
1796 Windows NT e presumivelmente futuros sistemas
1797 operacionais nesta família.  Algumas coisas abaixo se
1798 aplicam ao OS/2 mas não estou bem certo).
1799
1800 @c <en>If you are using local @sc{cvs} and the repository is on a
1801 @c <en>networked file system which is served by the Samba SMB
1802 @c <en>server, some people have reported problems with
1803 @c <en>permissions.  Enabling WRITE=YES in the samba
1804 @c <en>configuration is said to fix/workaround it.
1805 @c <en>Disclaimer: I haven't investigated enough to know the
1806 @c <en>implications of enabling that option, nor do I know
1807 @c <en>whether there is something which @sc{cvs} could be doing
1808 @c <en>differently in order to avoid the problem.  If you find
1809 @c <en>something out, please let us know as described in
1810 @c <en>@ref{BUGS}.
1811 Se você está usando um @sc{cvs} local e o repositório
1812 está num sistema de arquivos em rede de um servidor
1813 Samba SMB, algumas pessoas relataram problemas com
1814 permissões.  Habilitando WRITE=YES na configuração do
1815 samba conserta/resolve.  ???Disclaimer:??? Eu não
1816 @comment "Webster's Revised Unabridged Dictionary (1913)"
1817 @comment Disclaimer Dis*claim"er, n.
1818 @comment    1. One who disclaims, disowns, or renounces.
1819 @comment 
1820 @comment    2. (Law) A denial, disavowal, or renunciation, as of a title,
1821 @comment       claim, interest, estate, or trust; relinquishment or
1822 @comment       waiver of an interest or estate. --Burrill.
1823 @comment 
1824 @comment    3. A public disavowal, as of pretensions, claims, opinions,
1825 @comment       and the like. --Burke.
1826 @comment 
1827 @comment In other words, "Warning:", or "Caution:", might be appropriate.
1828 @comment -DRP
1829 investiguei o suficiente as implicações de habilitar
1830 esta opção, nem sei se há algo que o @sc{cvs} poderia
1831 fazer de diferente para evitar este problema.  Se você
1832 souber de algo, por favor nos ponha a par como descrito
1833 em @ref{Paus}.
1834
1835 @c <en>@node Attic
1836 @node Attic
1837 @c <en>@subsection The attic
1838 @subsection O attic
1839 @c <en>@cindex Attic
1840 @cindex Attic
1841
1842 @c <en>You will notice that sometimes @sc{cvs} stores an
1843 @c <en>@sc{rcs} file in the @code{Attic}.  For example, if the
1844 @c <en>@sc{cvsroot} is @file{/usr/local/cvsroot} and we are
1845 @c <en>talking about the file @file{backend.c} in the
1846 @c <en>directory @file{yoyodyne/tc}, then the file normally
1847 @c <en>would be in
1848 Você deve ter notado que às vezes o @sc{cvs} guarda um
1849 arquivo @sc{rcs} no @code{Attic}.  Por exemplo, se o
1850 @sc{cvsroot} é @file{/usr/local/cvsroot} e nós estamos
1851 falando sobre o arquivo @file{backend.c} no diretório
1852 @file{yoyodyne/tc}, então o arquivo normalmente deve
1853 estar em
1854
1855 @example
1856 /usr/local/cvsroot/yoyodyne/tc/backend.c,v
1857 @end example
1858
1859 @noindent
1860 @c <en>but if it goes in the attic, it would be in
1861 mas se ele vai para o attic, ele deve estar em
1862
1863 @example
1864 /usr/local/cvsroot/yoyodyne/tc/Attic/backend.c,v
1865 @end example
1866
1867 @noindent
1868 @c <en>@cindex Dead state
1869 @cindex Estado morto
1870 @c <en>.  It should not matter from a user point of
1871 @c <en>view whether a file is in the attic; @sc{cvs} keeps
1872 @c <en>track of this and looks in the attic when it needs to.
1873 @c <en>But in case you want to know, the rule is that the RCS
1874 @c <en>file is stored in the attic if and only if the head
1875 @c <en>revision on the trunk has state @code{dead}.  A
1876 @c <en>@code{dead} state means that file has been removed, or
1877 @c <en>never added, for that revision.  For example, if you
1878 @c <en>add a file on a branch, it will have a trunk revision
1879 @c <en>in @code{dead} state, and a branch revision in a
1880 @c <en>non-@code{dead} state.
1881 ao invés.  Não importa ao usuário onde, dentro do Attic,
1882 fica o arquivo; @sc{cvs} mantém controle disto e busca
1883 no Attic quando é preciso.  Mas caso você queira saber,
1884 a regra é que o arquivo RCS é guardado no attic se e
1885 somente se a ???head revision??? no tronco está no
1886 @comment "Head", at the front, etc.  In this case, refers to the most recent
1887 @comment revision on the trunk, like the head of a snake would be in front.
1888 @comment In English, the "head of a line" is the person in front and the "tail"
1889 @comment the person in back.
1890 @comment -DRP
1891 estado @code{morto} (dead).  Um estado @code{morto} significa
1892 que o arquivo foi removido, ou nunca foi adicionado,
1893 naquela revisão.  Por exemplo, se você adiciona um
1894 arquivo num ramo, ele vai ter uma revisão de
1895 tronco num estado @code{morto} e uma revisão de
1896 ramo num estado não-@code{morto}.
1897 @c Probably should have some more concrete examples
1898 @c here, or somewhere (not sure exactly how we should
1899 @c arrange the discussion of the dead state, versus
1900 @c discussion of the attic).
1901
1902 @c <en>@node CVS in repository
1903 @node CVS no repositório
1904 @c <en>@subsection The CVS directory in the repository
1905 @subsection O diretório CVS no repositório
1906 @c <en>@cindex CVS directory, in repository
1907 @cindex diretório CVS, no repositório
1908
1909 @c <en>The @file{CVS} directory in each repository directory
1910 @c <en>contains information such as file attributes (in a file
1911 @c <en>called @file{CVS/fileattr}.  In the
1912 @c <en>future additional files may be added to this directory,
1913 @c <en>so implementations should silently ignore additional
1914 @c <en>files.
1915 O diretório @file{CVS} em cada diretório do repositório
1916 contém informações tais como atributos de arquivos (num
1917 arquivo chamado @file{CVS/fileattr}.  No futuro novos
1918 arquivos ficarão neste diretório, logo, implementações
1919 devem ignorar em silêncio arquivos adicionais.
1920
1921 @c <en>This behavior is implemented only by @sc{cvs} 1.7 and
1922 @c <en>later; for details see @ref{Watches Compatibility}.
1923 Este comportamento é implementado apenas pelo @sc{cvs}
1924 1.7 e posteriores; para detalhes veja em
1925 @ref{Compatibilidade de ???Watches???}.
1926 @comment As "watches", previously.
1927 @comment -DRP
1928
1929 @c <en>The format of the fileattr file is a series of entries
1930 @c <en>of the following form (where @samp{@{} and @samp{@}}
1931 @c <en>means the text between the braces can be repeated zero
1932 @c <en>or more times):
1933 O formato do arquivo fileattr é uma série de entradas
1934 da seguinte forma (onde @samp{@{} e @samp{@}}
1935 significam que o texto entre chaves pode ser repetido
1936 zero ou várias vezes):
1937
1938 @var{ent-type} @var{filename} <tab> @var{attrname} = @var{attrval}
1939   @{; @var{attrname} = @var{attrval}@} <linefeed>
1940
1941 @c <en>@var{ent-type} is @samp{F} for a file, in which case the entry specifies the
1942 @c <en>attributes for that file.
1943 @var{ent-type} é @samp{F} para arquivo, neste caso a
1944 entrada especifica os atributos para tal arquivo.
1945
1946 @c <en>@var{ent-type} is @samp{D},
1947 @c <en>and @var{filename} empty, to specify default attributes
1948 @c <en>to be used for newly added files.
1949 @var{ent-type} é @samp{D},
1950 e @var{filename} vazio, para especificar atributos
1951 padrão para serem usados em novos arquivos adicionados.
1952
1953 @c <en>Other @var{ent-type} are reserved for future expansion.  @sc{cvs} 1.9 and older
1954 @c <en>will delete them any time it writes file attributes.
1955 @c <en>@sc{cvs} 1.10 and later will preserve them.
1956 Outros @var{ent-type} são reservados para futuras
1957 expansões.  @sc{cvs} 1.9 e anteriores vão deletá-los a
1958 toda hora que ele escrever atributos de
1959 arquivos.  @sc{cvs} 1.10 e posteriores vão preservá-los.
1960
1961 @c <en>Note that the order of the lines is not significant;
1962 @c <en>a program writing the fileattr file may
1963 @c <en>rearrange them at its convenience.
1964 Observe que a ordem das linhas não é significante; um
1965 programa escrevendo o arquivo fileattr pode
1966 rearranjá-las de acordo com sua própria conveniência.
1967
1968 @c <en>There is currently no way of quoting tabs or linefeeds in the
1969 @c <en>filename, @samp{=} in @var{attrname},
1970 @c <en>@samp{;} in @var{attrval}, etc.  Note: some implementations also
1971 @c <en>don't handle a NUL character in any of the fields, but
1972 @c <en>implementations are encouraged to allow it.
1973 Não existe atualmente uma forma de tratar tabulações ou quebras de linha
1974 como caractere no nome do arquivo, @samp{=} em @var{attrname},
1975 @samp{;} em @var{attrval}, etc.  Obs.: algumas
1976 implementações também não manipulam o caractere NUL em
1977 nenhum dos campos, mas encorajamos implementações que
1978 permitam isto.
1979
1980 @c <en>By convention, @var{attrname} starting with @samp{_} is for an attribute given
1981 @c <en>special meaning by @sc{cvs}; other @var{attrname}s are for user-defined attributes
1982 @c <en>(or will be, once implementations start supporting user-defined attributes).
1983 Por convenção, @var{attrname} começando com @samp{_} é
1984 para um atributo ao qual foi dado significado especial
1985 pelo @sc{cvs}; outros @var{attrname}s são para
1986 atributos definidos pelo usuário (ou que vão ser, já
1987 que implementações começaram suporte a atributos
1988 definidos pelo usuário).
1989
1990 @c <en>Builtin attributes:
1991 Atributos internos:
1992
1993 @table @code
1994 @item _watched
1995 @c <en>Present means the file is watched and should be checked out
1996 @c <en>read-only.
1997 Quando presente significa que o arquivo está
1998 ???watched??? (watched) e deve ser emprestado como
1999 @comment As "watches", before.
2000 @comment -DRP
2001 somente-leitura.
2002
2003 @item _watchers
2004 @c <en>Users with watches for this file.  Value is
2005 @c <en>@var{watcher} > @var{type} @{ , @var{watcher} > @var{type} @}
2006 @c <en>where @var{watcher} is a username, and @var{type}
2007 @c <en>is zero or more of edit,unedit,commit separated by
2008 @c <en>@samp{+} (that is, nothing if none; there is no "none" or "all" keyword).
2009 Usuários com ???watches??? para este arquivo.  O valor é
2010 @comment As "watches", before.
2011 @comment -DRP
2012 @var{watcher} > @var{type} @{ , @var{watcher} > @var{type} @}
2013 onde @var{watcher} é um nome de usuário, e @var{type} é
2014 zero ou mais de edit,unedit,commit separados por
2015 @samp{+} (isto é, deixe em branco para nenhum; não há
2016 palavras-chave para "nenhum" ou "todos").
2017
2018 @item _editors
2019 @c <en>Users editing this file.  Value is
2020 @c <en>@var{editor} > @var{val} @{ , @var{editor} > @var{val} @}
2021 @c <en>@c <en>where @var{editor} is a username, and @var{val} is
2022 @c <en>@var{time}+@var{hostname}+@var{pathname}, where
2023 @c <en>@var{time} is when the @code{cvs edit} command (or
2024 @c <en>equivalent) happened,
2025 @c <en>and @var{hostname} and @var{pathname} are for the working directory.
2026 Usuários editando este arquivo.  O valor é
2027 @var{editor} > @var{val} @{ , @var{editor} > @var{val} @}
2028 onde @var{editor} é um username, e @var{val} é
2029 @var{time}+@var{hostname}+@var{pathname}, onde
2030 @var{time} é quando o comando @code{cvs edit} (ou outro
2031 equivalente) aconteceu, e @var{hostname} e
2032 @var{pathname} são do diretório de trabalho.
2033 @end table
2034
2035 Example:
2036
2037 @c FIXME: sanity.sh should contain a similar test case
2038 @c so we can compare this example from something from
2039 @c Real Life(TM).  See cvsclient.texi (under Notify) for more
2040 @c discussion of the date format of _editors.
2041 @example
2042 Ffile1 _watched=;_watchers=joe>edit,mary>commit
2043 Ffile2 _watched=;_editors=sue>8 Jan 1975+workstn1+/home/sue/cvs
2044 D _watched=
2045 @end example
2046
2047 @noindent
2048 @c <en>means that the file @file{file1} should be checked out
2049 @c <en>read-only.  Furthermore, joe is watching for edits and
2050 @c <en>mary is watching for commits.  The file @file{file2}
2051 @c <en>should be checked out read-only; sue started editing it
2052 @c <en>on 8 Jan 1975 in the directory @file{/home/sue/cvs} on
2053 @c <en>the machine @code{workstn1}.  Future files which are
2054 @c <en>added should be checked out read-only.  To represent
2055 @c <en>this example here, we have shown a space after
2056 @c <en>@samp{D}, @samp{Ffile1}, and @samp{Ffile2}, but in fact
2057 @c <en>there must be a single tab character there and no spaces.
2058 significa que o arquivo @file{file1} deve ser pego como
2059 somente-leitura.  Além disso, joe está ???watching???
2060 edições e mary está ???watching??? ???commits???.  O
2061 @comment "Watching", as "watches", before.
2062 @comment "Commits" are checkins, i.e. via the `cvs commit' command.
2063 @comment -DRP
2064 arquivo @file{file2} deve ser pego somente-leitura; sue
2065 comecou a edita-lo em 8 Jan 1975 no diretorio
2066 @file{/home/sue/cvs} na maquina
2067 @code{workstn1}.  Futuros arquivos que forem adicionados
2068 devem ser pegos somente-leitura.  Para representar este
2069 exemplo aqui, nós mostramos um espaco depois de
2070 @samp{D}, @samp{Ffile1}, e @samp{Ffile2}, mas de fato
2071 existe um caractere de tab e nenhum espaco.
2072
2073 @c <en>@node Locks
2074 @node Travas
2075 @c <en>@subsection CVS locks in the repository
2076 @subsection travas CVS no repositório
2077
2078 @c <en>@cindex #cvs.rfl, technical details
2079 @cindex #cvs.rfl, detalhes técnicos
2080 @c <en>@cindex #cvs.pfl, technical details
2081 @cindex #cvs.pfl, detalhes técnicos
2082 @c <en>@cindex #cvs.wfl, technical details
2083 @cindex #cvs.wfl, detalhes técnicos
2084 @c <en>@cindex #cvs.lock, technical details
2085 @cindex #cvs.lock, detalhes técnicos
2086 @c <en>@cindex Locks, cvs, technical details
2087 @cindex Travas, cvs, detalhes técnicos
2088 @c <en>For an introduction to @sc{cvs} locks focusing on
2089 @c <en>user-visible behavior, see @ref{Concurrency}.  The
2090 @c <en>following section is aimed at people who are writing
2091 @c <en>tools which want to access a @sc{cvs} repository without
2092 @c <en>interfering with other tools accessing the same
2093 @c <en>repository.  If you find yourself confused by concepts
2094 @c <en>described here, like @dfn{read lock}, @dfn{write lock},
2095 @c <en>and @dfn{deadlock}, you might consult the literature on
2096 @c <en>operating systems or databases.
2097 Para uma introdução às travas (locks) no @sc{cvs}
2098 focando no comportamento visível ao usuário, veja em
2099 @ref{Concorrência}.  A seção seguinte foi feita para
2100 para pessoas que escrevem ferramentas as quais precisam
2101 acessar um repositório @sc{cvs} sem interferir com
2102 outras ferramentas acessando o mesmo repositório.  Se
2103 você se sentir confuso com os conceitos descritos aqui,
2104 como @dfn{read lock}, @dfn{write lock} e
2105 @dfn{deadlock}, você deve consultar a literatura de
2106 sistemas operacionais e bancos de dados.
2107
2108 @c <en>@cindex #cvs.tfl
2109 @cindex #cvs.tfl
2110 @c <en>Any file in the repository with a name starting
2111 @c <en>with @file{#cvs.rfl.} is a read lock.  Any file in
2112 @c <en>the repository with a name starting with
2113 @c <en>@file{#cvs.pfl} is a promotable read lock.  Any file in
2114 @c <en>the repository with a name starting with
2115 @c <en>@file{#cvs.wfl} is a write lock.  Old versions of @sc{cvs}
2116 @c <en>(before @sc{cvs} 1.5) also created files with names starting
2117 @c <en>with @file{#cvs.tfl}, but they are not discussed here.
2118 @c <en>The directory @file{#cvs.lock} serves as a master
2119 @c <en>lock.  That is, one must obtain this lock first before
2120 @c <en>creating any of the other locks.
2121 Qualquer arquivo no repositório com um nome começando
2122 com @file{#cvs.rfl.} é uma trava de leitura.  Qualquer
2123 arquivo no repositório com um nome comçando com
2124 @file{#cvs.pfl} é uma trava de leitura
2125 ???promotable???.  Qualquer arquivo no repositório com
2126 um nome começando com
2127 @file{#cvs.wfl} é uma trava de escrita.  Versões antigas
2128 do @sc{cvs} (antes do @sc{cvs} 1.5) também criavam
2129 arquivos com nomes começando com @file{#cvs.tfl}, mas
2130 estes não são discutidos aqui.
2131
2132 @c <en>The directory @file{#cvs.lock} serves as a master
2133 @c <en>lock.  That is, one must obtain this lock first before
2134 @c <en>creating any of the other locks.
2135 O diretório @file{#cvs.lock} funciona como uma trava
2136 mestra.  Isto é, deve-se obter esta trava antes de
2137 criar qualquer das outras travas.
2138
2139 @c <en>To obtain a readlock, first create the @file{#cvs.lock}
2140 @c <en>directory.  This operation must be atomic (which should
2141 @c <en>be true for creating a directory under most operating
2142 @c <en>systems).  If it fails because the directory already
2143 @c <en>existed, wait for a while and try again.  After
2144 @c <en>obtaining the @file{#cvs.lock} lock, create a file
2145 @c <en>whose name is @file{#cvs.rfl.} followed by information
2146 @c <en>of your choice (for example, hostname and process
2147 @c <en>identification number).  Then remove the
2148 @c <en>@file{#cvs.lock} directory to release the master lock.
2149 @c <en>Then proceed with reading the repository.  When you are
2150 @c <en>done, remove the @file{#cvs.rfl} file to release the
2151 @c <en>read lock.
2152 Para obter uma trava de leitura, primeiro crie o diretório
2153 @file{#cvs.lock}.  Esta operação deve ser atômica (o
2154 que deve ser verdade para a criação de um diretório na
2155 maioria dos sistemas operacionais).  Se isto falha por
2156 que o diretório já existe, espere um tempinho e tente de
2157 novo.  Depois de obter a trava @file{#cvs.lock}, crie
2158 um arquivo cujo nome seja @file{#cvs.rfl.} seguido pela
2159 informação de sua escolha (por exemplo, nome de host e
2160 nmero de identificaçao de processo).  Então remova o
2161 diretório @file{#cvs.lock} para ativar a trava
2162 mestra.  Então começe a ler o repositório.  Quando você
2163 terminar, remova o arquivo @file{#cvs.rfl} para
2164 liberar a trava de leitura.
2165
2166 @c <en>Promotable read locks are a concept you may not find in other literature on
2167 @c <en>concurrency.  They are used to allow a two (or more) pass process to only lock
2168 @c <en>a file for read on the first (read) pass(es), then upgrade its read locks to
2169 @c <en>write locks if necessary for a final pass, still assured that the files have
2170 @c <en>not changed since they were first read.  @sc{cvs} uses promotable read locks,
2171 @c <en>for example, to prevent commit and tag verification passes from interfering
2172 @c <en>with other reading processes.  It can then lock only a single directory at a
2173 @c <en>time for write during the write pass.
2174 Promotable read locks are a concept you may not find in other literature on
2175 concurrency.  They are used to allow a two (or more) pass process to only lock
2176 a file for read on the first (read) pass(es), then upgrade its read locks to
2177 write locks if necessary for a final pass, still assured that the files have
2178 not changed since they were first read.  @sc{cvs} uses promotable read locks,
2179 for example, to prevent commit and tag verification passes from interfering
2180 with other reading processes.  It can then lock only a single directory at a
2181 time for write during the write pass.
2182
2183 @c <en>To obtain a promotable read lock, first create the @file{#cvs.lock} directory,
2184 @c <en>as with a non-promotable read lock.  Then check
2185 @c <en>that there are no files that start with
2186 @c <en>@file{#cvs.pfl}.  If there are, remove the master @file{#cvs.lock} directory,
2187 @c <en>wait awhile (CVS waits 30 seconds between lock attempts), and try again.  If
2188 @c <en>there are no other promotable locks, go ahead and create a file whose name is
2189 @c <en>@file{#cvs.pfl} followed by information of your choice (for example, CVS uses
2190 @c <en>its hostname and the process identification number of the CVS server process
2191 @c <en>creating the lock).  If versions of @sc{cvs} older than version 1.12.4 access
2192 @c <en>your repository directly (not via a @sc{cvs} server of version 1.12.4 or
2193 @c <en>later), then you should also create a read lock since older versions of CVS
2194 @c <en>will ignore the promotable lock when attempting to create their own write lock.
2195 @c <en>Then remove the master @file{#cvs.lock} directory in order to allow other
2196 @c <en>processes to obtain read locks.
2197 To obtain a promotable read lock, first create the @file{#cvs.lock} directory,
2198 as with a non-promotable read lock.  Then check
2199 that there are no files that start with
2200 @file{#cvs.pfl}.  If there are, remove the master @file{#cvs.lock} directory,
2201 wait awhile (CVS waits 30 seconds between lock attempts), and try again.  If
2202 there are no other promotable locks, go ahead and create a file whose name is
2203 @file{#cvs.pfl} followed by information of your choice (for example, CVS uses
2204 its hostname and the process identification number of the CVS server process
2205 creating the lock).  If versions of @sc{cvs} older than version 1.12.4 access
2206 your repository directly (not via a @sc{cvs} server of version 1.12.4 or
2207 later), then you should also create a read lock since older versions of CVS
2208 will ignore the promotable lock when attempting to create their own write lock.
2209 Then remove the master @file{#cvs.lock} directory in order to allow other
2210 processes to obtain read locks.
2211
2212 @c <en>To obtain a writelock, first create the
2213 @c <en>@file{#cvs.lock} directory, as with readlocks.  Then
2214 @c <en>check that there are no files whose names start with
2215 @c <en>@file{#cvs.rfl.} and no files whose names start with @file{#cvs.pfl} that are
2216 @c <en>not owned by the process attempting to get the write lock.  If either exist,
2217 @c <en>remove @file{#cvs.lock}, wait for a while, and try again.  If
2218 @c <en>there are no readers or promotable locks from other processes, then create a
2219 @c <en>file whose name is @file{#cvs.wfl} followed by information of your choice
2220 @c <en>(again, CVS uses the hostname and server process identification
2221 @c <en>number).  Remove your @file{#cvs.pfl} file if present.  Hang on to the
2222 @c <en>@file{#cvs.lock} lock.  Proceed
2223 @c <en>with writing the repository.  When you are done, first
2224 @c <en>remove the @file{#cvs.wfl} file and then the
2225 @c <en>@file{#cvs.lock} directory. Note that unlike the
2226 @c <en>@file{#cvs.rfl} file, the @file{#cvs.wfl} file is just
2227 @c <en>informational; it has no effect on the locking operation
2228 @c <en>beyond what is provided by holding on to the
2229 @c <en>@file{#cvs.lock} lock itself.
2230 Para obter uma trava de escrita, primeiro crie o
2231 diretório @file{#cvs.lock}, da mesma forma que com as
2232 travas de leitura.  Então verifique se não existem
2233 arquivos cujos nomes começam com @file{#cvs.rfl.} e se
2234 não existem arquivos cujo nome começa com
2235 @file{#cvs.pfl} que não tenha como dono o processo
2236 tentando ter a trava de escrita.  Se ???either???
2237 existe, remova o @file{#cvs.lock}, espere um momento, e
2238 tente de novo.  Se não existem ???readers??? ou travas
2239 ???promotable??? de outros processos, então crie um
2240 arquivo cujo nome é @file{#cvs.wfl} seguido de
2241 informações da sua escolha (novamente, o CVS usa o
2242 hostname e o ???server process identification
2243 number??).  Remove your @file{#cvs.pfl} file if present.  Hang on to the
2244 @file{#cvs.lock} lock.  Escreva no repositório.  Quando
2245 tiver terminado, primeiro remova o arquivo
2246 @file{#cvs.wfl} e então o diretório
2247 @file{#cvs.lock}.  Observe que ao contrário do arquivo
2248 @file{#cvs.rfl}, o  arquivo @file{#cvs.wfl} é apenas
2249 informativo; ele não tem efeito na operação de trava
2250 além do que é feito pelo ato de manter a trava
2251 @file{#cvs.lock}.
2252
2253 @c <en>Note that each lock (writelock or readlock) only locks
2254 @c <en>a single directory in the repository, including
2255 @c <en>@file{Attic} and @file{CVS} but not including
2256 @c <en>subdirectories which represent other directories under
2257 @c <en>version control.  To lock an entire tree, you need to
2258 @c <en>lock each directory (note that if you fail to obtain
2259 @c <en>any lock you need, you must release the whole tree
2260 @c <en>before waiting and trying again, to avoid deadlocks).
2261 Observe que cada trava (de escrita ou leitura) apenas trava um
2262 único diretório no
2263 repositório, inclusive no caso do @file{Attic} e do @file{CVS}
2264 sem incluir os subdiretórios que representam outros
2265 diretórios sob controle de versão.  Para travar uma
2266 árvore inteira, voc precisa travar cada diretório
2267 (observe que se você não conseguir obter alguma trava
2268 que você precise, você deve liberar a árvore toda antes
2269 para esperar e tentar novamente, para evitar ???deadlocks???).
2270 @comment "Deadlock" is a computer science term which refers to the scenario
2271 @comment where two processes end up waiting on each other in such a way that
2272 @comment neither will ever get the lock and therefore neither process will
2273 @comment ever run again, and therefore both are said to be "dead".
2274 @comment 
2275 @comment For example, say process 1 wants to lock files "A" and "B", and so
2276 @comment does process 2.  If process 1 locks "A" first, and process 2 locks
2277 @comment file "B" first, then process begins waiting to lock "B" while process
2278 @comment 2 waits to lock "A", then both processes will wait indefinately, a
2279 @comment commonly encountered problem with file locking, especially for
2280 @comment inexperienced programmers.
2281 @comment -DRP
2282
2283 @c <en>Note also that @sc{cvs} expects writelocks to control
2284 @c <en>access to individual @file{foo,v} files.  @sc{rcs} has
2285 @c <en>a scheme where the @file{,foo,} file serves as a lock,
2286 @c <en>but @sc{cvs} does not implement it and so taking out a
2287 @c <en>@sc{cvs} writelock is recommended.  See the comments at
2288 @c <en>rcs_internal_lockfile in the @sc{cvs} source code for
2289 @c <en>further discussion/rationale.
2290 Observe também que o @sc{cvs} espera travas de escrita
2291 para controlar o acesso a arquivos @file{foo,v}
2292 individuais.  O @sc{rcs} tem um esquema onde o arquivo
2293 @file{,foo,} funciona como uma trava, mas o @sc{cvs}
2294 não implementa isso.  Portanto, fazer uma trava de escrita
2295 no @sc{cvs} é recomendado.  Veja os comentários no
2296 rcs_internal_lockfile no código fonte do @sc{cvs} para
2297 mais discussões/explicações.
2298
2299 @c <en>@node CVSROOT storage
2300 @node Armazenamento do CVSROOT
2301 @c <en>@subsection How files are stored in the CVSROOT directory
2302 @subsection Como os arquivos são guardados no diretório CVSROOT
2303 @c <en>@cindex CVSROOT, storage of files
2304 @cindex CVSROOT, armazenamento de arquivos
2305
2306 @c <en>The @file{$CVSROOT/CVSROOT} directory contains the
2307 @c <en>various administrative files.  In some ways this
2308 @c <en>directory is just like any other directory in the
2309 @c <en>repository; it contains @sc{rcs} files whose names end
2310 @c <en>in @samp{,v}, and many of the @sc{cvs} commands operate
2311 @c <en>on it the same way.  However, there are a few
2312 @c <en>differences.
2313 O diretório @file{$CVSROOT/CVSROOT} contém os vários
2314 arquivos administrativos.  Em alguns aspectos este
2315 diretório é igual a qualquer outro diretório no
2316 repositório; ele contém arquivos @sc{rcs} cujos nomes
2317 terminam em @samp{,v}, e muitos dos comandos do
2318 @sc{cvs} operam neles do mesmo jeito.  Entretanto,
2319 existem algumas poucas diferenças.
2320
2321 @c <en>For each administrative file, in addition to the
2322 @c <en>@sc{rcs} file, there is also a checked out copy of the
2323 @c <en>file.  For example, there is an @sc{rcs} file
2324 @c <en>@file{loginfo,v} and a file @file{loginfo} which
2325 @c <en>contains the latest revision contained in
2326 @c <en>@file{loginfo,v}.  When you check in an administrative
2327 @c <en>file, @sc{cvs} should print
2328 Para cada arquivo administrativo, além do arquivo
2329 @sc{rcs}, existe também uma cópia de trabalho do
2330 arquivo.  Por exemplo, existe um arquivo @sc{rcs}
2331 @file{loginfo,v} e um arquivo @file{loginfo} que contém
2332 a ultima revisão contida em @file{loginfo,v}.  Quando
2333 você devolve um arquivo administrativo, o @sc{cvs} vai
2334 mostrar
2335
2336 @example
2337 cvs commit: Rebuilding administrative file database
2338 @end example
2339
2340 @noindent
2341 @c <en>and update the checked out copy in
2342 @c <en>@file{$CVSROOT/CVSROOT}.  If it does not, there is
2343 @c <en>something wrong (@pxref{BUGS}).  To add your own files
2344 @c <en>to the files to be updated in this fashion, you can add
2345 @c <en>them to the @file{checkoutlist} administrative file
2346 @c <en>(@pxref{checkoutlist}).
2347 e atualizar a cópia de trabalho em
2348 @file{$CVSROOT/CVSROOT}.  Se não fizer, tem algo errado
2349 (@pxref{Paus}).  Para adicionar os seus próprios
2350 arquivos aos arquivos a serem atualizados desta
2351 maneira, você pode adicioná-los ao arquivo
2352 administrativo  @file{checkoutlist}
2353 (@pxref{checkoutlist}).
2354
2355 @c <en>@cindex modules.db
2356 @cindex modules.db
2357 @c <en>@cindex modules.pag
2358 @cindex modules.pag
2359 @c <en>@cindex modules.dir
2360 @cindex modules.dir
2361 @c <en>By default, the @file{modules} file behaves as
2362 @c <en>described above.  If the modules file is very large,
2363 @c <en>storing it as a flat text file may make looking up
2364 @c <en>modules slow (I'm not sure whether this is as much of a
2365 @c <en>concern now as when @sc{cvs} first evolved this
2366 @c <en>feature; I haven't seen benchmarks).  Therefore, by
2367 @c <en>making appropriate edits to the @sc{cvs} source code
2368 @c <en>one can store the modules file in a database which
2369 @c <en>implements the @code{ndbm} interface, such as Berkeley
2370 @c <en>db or GDBM.  If this option is in use, then the modules
2371 @c <en>database will be stored in the files @file{modules.db},
2372 @c <en>@file{modules.pag}, and/or @file{modules.dir}.
2373 Por padrão o arquivo @file{modules} se comporta como
2374 descrito acima.  Se o arquivo modules é muito grande,
2375 guardar ele como um arquivo de texto normal faz a busca
2376 por módulos lenta (Não estou bem certo se isso importa
2377 tanto agora como quando o @sc{cvs} primeiramente
2378 desenvolveu esta habilidade; não vi avaliações).
2379 Entretanto, fazendo edições apropriadas no código fonte
2380 do @sc{cvs} pode-se guardar o arquivo modules num banco
2381 de dados que implementa a interface @code{ndbm}, tais
2382 como o Berkeley db ou GDBM.  Se esta opção está em uso,
2383 então o banco de dados modules será guardado nos
2384 arquivos @file{modules.db}, @file{modules.pag}, e/ou @file{modules.dir}.
2385 @c I think fileattr also will use the database stuff.
2386 @c Anything else?
2387
2388 @c <en>For information on the meaning of the various
2389 @c <en>administrative files, see @ref{Administrative files}.
2390 Para informações sobre o significado dos vários arquivos administrativos,
2391 veja em @ref{Arquivos administrativos}.
2392
2393 @c <en>@node Working directory storage
2394 @node Armazenamento do Diretório de trabalho
2395 @c <en>@section How data is stored in the working directory
2396 @section Como os dados são guardados no diretório de trabalho
2397
2398 @c FIXME: Somewhere we should discuss timestamps (test
2399 @c case "stamps" in sanity.sh).  But not here.  Maybe
2400 @c in some kind of "working directory" chapter which
2401 @c would encompass the "Builds" one?  But I'm not sure
2402 @c whether that is a good organization (is it based on
2403 @c what the user wants to do?).
2404
2405 @c <en>@cindex CVS directory, in working directory
2406 @cindex diretório CVS, no diretório de trabalho
2407 @c <en>While we are discussing @sc{cvs} internals which may
2408 @c <en>become visible from time to time, we might as well talk
2409 @c <en>about what @sc{cvs} puts in the @file{CVS} directories
2410 @c <en>in the working directories.  As with the repository,
2411 @c <en>@sc{cvs} handles this information and one can usually
2412 @c <en>access it via @sc{cvs} commands.  But in some cases it
2413 @c <en>may be useful to look at it, and other programs, such
2414 @c <en>as the @code{jCVS} graphical user interface or the
2415 @c <en>@code{VC} package for emacs, may need to look at it.
2416 @c <en>Such programs should follow the recommendations in this
2417 @c <en>section if they hope to be able to work with other
2418 @c <en>programs which use those files, including future
2419 @c <en>versions of the programs just mentioned and the
2420 @c <en>command-line @sc{cvs} client.
2421 Assim como estamos conversando sobre as entranhas do
2422 @sc{cvs}, que podem ficar visíveis de tempos em tempos,
2423 também devemos falar sobre o que o @sc{cvs} bota nos
2424 diretórios @file{CVS} nos diretórios de trabalho.
2425 Assim como com o repositório, o @sc{cvs} manipula esta
2426 informação e pode-se acessá-la normalmente via comandos
2427 @sc{cvs}.  Mas em alguns casos pode ser útil dar uma
2428 olhada, e outros programas, como a interface de usuário
2429 gráfica @code{jCVS} ou o pacote para emacs @code{VC},
2430 precisarem ver o que tem lá.  Tais programas devem
2431 seguir as recomendações nesta seção se eles querem
2432 interagir com outros programas que usam estes arquivos,
2433 inclusive versões futuras dos programas mencinados logo
2434 acima e o  cliente em linha-de-comando do @sc{cvs}.
2435
2436 @c <en>The @file{CVS} directory contains several files.
2437 @c <en>Programs which are reading this directory should
2438 @c <en>silently ignore files which are in the directory but
2439 @c <en>which are not documented here, to allow for future
2440 @c <en>expansion.
2441 O diretório @file{CVS} contém vários
2442 arquivos.  Programas que estão lendo este diretório
2443 devem ignorar em silêncio arquivos que encontrem no
2444 diretório mas que não estejam documentados aqui, para
2445 permitir expansões futuras.
2446
2447 @c <en>The files are stored according to the text file
2448 @c <en>convention for the system in question.  This means that
2449 @c <en>working directories are not portable between systems
2450 @c <en>with differing conventions for storing text files.
2451 @c <en>This is intentional, on the theory that the files being
2452 @c <en>managed by @sc{cvs} probably will not be portable between
2453 @c <en>such systems either.
2454 Os arquivos são guardados de acordo com a convenção de
2455 arquivo de texto do sistema em questão.  Isto significa
2456 que diretórios de trabalho não são portáveis entre
2457 sistemas com diferentes convenções para armazenar
2458 arquivos de texto.  Isto é de propósito, baseado na
2459 teoria de que os arquivos sendo gerenciados pelo
2460 @sc{cvs} provavelmente também não seriam portáveis
2461 entre tais sistemas.
2462
2463 @table @file
2464 @item Root
2465 @c <en>This file contains the current @sc{cvs} root, as
2466 @c <en>described in @ref{Specifying a repository}.
2467 Este arquivo contém a raiz atual do @sc{cvs}, como
2468 descrito em @ref{Especificando um repositório}.
2469
2470 @c <en>@cindex Repository file, in CVS directory
2471 @cindex O arquivo Repository, no diretório CVS
2472 @c <en>@cindex CVS/Repository file
2473 @cindex O arquivo CVS/Repository
2474 @c <en>@item Repository
2475 @item Repositório
2476 @c <en>This file contains the directory within the repository
2477 @c <en>which the current directory corresponds with.  It can
2478 @c <en>be either an absolute pathname or a relative pathname;
2479 @c <en>@sc{cvs} has had the ability to read either format
2480 @c <en>since at least version 1.3 or so.  The relative
2481 @c <en>pathname is relative to the root, and is the more
2482 @c <en>sensible approach, but the absolute pathname is quite
2483 @c <en>common and implementations should accept either.  For
2484 @c <en>example, after the command
2485 Este arquivo contém o diretório no qual está o
2486 repositório correspondente ao diretório atual.  Pode
2487 ser um caminho absoluto ou relativo; @sc{cvs} adquiriu
2488 a habilidade de ler ambos os formatos desde a versão
2489 1.3.  O caminho é relativo à raiz (root), e é a
2490 abordagem mais racional, mas o caminho absoluto é
2491 mais comum e ambos devem ser aceitos.  Por exemplo,
2492 depois do comando
2493
2494 @example
2495 cvs -d :local:/usr/local/cvsroot checkout yoyodyne/tc
2496 @end example
2497
2498 @noindent
2499 @c <en>@file{Root} will contain
2500 o @file{Root} vai conter
2501
2502 @example
2503 :local:/usr/local/cvsroot
2504 @end example
2505
2506 @noindent
2507 @c <en>and @file{Repository} will contain either
2508 e o @file{Repositório} vai conter ou
2509
2510 @example
2511 /usr/local/cvsroot/yoyodyne/tc
2512 @end example
2513
2514 @noindent
2515 @c <en>or
2516 ou
2517
2518 @example
2519 yoyodyne/tc
2520 @end example
2521
2522 @c <en>If the particular working directory does not correspond
2523 @c <en>to a directory in the repository, then @file{Repository}
2524 @c <en>should contain @file{CVSROOT/Emptydir}.
2525 Se o diretório de trabalho particular não corresponde a
2526 um diretório no repositório, então o @file{Repositório}
2527 deve conter @file{CVSROOT/Emptydir}.
2528 @c <en>@cindex Emptydir, in CVSROOT directory
2529 @cindex Emptydir, no diretório CVSROOT
2530 @c <en>@cindex CVSROOT/Emptydir directory
2531 @cindex O diretório CVSROOT/Emptydir
2532
2533 @c <en>@cindex Entries file, in CVS directory
2534 @cindex O arquivo Entries, no diretório do CVS
2535 @c <en>@cindex CVS/Entries file
2536 @cindex O arquivo CVS/Entries
2537 @c <en>@item Entries
2538 @item Entries
2539 @c <en>This file lists the files and directories in the
2540 @c <en>working directory.
2541 @c <en>The first character of each line indicates what sort of
2542 @c <en>line it is.  If the character is unrecognized, programs
2543 @c <en>reading the file should silently skip that line, to
2544 @c <en>allow for future expansion.
2545 Este arquivo relaciona os arquivos e diretórios no
2546 diretório de trabalho.  O primeiro caractere de cada
2547 linha indica de que tipo é a linha.  Se  caractere não
2548 for reconhecido, os programas lendo o arquivo devem
2549 pular de linha em silêncio, para permitir futuras expansões.
2550
2551 @c <en>If the first character is @samp{/}, then the format is:
2552 Se o primeiro caractere é @samp{/}, então o formato é:
2553
2554 @example
2555 /@var{name}/@var{revision}/@var{timestamp}[+@var{conflict}]/@var{options}/@var{tagdate}
2556 @end example
2557
2558 @noindent
2559 @c <en>where @samp{[} and @samp{]} are not part of the entry,
2560 @c <en>but instead indicate that the @samp{+} and conflict
2561 @c <en>marker are optional.  @var{name} is the name of the
2562 @c <en>file within the directory.  @var{revision} is the
2563 @c <en>revision that the file in the working derives from, or
2564 @c <en>@samp{0} for an added file, or @samp{-} followed by a
2565 @c <en>revision for a removed file.  @var{timestamp} is the
2566 @c <en>timestamp of the file at the time that @sc{cvs} created
2567 @c <en>it; if the timestamp differs with the actual
2568 @c <en>modification time of the file it means the file has
2569 @c <en>been modified.  It is stored in
2570 @c <en>the format used by the ISO C asctime() function (for
2571 @c <en>example, @samp{Sun Apr  7 01:29:26 1996}).  One may
2572 @c <en>write a string which is not in that format, for
2573 @c <en>example, @samp{Result of merge}, to indicate that the
2574 @c <en>file should always be considered to be modified.  This
2575 @c <en>is not a special case; to see whether a file is
2576 @c <en>modified a program should take the timestamp of the file
2577 @c <en>and simply do a string compare with @var{timestamp}.
2578 @c <en>If there was a conflict, @var{conflict} can be set to
2579 @c <en>the modification time of the file after the file has been
2580 @c <en>written with conflict markers (@pxref{Conflicts example}).
2581 @c <en>Thus if @var{conflict} is subsequently the same as the actual
2582 @c <en>modification time of the file it means that the user
2583 @c <en>has obviously not resolved the conflict.  @var{options}
2584 @c <en>contains sticky options (for example @samp{-kb} for a
2585 @c <en>binary file).  @var{tagdate} contains @samp{T} followed
2586 @c <en>by a tag name, or @samp{D} for a date, followed by a
2587 @c <en>sticky tag or date.  Note that if @var{timestamp}
2588 @c <en>contains a pair of timestamps separated by a space,
2589 @c <en>rather than a single timestamp, you are dealing with a
2590 @c <en>version of @sc{cvs} earlier than @sc{cvs} 1.5 (not
2591 @c <en>documented here).
2592 Onde @samp{[} e @samp{]} não são partes da entrada, mas
2593 indicam que o @samp{+} e o marcador de conflito são
2594 opcionais.  @var{name} é o nome do arquivo no
2595 diretório.  @var{revision} e a revisão da qual o
2596 arquivo no diretório de trabalho deriva, ou @samp{0}
2597 para um arquivo adicionado, ou @samp{-} seguido de uma
2598 revisão para um arquivo removido.  @var{timestamp} é o
2599 ???timestamp??? do arquivo quando o @sc{cvs} o criou;
2600 @comment As a file system timestamp.  Usually a creation time or modification
2601 @comment time or something.  I'm not sure what they were prior to CVS 1.5.
2602 @comment -DRP
2603 se o timestamp difere da hora de modificação do
2604 arquivo, significa que o arquivo foi modificado.  É
2605 armazenado no formato usando pela função ISO C
2606 asctime() (por exemplo, @samp{Sun Apr  7 01:29:26
2607 1996}).  Pode-se escrever uma string que não esteja
2608 neste formato, por exemplo, @samp{Result of merge},
2609 para indicar que o arquivo deve ser sempre considerado
2610 como modificado.  Este não é um caso especial; para ver
2611 se um arquivo é modificado, um programa pode pegar o
2612 timestamp do arquivo e simplesmente criar uma string e
2613 comparar com @var{timestamp}.  Se existe um conflito,
2614 @var{conflict} pode ser ajustada para o tempo de
2615 modificação do arquivo depois do arquivo ter sido
2616 escrito com marcações de conflito (@pxref{Exemplo de conflitos}).
2617 Logo, se @var{conflict} é posteriormente o mesmo que o
2618 tempo de modificação real do arquivo significa que o
2619 usuário obviamente não resolveu o conflito.  @var{options}
2620 contém opções adesivas (por exemplo @samp{-kb} para um
2621 arquivo binário).  @var{tagdate} contém @samp{T}
2622 seguindo de um nome de etiqueta (tag), ou @samp{D} para
2623 uma data, seguido de uma data ou etiqueta adesiva.
2624 Observe que se @var{timestamp} contém um par de
2625 timestamps separados por um espaço, ao invés de um
2626 único timestamp, você está lidando com uma versão do
2627 @sc{cvs} anterior ao @sc{cvs} 1.5 (sem documentação aqui).
2628
2629 @c <en>The timezone on the timestamp in CVS/Entries (local or
2630 @c <en>universal) should be the same as the operating system
2631 @c <en>stores for the timestamp of the file itself.  For
2632 @c <en>example, on Unix the file's timestamp is in universal
2633 @c <en>time (UT), so the timestamp in CVS/Entries should be
2634 @c <en>too.  On @sc{vms}, the file's timestamp is in local
2635 @c <en>time, so @sc{cvs} on @sc{vms} should use local time.
2636 @c <en>This rule is so that files do not appear to be modified
2637 @c <en>merely because the timezone changed (for example, to or
2638 @c <en>from summer time).
2639 O fuso horário do timestamp no CVS/Entries (local ou
2640 universal) deve ser igual ao que o sistema
2641 operacional guarda para o timestamp do próprio arquivo.
2642 Por exemplo, no Unix o timestamp do arquivo está em
2643 tempo universal (universal time - UT).  Logo, o
2644 timestamp em CVS/Entries deve estar assim também.  No
2645 @sc{vms}, o timestamp do arquivo está em hora
2646 local, logo, o @sc{cvs} no @sc{vms} deve usar hora
2647 local.  Esta regra é para que arquivos não pareçam estar
2648 modificados simplesmente por que o fuso horário mudou
2649 (por exemplo, saindo ou entrando no horário de verão).
2650 @c See comments and calls to gmtime() and friends in
2651 @c src/vers_ts.c (function time_stamp).
2652
2653 @c <en>If the first character of a line in @file{Entries} is
2654 @c <en>@samp{D}, then it indicates a subdirectory.  @samp{D}
2655 @c <en>on a line all by itself indicates that the program
2656 @c <en>which wrote the @file{Entries} file does record
2657 @c <en>subdirectories (therefore, if there is such a line and
2658 @c <en>no other lines beginning with @samp{D}, one knows there
2659 @c <en>are no subdirectories).  Otherwise, the line looks
2660 @c <en>like:
2661 Se o primeiro caractere de uma linha em @file{Entries}
2662 é @samp{D}, então ele indica um subdiretório.  @samp{D}
2663 sozinho em uma linha indica que o programa
2664 que escreveu o arquivo @file{Entries} registra
2665 subdiretórios (portanto, se existe tal linha e nenhuma
2666 outra linha começando com @samp{D}, conclui-se que não
2667 há subdiretórios).  Caso contrário, a linha vai se
2668 parecer com:
2669
2670 @example
2671 D/@var{name}/@var{filler1}/@var{filler2}/@var{filler3}/@var{filler4}
2672 @end example
2673
2674 @noindent
2675 @c <en>where @var{name} is the name of the subdirectory, and
2676 @c <en>all the @var{filler} fields should be silently ignored,
2677 @c <en>for future expansion.  Programs which modify
2678 @c <en>@code{Entries} files should preserve these fields.
2679 onde @var{name} é o nome do subdiretório, e todos os
2680 campos @var{filler} devem ser ignorados em silêncio,
2681 para expansões futuras.  Programas que modificam
2682 arquivos @code{Entries} devem manter estes campos.
2683
2684 @c <en>The lines in the @file{Entries} file can be in any order.
2685 As linhas no arquivo @file{Entries} podem estar em
2686 qualquer ordem.
2687
2688 @c <en>@cindex Entries.Log file, in CVS directory
2689 @cindex O arquivo Entries.Log, no diretório CVS
2690 @c <en>@cindex CVS/Entries.Log file
2691 @cindex O arquivo CVS/Entries.Log
2692 @c <en>@item Entries.Log
2693 @item Entries.Log
2694 @c <en>This file does not record any information beyond that
2695 @c <en>in @file{Entries}, but it does provide a way to update
2696 @c <en>the information without having to rewrite the entire
2697 @c <en>@file{Entries} file, including the ability to preserve
2698 @c <en>the information even if the program writing
2699 @c <en>@file{Entries} and @file{Entries.Log} abruptly aborts.
2700 @c <en>Programs which are reading the @file{Entries} file
2701 @c <en>should also check for @file{Entries.Log}.  If the latter
2702 @c <en>exists, they should read @file{Entries} and then apply
2703 @c <en>the changes mentioned in @file{Entries.Log}.  After
2704 @c <en>applying the changes, the recommended practice is to
2705 @c <en>rewrite @file{Entries} and then delete @file{Entries.Log}.
2706 @c <en>The format of a line in @file{Entries.Log} is a single
2707 @c <en>character command followed by a space followed by a
2708 @c <en>line in the format specified for a line in
2709 @c <en>@file{Entries}.  The single character command is
2710 @c <en>@samp{A} to indicate that the entry is being added,
2711 @c <en>@samp{R} to indicate that the entry is being removed,
2712 @c <en>or any other character to indicate that the entire line
2713 @c <en>in @file{Entries.Log} should be silently ignored (for
2714 @c <en>future expansion).  If the second character of the line
2715 @c <en>in @file{Entries.Log} is not a space, then it was
2716 @c <en>written by an older version of @sc{cvs} (not documented
2717 @c <en>here).
2718 Este arquivo não registra qualquer informação a mais
2719 que no @file{Entries}, mas fornece um jeito de
2720 atualizar a informação sem ter que reescrever todo o
2721 arquivo @file{Entries}, incluindo a habilidade de
2722 preservar a informação mesmo se o programa que estava
2723 escrevendo o @file{Entries} e o @file{Entries.Log}
2724 aborta abruptamente.  Programas que estão lendo o
2725 arquivo @file{Entries} devem também verificar pelo
2726 @file{Entries.Log}.  Se este último existe, eles devem
2727 ler o @file{Entries} e então aplicar as mudanças
2728 mencionadas no @file{Entries.Log}.  Depois de aplicar
2729 as mudanças, a prática recomendada é reescrever o
2730 @file{Entries} e depois apagar o @file{Entries.Log}.  O
2731 formato de uma linha no @file{Entries.Log} é um comando
2732 de um caractere seguido de um espaço seguido por uma
2733 linha no formato especificado para uma linha no
2734 @file{Entries}.  O caractere de comando é
2735 @samp{A} para indicar que a entrada está sendo
2736 adicionada, @samp{R} para indicar que a entrada está
2737 sendo removida, ou qualquer outro caractere para
2738 indicar que a linha inteira em @file{Entries.Log} deve
2739 ser ignorada em silêncio (para expansão futura).  Se o
2740 segundo caractere da linha em @file{Entries.Log} não é
2741 um espaço, então foi escrito por uma versão antiga do
2742 @sc{cvs} (não documentada aqui).
2743
2744 @c <en>Programs which are writing rather than reading can
2745 @c <en>safely ignore @file{Entries.Log} if they so choose.
2746 Programas que estão escrevendo ao invés de lendo podem
2747 seguramente ignorar @file{Entries.Log} se assim escolherem.
2748
2749 @c <en>@cindex Entries.Backup file, in CVS directory
2750 @cindex O arquivo Entries.Backup, no diretório CVS
2751 @c <en>@cindex CVS/Entries.Backup file
2752 @cindex O arquivo CVS/Entries.Backup
2753 @c <en>@item Entries.Backup
2754 @item Entries.Backup
2755 @c <en>This is a temporary file.  Recommended usage is to
2756 @c <en>write a new entries file to @file{Entries.Backup}, and
2757 @c <en>then to rename it (atomically, where possible) to @file{Entries}.
2758 Este é um arquivo temporário.  O uso recomendado é
2759 escrever um novo arquivo entries para o
2760 @file{Entries.Backup}, e então renomeá-lo
2761 (atomicamente, quando possível) para @file{Entries}.
2762
2763 @c <en>@cindex Entries.Static file, in CVS directory
2764 @cindex O arquivo Entries.Static, no diretório CVS
2765 @c <en>@cindex CVS/Entries.Static file
2766 @cindex O arquivo CVS/Entries.Static
2767 @c <en>@item Entries.Static
2768 @item Entries.Static
2769 @c <en>The only relevant thing about this file is whether it
2770 @c <en>exists or not.  If it exists, then it means that only
2771 @c <en>part of a directory was gotten and @sc{cvs} will
2772 @c <en>not create additional files in that directory.  To
2773 @c <en>clear it, use the @code{update} command with the
2774 @c <en>@samp{-d} option, which will get the additional files
2775 @c <en>and remove @file{Entries.Static}.
2776 A única coisa relevante sobre este arquivo é se ele
2777 existe ou não.  Se ele existe, então quer dizer que
2778 apenas parte de um diretório foi pego e o @sc{cvs} não
2779 vai criar arquivos adicionais neste diretório.  Para
2780 limpar isto, use o comando @code{update} com a opção
2781 @samp{-d}, a qual vai pegar os arquivos adicionais e
2782 remover @file{Entries.Static}.
2783 @c FIXME: This needs to be better documented, in places
2784 @c other than Working Directory Storage.
2785 @c FIXCVS: The fact that this setting exists needs to
2786 @c be more visible to the user.  For example "cvs
2787 @c status foo", in the case where the file would be
2788 @c gotten except for Entries.Static, might say
2789 @c something to distinguish this from other cases.
2790 @c One thing that periodically gets suggested is to
2791 @c have "cvs update" print something when it skips
2792 @c files due to Entries.Static, but IMHO that kind of
2793 @c noise pretty much makes the Entries.Static feature
2794 @c useless.
2795
2796 @c <en>@cindex Tag file, in CVS directory
2797 @cindex O arquivo Tag, no diretório CVS
2798 @c <en>@cindex CVS/Tag file
2799 @cindex O arquivo CVS/Tag
2800 @c <en>@cindex Sticky tags/dates, per-directory
2801 @cindex Por diretório, etiquetas/datas adesivas
2802 @c <en>@cindex Per-directory sticky tags/dates
2803 @cindex Etiquetas/datas adesivas por diretório
2804 @c <en>@item Tag
2805 @item Tag (Etiqueta)
2806 @c <en>This file contains per-directory sticky tags or dates.
2807 @c <en>The first character is @samp{T} for a branch tag,
2808 @c <en>@samp{N} for a non-branch tag, or @samp{D} for a date,
2809 @c <en>or another character to mean the file should be
2810 @c <en>silently ignored, for future expansion.  This character
2811 @c <en>is followed by the tag or date.  Note that
2812 @c <en>per-directory sticky tags or dates are used for things
2813 @c <en>like applying to files which are newly added; they
2814 @c <en>might not be the same as the sticky tags or dates on
2815 @c <en>individual files.  For general information on sticky
2816 @c <en>tags and dates, see @ref{Sticky tags}.
2817 Este arquivo contém as etiquetas (tags) ou datas
2818 adesivas por diretório.  O primeiro caractere é @samp{T}
2819 para uma etiqueta de ramo, @samp{N} para uma etiqueta
2820 que não é de ramo, ou @samp{D} para uma data, ou outro
2821 caractere que quer dizer que o arquivo deve ser
2822 ignorado em silêncio, para expansão futura.  Este
2823 caractere é seguido de uma etiqueta ou data.  Observe
2824 que etiquetas ou data adesivas por diretório são usadas
2825 para coisas como ???applying to??? arquivos que
2826 acabaram de ser adicionados; ???they (the tags or the files)???
2827 podem não ser os mesmos assim como as etiquetas
2828 adesivas ou datas em arquivos isolados.  Para
2829 informações gerais sobre etiquetas adesivas ou datas,
2830 veja em @ref{Etiquetas adesivas}.
2831 @c FIXME: This needs to be much better documented,
2832 @c preferably not in the context of "working directory
2833 @c storage".
2834 @c FIXME: The Sticky tags node needs to discuss, or xref to
2835 @c someplace which discusses, per-directory sticky
2836 @c tags and the distinction with per-file sticky tags.
2837
2838 @c <en>@cindex Notify file, in CVS directory
2839 @cindex O arquivo Notify, no diretório CVS
2840 @c <en>@cindex CVS/Notify file
2841 @cindex O arquivo CVS/Notify
2842 @c <en>@item Notify
2843 @item Notify
2844 @c <en>This file stores notifications (for example, for
2845 @c <en>@code{edit} or @code{unedit}) which have not yet been
2846 @c <en>sent to the server.  Its format is not yet documented
2847 @c <en>here.
2848 Este arquivo guarda notificações (por exemplo, sobre
2849 @code{edit} ou @code{unedit}) que ainda não foram
2850 mandadas para o servidor.  Seu formato ainda não está
2851 documentado aqui.
2852
2853 @c <en>@cindex Notify.tmp file, in CVS directory
2854 @cindex O arquivo Notify.tmp, no diretório CVS
2855 @c <en>@cindex CVS/Notify.tmp file
2856 @cindex O arquivo CVS/Notify.tmp
2857 @c <en>@item Notify.tmp
2858 @item Notify.tmp
2859 @c <en>This file is to @file{Notify} as @file{Entries.Backup}
2860 @c <en>is to @file{Entries}.  That is, to write @file{Notify},
2861 @c <en>first write the new contents to @file{Notify.tmp} and
2862 @c <en>then (atomically where possible), rename it to
2863 @c <en>@file{Notify}.
2864 Este arquivo está para @file{Notify} como o @file{Entries.Backup}
2865 está para @file{Entries}.  Ou seja, para escrever em
2866 @file{Notify}, escreva o novo conteúdo primeiro em
2867 @file{Notify.tmp} e então (atomicamente, quando
2868 possível), renomeie-o para @file{Notify}.
2869
2870 @c <en>@cindex Base directory, in CVS directory
2871 @cindex Diretório Base, no diretório CVS
2872 @c <en>@cindex CVS/Base directory
2873 @cindex Diretório CVS/Base
2874 @c <en>@item Base
2875 @item Base
2876 @c <en>If watches are in use, then an @code{edit} command
2877 @c <en>stores the original copy of the file in the @file{Base}
2878 @c <en>directory.  This allows the @code{unedit} command to
2879 @c <en>operate even if it is unable to communicate with the
2880 @c <en>server.
2881 Se os ???watches??? estão em uso, então um comando
2882 @code{edit} guarda a cópia original do arquivo no
2883 diretório @file{Base}.  Isto permite que o comando
2884 @code{unedit} opere mesmo se estiver sem comunicação
2885 com o servidor.
2886
2887 @c <en>@cindex Baserev file, in CVS directory
2888 @cindex O arquivo Baserev, no diretório CVS
2889 @c <en>@cindex CVS/Baserev file
2890 @cindex O arquivo CVS/Baserev
2891 @c <en>@item Baserev
2892 @item Baserev
2893 @c <en>The file lists the revision for each of the files in
2894 @c <en>the @file{Base} directory.  The format is:
2895 O arquivo lista a revisão de cada arquivo no diretório
2896 @file{Base}.  O formato é:
2897
2898 @example
2899 B@var{name}/@var{rev}/@var{expansion}
2900 @end example
2901
2902 @noindent
2903 @c <en>where @var{expansion} should be ignored, to allow for
2904 @c <en>future expansion.
2905 Onde @var{expansion} deve ser ignorada para permitir
2906 expansão futura.
2907
2908 @c <en>@cindex Baserev.tmp file, in CVS directory
2909 @cindex O arquivo Baserev.tmp, no diretório CVS
2910 @c <en>@cindex CVS/Baserev.tmp file
2911 @cindex O arquivo CVS/Baserev.tmp
2912 @c <en>@item Baserev.tmp
2913 @item Baserev.tmp
2914 @c <en>This file is to @file{Baserev} as @file{Entries.Backup}
2915 @c <en>is to @file{Entries}.  That is, to write @file{Baserev},
2916 @c <en>first write the new contents to @file{Baserev.tmp} and
2917 @c <en>then (atomically where possible), rename it to
2918 @c <en>@file{Baserev}.
2919 Este arquivo está para @file{Baserev} assim como
2920 @file{Entries.Backup} está para @file{Entries}.  Ou
2921 seja, para escrever em @file{Baserev}, escreva o novo
2922 conteúdo primeiro em @file{Baserev.tmp} e então
2923 (atomicamente, quando possível), renomei-o para @file{Baserev}.
2924
2925 @c <en>@cindex Template file, in CVS directory
2926 @cindex O arquivo Template, no diretório CVS
2927 @c <en>@cindex CVS/Template file
2928 @cindex O arquivo CVS/Template
2929 @c <en>@item Template
2930 @item Template
2931 @c <en>This file contains the template specified by the
2932 @c <en>@file{rcsinfo} file (@pxref{rcsinfo}).  It is only used
2933 @c <en>by the client; the non-client/server @sc{cvs} consults
2934 @c <en>@file{rcsinfo} directly.
2935 Este arquivo contém o modelo (template) especificado
2936 pelo arquivo @file{rcsinfo} (@pxref{rcsinfo}).  Ele é
2937 usado apenas pelo cliente; o ???non-client/server???
2938 @sc{cvs} consulta o @file{rcsinfo} diretamente.
2939 @end table
2940
2941 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2942 @c <en>@node Intro administrative files
2943 @node Intro aos arquivos administrativos
2944 @c <en>@section The administrative files
2945 @section Os arquivos administrativos
2946 @c <en>@cindex Administrative files (intro)
2947 @cindex Arquivos administrativos (intro)
2948 @c <en>@cindex Modules file
2949 @cindex O arquivo Modules
2950 @c <en>@cindex CVSROOT, module name
2951 @cindex CVSROOT, nome de módulo
2952 @c <en>@cindex Defining modules (intro)
2953 @cindex Definindo módulos (intro)
2954
2955 @c FIXME: this node should be reorganized into "general
2956 @c information about admin files" and put the "editing
2957 @c admin files" stuff up front rather than jumping into
2958 @c the details of modules right away.  Then the
2959 @c Administrative files node can go away, the information
2960 @c on each admin file distributed to a place appropriate
2961 @c to its function, and this node can contain a table
2962 @c listing each file and a @ref to its detailed description.
2963
2964 @c <en>The directory @file{$CVSROOT/CVSROOT} contains some @dfn{administrative
2965 @c <en>files}.  @xref{Administrative files}, for a complete description.
2966 @c <en>You can use @sc{cvs} without any of these files, but
2967 @c <en>some commands work better when at least the
2968 @c <en>@file{modules} file is properly set up.
2969 O diretório @file{$CVSROOT/CVSROOT} contém alguns
2970 @dfn{Arquivos administrativos}.  @xref{Arquivos
2971 administrativos}, para uma descrição completa.  Você
2972 pode usar o @sc{cvs} sem nenhum destes arquivos, mas
2973 alguns comandos funcionam melhor quando pelo menos o
2974 arquivo @file{modules} está bem configurado.
2975
2976 @c <en>The most important of these files is the @file{modules}
2977 @c <en>file.  It defines all modules in the repository.  This
2978 @c <en>is a sample @file{modules} file.
2979 O mais importante destes arquivos é o arquivo
2980 @file{modules}.  Ele define todos os módulos no
2981 repositório.  Este é um exemplo de um arquivo @file{modules}.
2982
2983 @c FIXME: The CVSROOT line is a goofy example now that
2984 @c mkmodules doesn't exist.
2985 @example
2986 CVSROOT         CVSROOT
2987 modules         CVSROOT modules
2988 cvs             gnu/cvs
2989 rcs             gnu/rcs
2990 diff            gnu/diff
2991 tc              yoyodyne/tc
2992 @end example
2993
2994 @c <en>The @file{modules} file is line oriented.  In its
2995 @c <en>simplest form each line contains the name of the
2996 @c <en>module, whitespace, and the directory where the module
2997 @c <en>resides.  The directory is a path relative to
2998 @c <en>@code{$CVSROOT}.  The last four lines in the example
2999 @c <en>above are examples of such lines.
3000 O arquivo @file{modules} é baseado em linha.  Na sua
3001 forma simples, cada linha contém o nome do módulo, um
3002 espaço e o diretório onde o módulo está.  O diretório é
3003 um caminho relativo em @code{$CVSROOT}.  As últimas
3004 quatro linhas no exemplo acima são exemplos de tais linhas.
3005
3006 @c FIXME: might want to introduce the concept of options in modules file
3007 @c (the old example which was here, -i mkmodules, is obsolete).
3008
3009 @c <en>The line that defines the module called @samp{modules}
3010 @c <en>uses features that are not explained here.
3011 @c <en>@xref{modules}, for a full explanation of all the
3012 @c <en>available features.
3013 A linha que define o módulo chamado @samp{modules} usa
3014 funcionalidades que não são explicadas
3015 aqui. @xref{modules}, para uma explicação completa
3016 destas funcionalidades.
3017
3018 @c FIXME: subsection without node is bogus
3019 @c <en>@subsection Editing administrative files
3020 @subsection Editando arquivos administrativos
3021 @c <en>@cindex Editing administrative files
3022 @cindex Editando arquivos administrativos
3023 @c <en>@cindex Administrative files, editing them
3024 @cindex Arquivos administrativos, editando
3025
3026 @c <en>You edit the administrative files in the same way that you would edit
3027 @c <en>any other module.  Use @samp{cvs checkout CVSROOT} to get a working
3028 @c <en>copy, edit it, and commit your changes in the normal way.
3029 Você edita os arquivos administrativos da mesma forma
3030 que você deve deve editar qualquer outro módulo.  Use
3031 @samp{cvs checkout CVSROOT} para obter uma cópia de
3032 trabalho, edite-a e ???commit??? suas mudanças normalmente.
3033
3034 @c <en>It is possible to commit an erroneous administrative
3035 @c <en>file.  You can often fix the error and check in a new
3036 @c <en>revision, but sometimes a particularly bad error in the
3037 @c <en>administrative file makes it impossible to commit new
3038 @c <en>revisions.
3039 É possível ???commit??? um arquivo administrativo
3040 corrompido.  Em geral, você pode consertar o erro e
3041 devolvê-lo numa nova revisão, mas às vezes um erro
3042 particularmente ruim nos arquivos administrativos torna
3043 impossível ???commit??? novas revisões.
3044 @c @xref{Bad administrative files} for a hint
3045 @c about how to solve such situations.
3046 @c -- administrative file checking--
3047
3048 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3049 @c <en>@node Multiple repositories
3050 @node Repositórios múltiplos
3051 @c <en>@section Multiple repositories
3052 @section Repositórios múltiplos
3053 @c <en>@cindex Multiple repositories
3054 @cindex Repositórios múltiplos
3055 @c <en>@cindex Repositories, multiple
3056 @cindex Repositórios, múltiplos
3057 @c <en>@cindex Many repositories
3058 @cindex Muitos repositórios
3059 @c <en>@cindex Parallel repositories
3060 @cindex Repositórios paralelos
3061 @c <en>@cindex Disjoint repositories
3062 @cindex Repositórios Disjuntos
3063 @c <en>@cindex CVSROOT, multiple repositories
3064 @cindex CVSROOT, Repositórios Múltiplos
3065
3066 @c <en>In some situations it is a good idea to have more than
3067 @c <en>one repository, for instance if you have two
3068 @c <en>development groups that work on separate projects
3069 @c <en>without sharing any code.  All you have to do to have
3070 @c <en>several repositories is to specify the appropriate
3071 @c <en>repository, using the @code{CVSROOT} environment
3072 @c <en>variable, the @samp{-d} option to @sc{cvs}, or (once
3073 @c <en>you have checked out a working directory) by simply
3074 @c <en>allowing @sc{cvs} to use the repository that was used
3075 @c <en>to check out the working directory
3076 @c <en>(@pxref{Specifying a repository}).
3077 Em algumas situações é uma boa idéia ter mais de um
3078 repositório.  Por exemplo, se você tem duas equipes de
3079 desenvolvimento que trabalham em projetos separados sem
3080 compartilhar nenhum código.  Tudo que você tem que
3081 fazer para ter vários repositórios é especificar o
3082 repositório apropriado, usando a variável de ambiente
3083 @code{CVSROOT} ou a opção @samp{-d} com o @sc{cvs}, ou
3084 (depois de ter pego um diretório de trabalho)
3085 simplesmente deixando o @sc{cvs} usar o repositório de
3086 onde veio o diretório de trabalho (@pxref{Especificando
3087 um repositório}).
3088
3089 @c <en>The big advantage of having multiple repositories is
3090 @c <en>that they can reside on different servers.  With @sc{cvs}
3091 @c <en>version 1.10, a single command cannot recurse into
3092 @c <en>directories from different repositories.  With development
3093 @c <en>versions of @sc{cvs}, you can check out code from multiple
3094 @c <en>servers into your working directory.  @sc{cvs} will
3095 @c <en>recurse and handle all the details of making
3096 @c <en>connections to as many server machines as necessary to
3097 @c <en>perform the requested command.  Here is an example of
3098 @c <en>how to set up a working directory:
3099 A grande vantagem de ter múltiplos repositórios é que
3100 eles podem residir em diferentes servidores.  Com o
3101 @sc{cvs} versão 1.10, um comando não pode fazer
3102 recursão ???into??? diretórios ???from??? repositórios
3103 diferentes.  Com ???development versions??? do
3104 @sc{cvs}, você pode obter código de múltiplos
3105 servidores para o seu diretório de trabalho.  @sc{cvs}
3106 vai fazer a recursão e cuidar dos detalhes para fazer
3107 conexão em quantas máquinas quantas forem necessárias
3108 para executar o comando pedido.  Aqui está um exemplo
3109 de como preparar um diretório de trabalho:
3110
3111 @example
3112 cvs -d server1:/cvs co dir1
3113 cd dir1
3114 cvs -d server2:/root co sdir
3115 cvs update
3116 @end example
3117
3118 @c <en>The @code{cvs co} commands set up the working
3119 @c <en>directory, and then the @code{cvs update} command will
3120 @c <en>contact server2, to update the dir1/sdir subdirectory,
3121 @c <en>and server1, to update everything else.
3122 Os comandos @code{cvs co} acima preparam o diretório de
3123 trabalho.  Depois de feitos, o comando @code{cvs update}
3124 vai contactar o server2, para atualizar o subdiretório
3125 dir1/sdir e o server1, para atualizar o resto.
3126
3127 @c FIXME: Does the FAQ have more about this?  I have a
3128 @c dim recollection, but I'm too lazy to check right now.
3129
3130 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3131 @c <en>@node Creating a repository
3132 @node Criando um repositório
3133 @c <en>@section Creating a repository
3134 @section Criando um repositório
3135
3136 @c <en>@cindex Repository, setting up
3137 @cindex Repositório, preparando
3138 @c <en>@cindex Creating a repository
3139 @cindex Criando um repositório
3140 @c <en>@cindex Setting up a repository
3141 @cindex Preparando um repositório
3142
3143 @c <en>To set up a @sc{cvs} repository, first choose the
3144 @c <en>machine and disk on which you want to store the
3145 @c <en>revision history of the source files.  CPU and memory
3146 @c <en>requirements are modest, so most machines should be
3147 @c <en>adequate.  For details see @ref{Server requirements}.
3148 Para preparar um repositório do @sc{cvs}, escolha
3149 primeiramente a máquina e o disco onde você deseja
3150 armazenar o histórico de revisões dos fontes.
3151 requisitos de CPU e memória são modestos.  Portanto,
3152 muitas máquinas serão adequadas.  Para detalhes, veja
3153 em @ref{Requisitos do servidor}.
3154 @c Possible that we should be providing a quick rule of
3155 @c thumb, like the 32M memory for the server.  That
3156 @c might increase the number of people who are happy
3157 @c with the answer, without following the xref.
3158
3159 @c <en>To estimate disk space
3160 @c <en>requirements, if you are importing RCS files from
3161 @c <en>another system, the size of those files is the
3162 @c <en>approximate initial size of your repository, or if you
3163 @c <en>are starting without any version history, a rule of
3164 @c <en>thumb is to allow for the server approximately three
3165 @c <en>times the size of the code to be under @sc{cvs} for the
3166 @c <en>repository (you will eventually outgrow this, but not
3167 @c <en>for a while).  On the machines on which the develo