Home | History | Annotate | Line # | Download | only in pt_BR
      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 pgina manual ensina a como usar e administrar o
    139 @c <en> @sc{cvs} version @value{VERSION}.
    140 @sc{cvs} verso @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 * Viso Geral::                 Uma introduo ao CVS
    152 @c <en>* Repository::                  Where all your sources are stored
    153 * Repositrio::                 Onde todos os seus fontes so guardados
    154 @c <en>* Starting a new project::      Starting a project with CVS
    155 * Comeando um novo projeto::   Comeando um projeto com CVS
    156 @c <en>* Revisions::                   Numeric and symbolic names for revisions
    157 * Revises::                    Nomes numricos e simblicos para revises
    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 diretrios
    162 @c <en>* Adding and removing::         Adding/removing/renaming files/directories
    163 * Adicionando e removendo::     Adicionando/apagando/renomeando arquivos/diretrios
    164 @c <en>* History browsing::            Viewing the history of files in various ways
    165 * Navegao no Histrico::      Vendo o histrico dos arquivos de vrias 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 binrios::             CVS pode lidar com arquivos binrios
    172 @c <en>* Multiple developers::         How CVS helps a group of developers
    173 * Mltiplos desenvolvedores::     Como CVS ajuda um grupo de desenvolvedores
    174 @c <en>* Revision management::         Policy questions for revision management
    175 * Gerenciamento de revises::     Questes de poltica para gerenciamento de revises
    176 @c <en>* Keyword substitution::        CVS can include the revision inside the file
    177 * Substituio de palavra-chave:: CVS inclui a reviso 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, ligaes e outros arquivos diferentes
    184 
    185 @c <en>References.
    186 Referncias.
    187 -----------
    188 @c <en>* CVS commands::                CVS commands share some things
    189 * Comandos do CVS::            Comandos do CVS tm algo em comum
    190 @c <en>* Invoking CVS::                Quick reference to CVS commands
    191 * Chamando o CVS::             Referncia rpida aos comandos do CVS
    192 @c <en>* Administrative files::        Reference manual for the Administrative files
    193 * Arquivos administrativos::   Manual de referncia para os arquivos administrativos
    194 @c <en>* Environment variables::       All environment variables which affect CVS
    195 * Variveis de ambiente::      Todas as variveis 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 * Resoluo de problemas::     Algumas dicas quando nada funciona
    200 @c <en>* Credits::                     Some of the contributors to this manual
    201 * Crditos::                   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 Viso Geral
    213 @chapter Viso Geral
    214 @cindex Viso 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 captulo  para aqueles que nunca usaram o
    220 @sc{cvs} antes, e talvez nunca tenham usado um programa
    221 de controle de verses 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 no ?::            Problemas que o @sc{cvs} no tenta resolver
    236 @c <en>* A sample session::            A tour of basic @sc{cvs} usage
    237 * Uma sesso de exemplo::          Um tour pelo uso bsico 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 Introduo ao CVS
    250 @cindex CVS, introduo 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 verses.  Ao
    255 us-lo, voc pode registrar a histria dos seus cdigos
    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 no detecta o problema at muito
    272 tempo depois de voc ter feito a modificao.  Com
    273 @sc{cvs}, voc pode recuperar verses 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 verso de todo arquivo
    284 que um dia voc criou.  Mas isto vai consumir um enorme
    285 espao no disco.  O @sc{cvs} guarda todas as verses de um
    286 arquivo em um nico arquivo em uma forma inteligente
    287 que guarda apenas as diferenas entre verses.
    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} tambm ajuda se voc  parte de um grupo de
    300 pessoas trabalhando no mesmo projeto.   muito fcil uns
    301 sobreescreverem as mudanas de outros se no 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 algum estiver usando outro
    306 editor, est segurana no vai funcionar.  O @sc{cvs}
    307 resolve este problema isolando os desenvolvedores uns
    308 dos outros.  Todo desenvolvedor trabalha em seu prprio
    309 diretrio e o @sc{cvs} mescla o trabalho quando cada
    310 desenvolvedor tiver terminado.
    311 
    312 @c <en>@cindex History of CVS
    313 @cindex Histria do CVS
    314 @c <en>@cindex CVS, history of
    315 @cindex CVS, histria do
    316 @c <en>@cindex Credits (CVS program)
    317 @cindex Crditos (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} comeou 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 cdigo daqueles scripts est
    331 presente na verso atual do @sc{cvs}, mas muito dos
    332 algoritmos de resoluo 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 mdulo @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 vrias formas,
    348 inclusive baixando gratuitamente da internet.  Para
    349 maiores informaes sobre baixar o @sc{cvs} e para
    350 outros tpicos 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 Discusso
    358 @c <en>@cindex List, mailing list
    359 @cindex Lista, lista de discusso
    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 discusso, 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 mo
    381 nica (postagens para a lista de email so usualmente
    382 mandadas para o news group, mas no 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 discusses sobre @sc{cvs} (juntamente com outros
    387 sistemas de gerncia de configurao).  No futuro, poder ser criada uma
    388 @code{comp.software.config-mgmt.cvs}, mas apenas se
    389 houver bastante trfego 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 tambm pode se cadastrar na lista de discusso
    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 mo-dupla (postagens para o grupo usenet so
    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 no ?
    415 @c <en>@section What is CVS not?
    416 @section O que CVS no ?
    417 @c <en>@cindex What is CVS not?
    418 @cindex O que CVS no ?
    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 vrias coisas para voc, mas no
    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} no  um sistema de construo (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 repositrio e arquivos de
    434 mdulo interajam com seu sistema de construo
    435 (e.g. @file{Makefile}s), eles so 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} no dita como voc constroi nada.  Ele apenas
    442 guarda arquivos para recuperao 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} no dita como usar o espao em disco em
    452 diretrios de trabalho locais.  Se voc
    453 escreve seus @file{Makefile}s ou scripts em cada
    454 diretrio, eles tm que saber a posio relativa de
    455 todo o resto, logo voc acaba tendo que pegar todo o
    456 repositrio.
    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 construo (build) que ir compartilhar arquivos
    464 (via links, mounts, @code{VPATH} em @file{Makefile}s,
    465 etc.), voc pode organizar a sua utilizao 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} no se importa com tais questes.
    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 construo (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 reconstrudos
    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 dependncias 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 informaes sobre
    498 construo com @sc{cvs}.
    499 
    500 @c <en>@item @sc{cvs} is not a substitute for management.
    501 @item @sc{cvs} no 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 lderes de projetos falem
    508 com voc com a frequncia suficiente para que voc
    509 saiba de prazos, pontos de mescla, nomes de ramos e
    510 datas de lanamento (release).  Se eles no o fizerem, o
    511 @sc{cvs} no 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 danar
    517 conforme a sua msica.  Mas voc  o maestro e o
    518 compositor.  Nenhum instrumento toca sozinho ou escreve
    519 sua prpria msica.
    520 
    521 @c <en>@item @sc{cvs} is not a substitute for developer communication.
    522 @item @sc{cvs} no  um substituto para comunicao 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 esforo.  Mas uma definio mais geral de
    532 ``conflito'' inclui problemas to difceis de resolver
    533 que  necessria a comunicao 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} no pode determinar quando  que alteraes
    542 simultneas em um arquivo, ou vrios, vo conflitar
    543 logicamente umas com as outras.  Seu conceito de
    544 @dfn{conflito}  puramente textual, surgindo quando
    545 duas alteraes num mesmo arquivo base so prximas 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} no se prope a dar qualquer ajuda quanto a
    552 localizar conflitos no-textuais ou distribudos na
    553 lgica de programao.
    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 funo @code{X} definida no arquivo @file{A}.  Neste
    562 instante, alguem altera o arquivo @file{B}, adicionando
    563 novas chamadas  funo @code{X} usando os argumentos
    564 antigos.  Vocs esto fora do escopo da competncia 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 hbito de ler documentao e conversar com
    570 seus parceiros.
    571 
    572 
    573 @c <en>@item @sc{cvs} does not have change control
    574 @item @sc{cvs} no tem controle de mudanas
    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 mudanas se refere a vrias 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 lanamento? 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 caracterstica de controle de mudanas  manter
    604 um controle no fato de que mudanas em vrios arquivos
    605 foram, de fato, uma nica mudana lgica.  Se voc
    606 devolve vrios arquivos numa nica operao 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 mudanas, em alguns
    627 sistemas,  a habilidade de se obter informao sobre o
    628 status de cada mudana.  Algumas mudanas 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 diferenas usando o
    634 utilitrio @code{patch}.  Isto  muito flexvel, 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} no  um programa de testes automtico
    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  possvel reforar o uso obrigatrio de uma sute 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 suts nestes casos.
    649 
    650 @c <en>@item @sc{cvs} does not have a builtin process model
    651 @item @sc{cvs} no 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 mudanas ou lanamentos sigam vrios passos, com vrias
    667 aprovaes obrigatrias.  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 devoluo (checkin).  Tambm considere se
    674 caractersticas tais como ramos e etiquetas (tags) podem ser usadas
    675 para realizar tarefas como desenvolver numa rvore de
    676 desenvolvimento e ento mesclar certas mudanas numa
    677 rvore estvel apenas quando eles tenham sido confirmados.
    678 @end table
    679 
    680 @c ---------------------------------------------------------------------
    681 @c <en>@node A sample session
    682 @node Uma sesso de exemplo
    683 @c <en>@section A sample session
    684 @section Uma sesso de exemplo
    685 @c <en>@cindex Example of a work-session
    686 @cindex Exemplo de uma sesso de trabalho
    687 @c <en>@cindex Getting started
    688 @cindex Iniciando
    689 @c <en>@cindex Work-session, example of
    690 @cindex Sesso 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 sesso de
    726 trabalho tpica.  A primeira coisa a saber  que
    727 @sc{cvs} guarda todos os arquivos em um
    728 @dfn{repository} centralizado (@pxref{Repositrio});
    729 esta sesso assume que um repositrio 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 repositrio  feito de
    744 forma que exista um mdulo 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 alteraes::  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 diferenas::         Vendo as diferenas
    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 prpria cpia 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 diretrio 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 diretrio @file{CVS}  usado internamente pelo
    799 @sc{cvs}.  Normalmente, voc no 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 observao para usurios
    809 de @sc{rcs} e @sc{sccs}: No  necessrio travar (lock)
    810 os arquivos que voc quer editar.  @xref{Mltiplos
    811 desenvolvedores}, para uma explicao.
    812 
    813 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    814 @c <en>@node Committing your changes
    815 @node Efetivando suas alteraes
    816 @c <en>@subsection Committing your changes
    817 @subsection Efetivando suas alteraes
    818 @c <en>@cindex Committing changes to files
    819 @cindex Efetivando mudanas 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 compilvel voc decide criar uma nova verso de
    830 @file{backend.c}.  Tal ato vai botar o seu novo
    831 @file{backend.c} no repositrio e torn-lo disponvel
    832 para qualquer outra pessoa que esteja usando o mesmo
    833 repositrio.
    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 otimizao adicionada.'',
    845 salva o arquivo temporrio e sai do editor.
    846 
    847 @c <en>@cindex CVSEDITOR, environment variable
    848 @cindex CVSEDITOR, varivel de ambiente
    849 @c <en>@cindex EDITOR, environment variable
    850 @cindex EDITOR, varivel 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 varivel de ambiente @code{$CVSEDITOR} determina qual
    860 editor vai ser aberto.  Se @code{$CVSEDITOR} no existe,
    861 e se a varivel de ambiente @code{$EDITOR} existe, esta
    862 ltima  usada.  Se nenhuma das duas @code{$CVSEDITOR} e
    863 @code{$EDITOR} existem ento o padro 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, varivel 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 varivel de
    877 ambiente @code{$VISUAL}.  Isto gera duas opinies
    878 divergentes, se este  um comportamento desejvel ou se
    879 releases futuras do @sc{cvs} devem verificar
    880 @code{$VISUAL} ou ignor-la.  Voc vai estar OK se no
    881 tiver a varivel @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 comparao da data de
    905 modificao do arquivo com a data de modificao que o
    906 arquivo tinha da ltima vez que foi pego ou
    907 atualizado.  Entretanto, se a data de modificao de um
    908 arquivo mudou mas seu contedo no, ele vai ser
    909 considerado modificado.  A maneira mais fcil de lidar
    910 com isto  desconsidarando---se voc seguir efetivando,
    911 o @sc{cvs} vai notar que o contedo est intacto e vai
    912 tratar o arquivo como no-modificado.  O prximo
    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 no aparea nas prximas
    916 aparies 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 opo @samp{-m}, desta forma:
    940 
    941 @example
    942 $ cvs commit -m "Uma otimizao 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 Cpia de trabalho, removendo
    954 @c <en>@cindex Removing your working copy
    955 @cindex Removendo sua cpia de trabalho
    956 @c <en>@cindex Releasing your working copy
    957 @cindex Lanando sua cpia 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 cpia de trabalho de tc.  Uma forma aceitvel 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 modificaes foram efetivadas.  Se o registro
    988 histrico (history log) est ativo ele tambm escreve uma
    989 observao no arquivo de histrico.  @xref{arquivo
    990 history (histrico)}.
    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 opo @samp{-d} com o @code{release},
    995 ele tambm remove a sua cpia 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 sada.  @samp{? tc} significa que o
   1006 arquivo @file{tc}  desconhecido pelo @sc{cvs}.  No h
   1007 nada com que se preocupar: @file{tc}  um compilador
   1008 executvel, e no deve ser guardado no
   1009 repositrio.  @xref{cvsignore}, para ver como fazer para
   1010 sumir com este aviso.  @xref{release output}, para uma
   1011 explicao geral de todas as possveis sadas 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 srio.  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 cpia de trabalho
   1027 dos fontes, e ento pergunta por confirmao antes de
   1028 apagar qualquer arquivo ou escrever qualquer coisa no
   1029 arquivo de histrico.
   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 confirmao.
   1035 
   1036 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   1037 @c <en>@node Viewing differences
   1038 @node Vendo as diferenas
   1039 @c <en>@subsection Viewing differences
   1040 @subsection Vendo diferenas
   1041 @c <en>@cindex Viewing differences
   1042 @cindex Vendo diferenas
   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 no 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 verso
   1061 de @file{driver.c} que voc pegou com a da sua cpia de
   1062 trabalho.  Quando voc v a sada, voc lembra de ter
   1063 adicionado uma opo de linha de comando que permite a
   1064 otimizao.  Voc devolve e lana (release) o mdulo.
   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 otimizao 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 Repositrio
   1084 @c <en>@chapter The Repository
   1085 @chapter O Repositrio
   1086 @c <en>@cindex Repository (intro)
   1087 @cindex Repositrio (intro)
   1088 @c <en>@cindex Repository, example
   1089 @cindex Repositrio, exemplo
   1090 @c <en>@cindex Layout of repository
   1091 @cindex Estrutura do repositrio
   1092 @c <en>@cindex Typical repository
   1093 @cindex Repositrio tpico
   1094 @c <en>@cindex /usr/local/cvsroot, as example repository
   1095 @cindex /usr/local/cvsroot, como um repositrio 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{repositrio} do @sc{cvs} guarda uma cpia
   1103 completa de todos os arquivos e diretrios que esto
   1104 sob controle de verso.
   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 repositrio diretamente.  Ao invs disso, voc usa os
   1120 comandos do @sc{cvs} para pegar emprestada a sua cpia
   1121 dos arquivos num @dfn{diretrio de trabalho}, e ento
   1122 trabalhar nesta cpia.  Quando voc termina um conjunto
   1123 de mudanas, voc as @dfn{efetiva} no repositrio.  O
   1124 repositrio ento passa a conter as mudanas que voc
   1125 fez, assim como gravar exatamente o que voc fez,
   1126 quando voc fez e outras informaes deste
   1127 tipo.  Observe que o repositrio no  um subdiretrio
   1128 do diretrio de trabalho nem vice-versa; eles esto 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 repositrio de vrias
   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 vrias formas de acessar um
   1152 repositrio o seu nome deve comear com um
   1153 @dfn{mtodo de acesso}.  Por exemplo, o mtodo de acesso
   1154 @code{:local:} significa acessar um diretrio que  um
   1155 repositrio.  Logo, @code{:local:/usr/local/cvsroot}
   1156 significa que o repositrio est em
   1157 @file{/usr/local/cvsroot} no computador rodando
   1158 @sc{cvs}.  Para informaes sobre outros mtodos de
   1159 acesso, v em @ref{Repositrios 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 mtodo de acesso  omitido e se o repositrio
   1175 comea com @samp{/}, ento assume-se @code{:local:}.  Se
   1176 no comea com @samp{/} ento ou @code{:ext:} ou
   1177 @code{:server:}  assumido.  Por exemplo, se voc tem um
   1178 repositrio local em @file{/usr/local/cvsroot}, voc
   1179 pode usar @code{/usr/local/cvsroot} ao invs de
   1180 @code{:local:/usr/local/cvsroot}.  Mas se (no Windows
   1181 NT, por exemplo) seu repositrio local 
   1182 @file{c:\src\cvsroot}, ento voc deve especificar o
   1183 mtodo 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 repositrio  separado em duas
   1193 partes.  @file{$CVSROOT/CVSROOT} contm arquivos
   1194 administrativos do @sc{cvs}.  Os outros diretrios
   1195 contm os mdulos definidos pelo usurio.
   1196 
   1197 @menu
   1198 @c <en>* Specifying a repository::  Telling CVS where your repository is
   1199 * Especificando um repositrio::          Dizendo ao CVS onde est o seu repositrio
   1200 @c <en>* Repository storage::       The structure of the repository
   1201 * Armazenamento do repositrio::          A estrutura do repositrio
   1202 @c <en>* Working directory storage:: The structure of working directories
   1203 * Armazenamento do Diretrio de trabalho:: A estrutura dos diretrios de trabalho
   1204 @c <en>* Intro administrative files::  Defining modules
   1205 * Intro aos arquivos administrativos:: Definindo mdulos
   1206 @c <en>* Multiple repositories::       Multiple repositories
   1207 * Repositrios mltiplos::             Repositrios mltiplos
   1208 @c <en>* Creating a repository::       Creating a repository
   1209 * Criando um repositrio::             Criando um repositrio
   1210 @c <en>* Backing up::                  Backing up a repository
   1211 * Fazendo backup::                     Criando Backup de um repositrio
   1212 @c <en>* Moving a repository::         Moving a repository
   1213 * Movendo um repositrio::             Movendo um repositrio
   1214 @c <en>* Remote repositories::         Accessing repositories on remote machines
   1215 * Repositrios remotos::               Acessando repositrios em mquinas remotas
   1216 @c <en>* Read-only access::            Granting read-only access to the repository
   1217 * Acesso somente-leitura::             Dando acesso somente-leitura ao repositrio
   1218 @c <en>* Server temporary directory::  The server creates temporary directories
   1219 * Diretrio temporrio do servidor::   O servidor cria diretrios temporrios
   1220 @end menu
   1221 
   1222 @c <en>@node Specifying a repository
   1223 @node Especificando um repositrio
   1224 @c <en>@section Telling CVS where your repository is
   1225 @section Dizendo ao CVS onde est o seu repositrio
   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 vrias formas de dizer ao @sc{cvs} onde
   1232 encontrar o repositrio.  Voc pode dar o nome do
   1233 repositrio explicitamente na linha de comando, com a
   1234 opo @code{-d} (de "diretrio"):
   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, varivel 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 varivel de ambiente
   1257 @code{$CVSROOT} para um caminho absoluto para a raiz
   1258 (root) do repositrio, @file{/usr/local/cvsroot} neste
   1259 exemplo.  Para ajustar o @code{$CVSROOT}, usurio 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 usurios 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 diretrio 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 repositrio especificado com @code{-d} se
   1289 sobrepe  varivel de ambiente @code{$CVSROOT}.  Uma
   1290 vez que voc tenha pego emprestada uma cpia de
   1291 trabalho do repositrio, ela vai se lembrar onde est o
   1292 seu repositrio (a informao  registrada no arquivo
   1293 @file{CVS/Root} na cpia 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 opo @code{-d} quanto o arquivo
   1301 @file{CVS/Root} sobreescrevem a varivel de ambiente
   1302 @code{$CVSROOT}.  Se a opo @code{-d}  diferente do
   1303 @file{CVS/Root}, a primeira  usada.  Obviamente, para
   1304 operaes corretas, elas devem ser duas formas de
   1305 referenciar o mesmo repositrio.
   1306 
   1307 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   1308 @c <en>@node Repository storage
   1309 @node Armazenamento do repositrio
   1310 @c <en>@section How data is stored in the repository
   1311 @section Como os dados so guardados no repositrio
   1312 @c <en>@cindex Repository, how data is stored
   1313 @cindex Repositrio, como os dados so 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 aplicaes, no importa @emph{como}
   1322 o @sc{cvs} guarda as informaes no repositrio.  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 repositrio  feito via comandos do @sc{cvs}, tais
   1326 mudanas no sero 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 necessrio
   1334 entender como o @sc{cvs} guarda os dados no
   1335 repositrio.  Por exemplo, voc pode precisar localizar
   1336 travas do @sc{cvs} (@pxref{Concorrncia}) ou voc pode
   1337 precisar lidar com permisses de arquivos apropriadas
   1338 para o repositrio.
   1339 
   1340 @menu
   1341 @c <en>* Repository files::            What files are stored in the repository
   1342 * Arquivos do repositrio::           Quais arquivos so guardados no repositrio
   1343 @c <en>* File permissions::            File permissions
   1344 * Permisses de arquivos::            Permises de arquivos
   1345 @c <en>* Windows permissions::         Issues specific to Windows
   1346 * Permisses no Windows::         Questes especficas ao Windows
   1347 @c <en>* Attic::                       Some files are stored in the Attic
   1348 * Attic::                       Alguns arquivos so guardados no Attic
   1349 @c <en>* CVS in repository::           Additional information in CVS directory
   1350 * CVS no repositrio::           Informaes adicionais no diretrio 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 so diferentes
   1355 @end menu
   1356 
   1357 @c <en>@node Repository files
   1358 @node Arquivos do repositrio
   1359 @c <en>@subsection Where files are stored within the repository
   1360 @subsection Onde arquivos so guardados dentro do repositrio
   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 repositrio  uma rvore de
   1383 diretrios correspondendo aos diretrios no diretrio
   1384 de trabalho.  Por exemplo, suponha que o repositrio
   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 possvel rvore de diretrios (mostrando
   1395 apenas os diretrios):
   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           |   |   (cdigo fonte do @sc{gnu} diff)
   1413           |   |
   1414           |   +--@t{rcs}
   1415 @c <en>          |   |   (source code to @sc{rcs})
   1416           |   |   (cdigo fonte do @sc{rcs})
   1417           |   |
   1418           |   +--@t{cvs}
   1419 @c <en>          |       (source code to @sc{cvs})
   1420           |       (cdigo 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 diretrios esto os @dfn{arquivos de histrico} para
   1439 cada arquivo sob controle de verso.  O nome do arquivo
   1440 de histrico  o nome do arquivo correspondente com um
   1441 @samp{,v} no final.  Aqui est como o repositrio do
   1442 diretrio @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 histrico
   1470 @c <en>@cindex RCS history files
   1471 @cindex Arquivos de histrico 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 histrico contm, entre outras coisas,
   1490 informaes suficientes para recriar qualquer reviso
   1491 do arquivo, um log com todas as mensagens ???de
   1492 commit??? e o usurio 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 reviso.  Os arquivos de histrico so 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 verses conhecido como @sc{rcs}.  Para
   1501 uma descrio completa do formato de arquivo, leia a
   1502 pgina @code{man} @cite{rcsfile(5)}, distribuda com o
   1503 @sc{rcs}, ou o arquivo @file{doc/RCSFILES} na
   1504 distribuio dos fontes do @sc{cvs}.  Este formato de
   1505 arquivo se tornou muito comum---muitos sistemas alm do
   1506 @sc{cvs} e do @sc{rcs} podem, pelo menos, importar
   1507 arquivos de histrico 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 padro.  A maior
   1523 diferena so os ramos mgicos; para mais informaes
   1524 veja em @ref{Nmeros de ramos mgicos}.  Alm disso, no
   1525 @sc{cvs} os nomes vlidos de etiquetas (tags)  um subconjunto dos
   1526 que so 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 Permisses de arquivos
   1532 @c <en>@subsection File permissions
   1533 @subsection Permisses de arquivos
   1534 @c -- Move this to @node Creating a repository or similar
   1535 @c <en>@cindex Security, file permissions in repository
   1536 @cindex Segurana, permisses de arquivos no repositrio
   1537 @c <en>@cindex File permissions, general
   1538 @cindex Permisses de arquivos, geral
   1539 @c <en>@cindex Permissions, general
   1540 @cindex Permisses, 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, permisses de arquivos UNIX, no repositrio
   1546 @c <en>@cindex Read-only files, in repository
   1547 @cindex Arquivos somente-leitura, no repositrio
   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} so criados
   1562 somente-leitura, e voc no deve mudar as permisses
   1563 destes arquivos.  Os diretrios dentro do repositrio
   1564 devem dar permisso de escrita para as pessoas que tem
   1565 permisso para modificar os arquivos em cada diretrio.
   1566 Isto normalmente significa que voc deve criar um grupo
   1567 do UNIX (veja em group(5)) consistindo nas pessoas que
   1568 vo editar os arquivos num projeto, e ajustar o
   1569 repositrio tal que aquele grupo seja o dono do
   1570 diretrio.  (Em alguns sistemas, voc tambm vai
   1571 precisar ajustar o bit set-group-ID-on-execution nos
   1572 diretrios do repositrio (veja em chmod(1)) de forma
   1573 que arquivos e diretrio criados recebam o ID de grupo
   1574 do diretrio pai e no 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 diretrio.
   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 usurios devem ter direito de escrita
   1591 para pegar arquivos emprestados, j que o @sc{cvs} tem
   1592 que criar arquivos de trava (@pxref{Concorrncia}).  Voc
   1593 pode usar LockDir (diretrio de trava) no CVSROOT/config
   1594 para botar os arquivos de trava num lugar fora do
   1595 repositrio se voc quer permitir acesso
   1596 somente-leitura a alguns diretrios (@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 tambm que os usurios devem ter permisso de
   1612 escrita ao arquivo @file{CVSROOT/val-tags}.  O @sc{cvs} usa
   1613 tal arquivo para ter controle sobre quais etiquetas
   1614 (tags) so nomes de etiquetas vlidos ( s vezes
   1615 atualizado quando etiquetas so 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 usurio que o
   1621 devolveu por ltimo.  Isto tem pouco significado; o que
   1622 realmente importa  quem possui os diretrios.
   1623 
   1624 @c <en>@cindex CVSUMASK, environment variable
   1625 @cindex CVSUMASK, varivel de ambiente
   1626 @c <en>@cindex Umask, for repository files
   1627 @cindex Umask, para arquivos do repositrio
   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 razovel as permisses para novos
   1643 diretrios que vo sendo adicionados na rvore, mas
   1644 voc vai ter que mudar as permisses manualmente quando
   1645 um novo diretrio deve ter permisses diferentes das do
   1646 seu diretrio pai.  Se voc ajusta a varivel de
   1647 ambiente @code{CVSUMASK} ela vai controlar as
   1648 permisses que o @sc{cvs} usa na criao de diretrios
   1649 e/ou arquivos no repositrio.  @code{CVSUMASK} no mexe
   1650 nas permisses do diretrio de trabalho; tais arquivos
   1651 tm as permisses que so tpicas para novos arquivos,
   1652 exceto que algumas vezes o @sc{cvs} cria os arquivos
   1653 somente-leitura (veja as sees 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{Opes globais}; or
   1666 @code{CVSREAD}, @ref{Variveis 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{Repositrios remotos}), no h uma boa maneira
   1691 de ajustar o @code{CVSUMASK}; o ajuste na mquina
   1692 cliente no 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 documentao de seu sistema operacional.  Este
   1696 comportamento pode mudar em futuras verses do
   1697 @sc{cvs}; No se basear na configurao do @code{CVSUMASK}
   1698 no cliente no 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 permisses no diretrio @sc{cvsroot} e
   1725 nos diretrios abaixo dele na rvore; veja em
   1726 @ref{Segurana com autenticao 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 Segurana, 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 tm a habilidade de
   1759 permitir que um programa execute com a habilidade de
   1760 executar certas operaes que quem chamou o programa
   1761 no no 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} no foi escrito para
   1764 usar tais habilidades, logo, tentar instalar o @sc{cvs}
   1765 nesta forma vai gerar proteo apenas contra erros
   1766 acidentais; qualquer um que esteja tentando driblar a
   1767 segurana 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 sensao de segurana ou de abrir
   1773 buracos de segurana ainda maiores dos que os que voc
   1774 quer fechar.  Portanto leia a documentao de segurana
   1775 com pserver cuidadosamente se voc est pensando nesta
   1776 opo (@ref{Segurana com autenticao por senha}).
   1777 
   1778 @c <en>@node Windows permissions
   1779 @node Permisses no Windows
   1780 @c <en>@subsection File Permission issues specific to Windows
   1781 @subsection Questes sobre permisses de arquivos especficas ao Windows
   1782 @c <en>@cindex Windows, and permissions
   1783 @cindex Windows, e permisses
   1784 @c <en>@cindex File permissions, Windows-specific
   1785 @cindex Permisses de arquivos, especficas ao Windows
   1786 @c <en>@cindex Permissions, Windows-specific
   1787 @cindex Permisses, especficas 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 questes sobre permisses de arquivos so
   1795 especficas ao sistema operacional Windows (Windows 95,
   1796 Windows NT e presumivelmente futuros sistemas
   1797 operacionais nesta famlia.  Algumas coisas abaixo se
   1798 aplicam ao OS/2 mas no 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 repositrio
   1812 est num sistema de arquivos em rede de um servidor
   1813 Samba SMB, algumas pessoas relataram problemas com
   1814 permisses.  Habilitando WRITE=YES na configurao do
   1815 samba conserta/resolve.  ???Disclaimer:??? Eu no
   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 implicaes de habilitar
   1830 esta opo, 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 ns estamos
   1851 falando sobre o arquivo @file{backend.c} no diretrio
   1852 @file{yoyodyne/tc}, ento 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 invs.  No importa ao usurio onde, dentro do Attic,
   1882 fica o arquivo; @sc{cvs} mantm 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 reviso.  Por exemplo, se voc adiciona um
   1894 arquivo num ramo, ele vai ter uma reviso de
   1895 tronco num estado @code{morto} e uma reviso de
   1896 ramo num estado no-@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 repositrio
   1904 @c <en>@subsection The CVS directory in the repository
   1905 @subsection O diretrio CVS no repositrio
   1906 @c <en>@cindex CVS directory, in repository
   1907 @cindex diretrio CVS, no repositrio
   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 diretrio @file{CVS} em cada diretrio do repositrio
   1916 contm informaes tais como atributos de arquivos (num
   1917 arquivo chamado @file{CVS/fileattr}.  No futuro novos
   1918 arquivos ficaro neste diretrio, logo, implementaes
   1919 devem ignorar em silncio 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 srie de entradas
   1934 da seguinte forma (onde @samp{@{} e @samp{@}}
   1935 significam que o texto entre chaves pode ser repetido
   1936 zero ou vrias 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 padro 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} so reservados para futuras
   1957 expanses.  @sc{cvs} 1.9 e anteriores vo delet-los a
   1958 toda hora que ele escrever atributos de
   1959 arquivos.  @sc{cvs} 1.10 e posteriores vo 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 no  significante; um
   1965 programa escrevendo o arquivo fileattr pode
   1966 rearranj-las de acordo com sua prpria convenincia.
   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 No existe atualmente uma forma de tratar tabulaes ou quebras de linha
   1974 como caractere no nome do arquivo, @samp{=} em @var{attrname},
   1975 @samp{;} em @var{attrval}, etc.  Obs.: algumas
   1976 implementaes tambm no manipulam o caractere NUL em
   1977 nenhum dos campos, mas encorajamos implementaes 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 conveno, @var{attrname} comeando com @samp{_} 
   1984 para um atributo ao qual foi dado significado especial
   1985 pelo @sc{cvs}; outros @var{attrname}s so para
   1986 atributos definidos pelo usurio (ou que vo ser, j
   1987 que implementaes comearam suporte a atributos
   1988 definidos pelo usurio).
   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 Usurios 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 usurio, e @var{type} 
   2014 zero ou mais de edit,unedit,commit separados por
   2015 @samp{+} (isto , deixe em branco para nenhum; no 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 Usurios 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} so do diretrio 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.  Alm disso, joe est ???watching???
   2060 edies 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, ns 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 repositrio
   2077 
   2078 @c <en>@cindex #cvs.rfl, technical details
   2079 @cindex #cvs.rfl, detalhes tcnicos
   2080 @c <en>@cindex #cvs.pfl, technical details
   2081 @cindex #cvs.pfl, detalhes tcnicos
   2082 @c <en>@cindex #cvs.wfl, technical details
   2083 @cindex #cvs.wfl, detalhes tcnicos
   2084 @c <en>@cindex #cvs.lock, technical details
   2085 @cindex #cvs.lock, detalhes tcnicos
   2086 @c <en>@cindex Locks, cvs, technical details
   2087 @cindex Travas, cvs, detalhes tcnicos
   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 introduo s travas (locks) no @sc{cvs}
   2098 focando no comportamento visvel ao usurio, veja em
   2099 @ref{Concorrncia}.  A seo seguinte foi feita para
   2100 para pessoas que escrevem ferramentas as quais precisam
   2101 acessar um repositrio @sc{cvs} sem interferir com
   2102 outras ferramentas acessando o mesmo repositrio.  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 repositrio com um nome comeando
   2122 com @file{#cvs.rfl.}  uma trava de leitura.  Qualquer
   2123 arquivo no repositrio com um nome comando com
   2124 @file{#cvs.pfl}  uma trava de leitura
   2125 ???promotable???.  Qualquer arquivo no repositrio com
   2126 um nome comeando com
   2127 @file{#cvs.wfl}  uma trava de escrita.  Verses antigas
   2128 do @sc{cvs} (antes do @sc{cvs} 1.5) tambm criavam
   2129 arquivos com nomes comeando com @file{#cvs.tfl}, mas
   2130 estes no so 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 diretrio @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 diretrio
   2153 @file{#cvs.lock}.  Esta operao deve ser atmica (o
   2154 que deve ser verdade para a criao de um diretrio na
   2155 maioria dos sistemas operacionais).  Se isto falha por
   2156 que o diretrio 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 informao de sua escolha (por exemplo, nome de host e
   2160 nmero de identificaao de processo).  Ento remova o
   2161 diretrio @file{#cvs.lock} para ativar a trava
   2162 mestra.  Ento comee a ler o repositrio.  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 diretrio @file{#cvs.lock}, da mesma forma que com as
   2232 travas de leitura.  Ento verifique se no existem
   2233 arquivos cujos nomes comeam com @file{#cvs.rfl.} e se
   2234 no existem arquivos cujo nome comea com
   2235 @file{#cvs.pfl} que no 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 no existem ???readers??? ou travas
   2239 ???promotable??? de outros processos, ento crie um
   2240 arquivo cujo nome  @file{#cvs.wfl} seguido de
   2241 informaes 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 repositrio.  Quando
   2245 tiver terminado, primeiro remova o arquivo
   2246 @file{#cvs.wfl} e ento o diretrio
   2247 @file{#cvs.lock}.  Observe que ao contrrio do arquivo
   2248 @file{#cvs.rfl}, o  arquivo @file{#cvs.wfl}  apenas
   2249 informativo; ele no tem efeito na operao de trava
   2250 alm 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 diretrio no
   2263 repositrio, inclusive no caso do @file{Attic} e do @file{CVS}
   2264 sem incluir os subdiretrios que representam outros
   2265 diretrios sob controle de verso.  Para travar uma
   2266 rvore inteira, voc precisa travar cada diretrio
   2267 (observe que se voc no 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 tambm 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 no implementa isso.  Portanto, fazer uma trava de escrita
   2295 no @sc{cvs}  recomendado.  Veja os comentrios no
   2296 rcs_internal_lockfile no cdigo fonte do @sc{cvs} para
   2297 mais discusses/explicaes.
   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 so guardados no diretrio 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 diretrio @file{$CVSROOT/CVSROOT} contm os vrios
   2314 arquivos administrativos.  Em alguns aspectos este
   2315 diretrio  igual a qualquer outro diretrio no
   2316 repositrio; ele contm 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 diferenas.
   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, alm do arquivo
   2329 @sc{rcs}, existe tambm uma cpia de trabalho do
   2330 arquivo.  Por exemplo, existe um arquivo @sc{rcs}
   2331 @file{loginfo,v} e um arquivo @file{loginfo} que contm
   2332 a ultima reviso 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 cpia de trabalho em
   2348 @file{$CVSROOT/CVSROOT}.  Se no fizer, tem algo errado
   2349 (@pxref{Paus}).  Para adicionar os seus prprios
   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 padro 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 mdulos lenta (No estou bem certo se isso importa
   2377 tanto agora como quando o @sc{cvs} primeiramente
   2378 desenvolveu esta habilidade; no vi avaliaes).
   2379 Entretanto, fazendo edies apropriadas no cdigo 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 opo est em uso,
   2383 ento 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 informaes sobre o significado dos vrios arquivos administrativos,
   2391 veja em @ref{Arquivos administrativos}.
   2392 
   2393 @c <en>@node Working directory storage
   2394 @node Armazenamento do Diretrio de trabalho
   2395 @c <en>@section How data is stored in the working directory
   2396 @section Como os dados so guardados no diretrio 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 diretrio CVS, no diretrio 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 visveis de tempos em tempos,
   2423 tambm devemos falar sobre o que o @sc{cvs} bota nos
   2424 diretrios @file{CVS} nos diretrios de trabalho.
   2425 Assim como com o repositrio, o @sc{cvs} manipula esta
   2426 informao 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 usurio
   2429 grfica @code{jCVS} ou o pacote para emacs @code{VC},
   2430 precisarem ver o que tem l.  Tais programas devem
   2431 seguir as recomendaes nesta seo se eles querem
   2432 interagir com outros programas que usam estes arquivos,
   2433 inclusive verses 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 diretrio @file{CVS} contm vrios
   2442 arquivos.  Programas que esto lendo este diretrio
   2443 devem ignorar em silncio arquivos que encontrem no
   2444 diretrio mas que no estejam documentados aqui, para
   2445 permitir expanses 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 so guardados de acordo com a conveno de
   2455 arquivo de texto do sistema em questo.  Isto significa
   2456 que diretrios de trabalho no so portveis entre
   2457 sistemas com diferentes convenes para armazenar
   2458 arquivos de texto.  Isto  de propsito, baseado na
   2459 teoria de que os arquivos sendo gerenciados pelo
   2460 @sc{cvs} provavelmente tambm no seriam portveis
   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 contm a raiz atual do @sc{cvs}, como
   2468 descrito em @ref{Especificando um repositrio}.
   2469 
   2470 @c <en>@cindex Repository file, in CVS directory
   2471 @cindex O arquivo Repository, no diretrio CVS
   2472 @c <en>@cindex CVS/Repository file
   2473 @cindex O arquivo CVS/Repository
   2474 @c <en>@item Repository
   2475 @item Repositrio
   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 contm o diretrio no qual est o
   2486 repositrio correspondente ao diretrio atual.  Pode
   2487 ser um caminho absoluto ou relativo; @sc{cvs} adquiriu
   2488 a habilidade de ler ambos os formatos desde a verso
   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{Repositrio} 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 diretrio de trabalho particular no corresponde a
   2526 um diretrio no repositrio, ento o @file{Repositrio}
   2527 deve conter @file{CVSROOT/Emptydir}.
   2528 @c <en>@cindex Emptydir, in CVSROOT directory
   2529 @cindex Emptydir, no diretrio CVSROOT
   2530 @c <en>@cindex CVSROOT/Emptydir directory
   2531 @cindex O diretrio CVSROOT/Emptydir
   2532 
   2533 @c <en>@cindex Entries file, in CVS directory
   2534 @cindex O arquivo Entries, no diretrio 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 diretrios no
   2546 diretrio de trabalho.  O primeiro caractere de cada
   2547 linha indica de que tipo  a linha.  Se  caractere no
   2548 for reconhecido, os programas lendo o arquivo devem
   2549 pular de linha em silncio, para permitir futuras expanses.
   2550 
   2551 @c <en>If the first character is @samp{/}, then the format is:
   2552 Se o primeiro caractere  @samp{/}, ento 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{]} no so partes da entrada, mas
   2593 indicam que o @samp{+} e o marcador de conflito so
   2594 opcionais.  @var{name}  o nome do arquivo no
   2595 diretrio.  @var{revision} e a reviso da qual o
   2596 arquivo no diretrio de trabalho deriva, ou @samp{0}
   2597 para um arquivo adicionado, ou @samp{-} seguido de uma
   2598 reviso 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 modificao do
   2604 arquivo, significa que o arquivo foi modificado.  
   2605 armazenado no formato usando pela funo ISO C
   2606 asctime() (por exemplo, @samp{Sun Apr  7 01:29:26
   2607 1996}).  Pode-se escrever uma string que no esteja
   2608 neste formato, por exemplo, @samp{Result of merge},
   2609 para indicar que o arquivo deve ser sempre considerado
   2610 como modificado.  Este no  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 modificao do arquivo depois do arquivo ter sido
   2616 escrito com marcaes de conflito (@pxref{Exemplo de conflitos}).
   2617 Logo, se @var{conflict}  posteriormente o mesmo que o
   2618 tempo de modificao real do arquivo significa que o
   2619 usurio obviamente no resolveu o conflito.  @var{options}
   2620 contm opes adesivas (por exemplo @samp{-kb} para um
   2621 arquivo binrio).  @var{tagdate} contm @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} contm um par de
   2625 timestamps separados por um espao, ao invs de um
   2626 nico timestamp, voc est lidando com uma verso do
   2627 @sc{cvs} anterior ao @sc{cvs} 1.5 (sem documentao 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 horrio do timestamp no CVS/Entries (local ou
   2640 universal) deve ser igual ao que o sistema
   2641 operacional guarda para o timestamp do prprio 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 tambm.  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 no paream estar
   2648 modificados simplesmente por que o fuso horrio mudou
   2649 (por exemplo, saindo ou entrando no horrio de vero).
   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}, ento ele indica um subdiretrio.  @samp{D}
   2663 sozinho em uma linha indica que o programa
   2664 que escreveu o arquivo @file{Entries} registra
   2665 subdiretrios (portanto, se existe tal linha e nenhuma
   2666 outra linha comeando com @samp{D}, conclui-se que no
   2667 h subdiretrios).  Caso contrrio, 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 subdiretrio, e todos os
   2680 campos @var{filler} devem ser ignorados em silncio,
   2681 para expanses 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 diretrio 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 no registra qualquer informao a mais
   2719 que no @file{Entries}, mas fornece um jeito de
   2720 atualizar a informao sem ter que reescrever todo o
   2721 arquivo @file{Entries}, incluindo a habilidade de
   2722 preservar a informao mesmo se o programa que estava
   2723 escrevendo o @file{Entries} e o @file{Entries.Log}
   2724 aborta abruptamente.  Programas que esto lendo o
   2725 arquivo @file{Entries} devem tambm verificar pelo
   2726 @file{Entries.Log}.  Se este ltimo existe, eles devem
   2727 ler o @file{Entries} e ento aplicar as mudanas
   2728 mencionadas no @file{Entries.Log}.  Depois de aplicar
   2729 as mudanas, a prtica 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 espao 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 silncio (para expanso futura).  Se o
   2740 segundo caractere da linha em @file{Entries.Log} no 
   2741 um espao, ento foi escrito por uma verso antiga do
   2742 @sc{cvs} (no 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 esto escrevendo ao invs 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 diretrio 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 temporrio.  O uso recomendado 
   2759 escrever um novo arquivo entries para o
   2760 @file{Entries.Backup}, e ento renome-lo
   2761 (atomicamente, quando possvel) para @file{Entries}.
   2762 
   2763 @c <en>@cindex Entries.Static file, in CVS directory
   2764 @cindex O arquivo Entries.Static, no diretrio 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 no.  Se ele existe, ento quer dizer que
   2778 apenas parte de um diretrio foi pego e o @sc{cvs} no
   2779 vai criar arquivos adicionais neste diretrio.  Para
   2780 limpar isto, use o comando @code{update} com a opo
   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 diretrio 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 diretrio, etiquetas/datas adesivas
   2802 @c <en>@cindex Per-directory sticky tags/dates
   2803 @cindex Etiquetas/datas adesivas por diretrio
   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 contm as etiquetas (tags) ou datas
   2818 adesivas por diretrio.  O primeiro caractere  @samp{T}
   2819 para uma etiqueta de ramo, @samp{N} para uma etiqueta
   2820 que no  de ramo, ou @samp{D} para uma data, ou outro
   2821 caractere que quer dizer que o arquivo deve ser
   2822 ignorado em silncio, para expanso futura.  Este
   2823 caractere  seguido de uma etiqueta ou data.  Observe
   2824 que etiquetas ou data adesivas por diretrio so usadas
   2825 para coisas como ???applying to??? arquivos que
   2826 acabaram de ser adicionados; ???they (the tags or the files)???
   2827 podem no ser os mesmos assim como as etiquetas
   2828 adesivas ou datas em arquivos isolados.  Para
   2829 informaes 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 diretrio 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 notificaes (por exemplo, sobre
   2849 @code{edit} ou @code{unedit}) que ainda no foram
   2850 mandadas para o servidor.  Seu formato ainda no est
   2851 documentado aqui.
   2852 
   2853 @c <en>@cindex Notify.tmp file, in CVS directory
   2854 @cindex O arquivo Notify.tmp, no diretrio 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 contedo primeiro em
   2867 @file{Notify.tmp} e ento (atomicamente, quando
   2868 possvel), renomeie-o para @file{Notify}.
   2869 
   2870 @c <en>@cindex Base directory, in CVS directory
   2871 @cindex Diretrio Base, no diretrio CVS
   2872 @c <en>@cindex CVS/Base directory
   2873 @cindex Diretrio 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??? esto em uso, ento um comando
   2882 @code{edit} guarda a cpia original do arquivo no
   2883 diretrio @file{Base}.  Isto permite que o comando
   2884 @code{unedit} opere mesmo se estiver sem comunicao
   2885 com o servidor.
   2886 
   2887 @c <en>@cindex Baserev file, in CVS directory
   2888 @cindex O arquivo Baserev, no diretrio 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 reviso de cada arquivo no diretrio
   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 expanso futura.
   2907 
   2908 @c <en>@cindex Baserev.tmp file, in CVS directory
   2909 @cindex O arquivo Baserev.tmp, no diretrio 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 contedo primeiro em @file{Baserev.tmp} e ento
   2923 (atomicamente, quando possvel), renomei-o para @file{Baserev}.
   2924 
   2925 @c <en>@cindex Template file, in CVS directory
   2926 @cindex O arquivo Template, no diretrio 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 contm 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 mdulo
   2952 @c <en>@cindex Defining modules (intro)
   2953 @cindex Definindo mdulos (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 diretrio @file{$CVSROOT/CVSROOT} contm alguns
   2970 @dfn{Arquivos administrativos}.  @xref{Arquivos
   2971 administrativos}, para uma descrio 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 mdulos no
   2981 repositrio.  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 contm o nome do mdulo, um
   3002 espao e o diretrio onde o mdulo est.  O diretrio 
   3003 um caminho relativo em @code{$CVSROOT}.  As ltimas
   3004 quatro linhas no exemplo acima so 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 mdulo chamado @samp{modules} usa
   3014 funcionalidades que no so explicadas
   3015 aqui. @xref{modules}, para uma explicao 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 mdulo.  Use
   3031 @samp{cvs checkout CVSROOT} para obter uma cpia de
   3032 trabalho, edite-a e ???commit??? suas mudanas 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  possvel ???commit??? um arquivo administrativo
   3040 corrompido.  Em geral, voc pode consertar o erro e
   3041 devolv-lo numa nova reviso, mas s vezes um erro
   3042 particularmente ruim nos arquivos administrativos torna
   3043 impossvel ???commit??? novas revises.
   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 Repositrios mltiplos
   3051 @c <en>@section Multiple repositories
   3052 @section Repositrios mltiplos
   3053 @c <en>@cindex Multiple repositories
   3054 @cindex Repositrios mltiplos
   3055 @c <en>@cindex Repositories, multiple
   3056 @cindex Repositrios, mltiplos
   3057 @c <en>@cindex Many repositories
   3058 @cindex Muitos repositrios
   3059 @c <en>@cindex Parallel repositories
   3060 @cindex Repositrios paralelos
   3061 @c <en>@cindex Disjoint repositories
   3062 @cindex Repositrios Disjuntos
   3063 @c <en>@cindex CVSROOT, multiple repositories
   3064 @cindex CVSROOT, Repositrios Mltiplos
   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 situaes  uma boa idia ter mais de um
   3078 repositrio.  Por exemplo, se voc tem duas equipes de
   3079 desenvolvimento que trabalham em projetos separados sem
   3080 compartilhar nenhum cdigo.  Tudo que voc tem que
   3081 fazer para ter vrios repositrios  especificar o
   3082 repositrio apropriado, usando a varivel de ambiente
   3083 @code{CVSROOT} ou a opo @samp{-d} com o @sc{cvs}, ou
   3084 (depois de ter pego um diretrio de trabalho)
   3085 simplesmente deixando o @sc{cvs} usar o repositrio de
   3086 onde veio o diretrio de trabalho (@pxref{Especificando
   3087 um repositrio}).
   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 mltiplos repositrios  que
   3100 eles podem residir em diferentes servidores.  Com o
   3101 @sc{cvs} verso 1.10, um comando no pode fazer
   3102 recurso ???into??? diretrios ???from??? repositrios
   3103 diferentes.  Com ???development versions??? do
   3104 @sc{cvs}, voc pode obter cdigo de mltiplos
   3105 servidores para o seu diretrio de trabalho.  @sc{cvs}
   3106 vai fazer a recurso e cuidar dos detalhes para fazer
   3107 conexo em quantas mquinas quantas forem necessrias
   3108 para executar o comando pedido.  Aqui est um exemplo
   3109 de como preparar um diretrio 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 diretrio de
   3123 trabalho.  Depois de feitos, o comando @code{cvs update}
   3124 vai contactar o server2, para atualizar o subdiretrio
   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 repositrio
   3133 @c <en>@section Creating a repository
   3134 @section Criando um repositrio
   3135 
   3136 @c <en>@cindex Repository, setting up
   3137 @cindex Repositrio, preparando
   3138 @c <en>@cindex Creating a repository
   3139 @cindex Criando um repositrio
   3140 @c <en>@cindex Setting up a repository
   3141 @cindex Preparando um repositrio
   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 repositrio do @sc{cvs}, escolha
   3149 primeiramente a mquina e o disco onde voc deseja
   3150 armazenar o histrico de revises dos fontes.
   3151 requisitos de CPU e memria so modestos.  Portanto,
   3152 muitas mquinas sero 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 developers
   3168 @c <en>will be working, you'll want disk space for
   3169 @c <en>approximately one working directory for each developer
   3170 @c <en>(either the entire tree or a portion of it, depending
   3171 @c <en>on what each developer uses).
   3172 Para estimar os requisitos de espao em disco, se voc
   3173 estiver importando arquivos RCS de outro sistema, o
   3174 tamanho destes arquivos vai ser o tamanho inicial do
   3175 seu repositrio, ou se voc est comeando sem nenhum
   3176 histrico de verses, uma boa regra  reservar para o
   3177 repositrio do servidor trs vezes o tamanho do cdigo
   3178 que estar sob os cuidados do @sc{cvs} (Isto vai
   3179 eventualmente estourar, mas no por enquanto).
   3180 Nas mquinas dos desenvolvedores, voc vai pracisar de
   3181 aproximadamente o espao em disco de um diretrio de
   3182 trabalho para cada desenvolvedor (ou a rvore inteira
   3183 ou uma poro dela, dependendo do que o desenvolvedor
   3184 usa).
   3185 
   3186 @c <en>The repository should be accessible
   3187 @c <en>(directly or via a networked file system) from all
   3188 @c <en>machines which want to use @sc{cvs} in server or local
   3189 @c <en>mode; the client machines need not have any access to
   3190 @c <en>it other than via the @sc{cvs} protocol.  It is not
   3191 @c <en>possible to use @sc{cvs} to read from a repository
   3192 @c <en>which one only has read access to; @sc{cvs} needs to be
   3193 @c <en>able to create lock files (@pxref{Concurrency}).
   3194 O repositrio deve estar acessvel (diretamente ou
   3195 atravs de um sistema de arquivos de rede) ???from???
   3196 @c from-translator-to-reviewer: "from" or "to"?
   3197 todas as mquinas que queiram usar o @sc{cvs} em modo
   3198 servidor ou localmente; a mquina cliente s precisa
   3199 ter acesso a ele atravs do protocolo do @sc{cvs}.  No
   3200  possvel usar o @sc{cvs} para ler de um repositrio
   3201 onde s se tem permisso de leitura, pois o @sc{cvs}
   3202 tem que ser capaz de criar arquivos de trava
   3203 (@pxref{Concorrncia}).
   3204 
   3205 @c <en>@cindex init (subcommand)
   3206 @cindex init (subcommand)
   3207 @c <en>To create a repository, run the @code{cvs init}
   3208 @c <en>command.  It will set up an empty repository in the
   3209 @c <en>@sc{cvs} root specified in the usual way
   3210 @c <en>(@pxref{Repository}).  For example,
   3211 Para criar um repositrio, rode o comando @code{cvs
   3212 init}.  Ele vai criar um repositrio vazio no raiz do
   3213 @sc{cvs} especificado da forma usual
   3214 (@pxref{Repositrio}).  For example,
   3215 
   3216 @example
   3217 cvs -d /usr/local/cvsroot init
   3218 @end example
   3219 
   3220 @c <en>@code{cvs init} is careful to never overwrite any
   3221 @c <en>existing files in the repository, so no harm is done if
   3222 @c <en>you run @code{cvs init} on an already set-up
   3223 @c <en>repository.
   3224 O @code{cvs init} tem o cuidado de nunca sobreescrever
   3225 nenhum arquivo no repositrio, logo, no h perigo em
   3226 rodar o @code{cvs init} num repositrio j criado.
   3227 
   3228 @c <en>@code{cvs init} will enable history logging; if you
   3229 @c <en>don't want that, remove the history file after running
   3230 @c <en>@code{cvs init}.  @xref{history file}.
   3231 @code{cvs init} pode guardar um registro histrico
   3232 (history log); se
   3233 voc no quer guardar isto, remova o arquivo history
   3234 depois de rodar o @code{cvs init}.  @xref{arquivo
   3235 history (histrico)}.
   3236 
   3237 @c <en>@node Backing up
   3238 @node Fazendo backup
   3239 @c <en>@section Backing up a repository
   3240 @section Fazendo backup de um repositrio
   3241 @c <en>@cindex Repository, backing up
   3242 @cindex Repositrio, fazendo backup
   3243 @c <en>@cindex Backing up, repository
   3244 @cindex Fazendo backup, repositrio
   3245 
   3246 @c <en>There is nothing particularly magical about the files
   3247 @c <en>in the repository; for the most part it is possible to
   3248 @c <en>back them up just like any other files.  However, there
   3249 @c <en>are a few issues to consider.
   3250 No h nada particularmente mgico sobre os arquivos no
   3251 repositrio; Para a maior parte deles  possvel fazer
   3252 backup da mesma forma que com qualquer
   3253 arquivo.  Entretanto, existem alguns fatos a considerar.
   3254 
   3255 @c <en>@cindex Locks, cvs, and backups
   3256 @cindex Travas, cvs e backups
   3257 @c <en>@cindex #cvs.rfl, and backups
   3258 @cindex #cvs.rfl, and backups
   3259 @c <en>The first is that to be paranoid, one should either not
   3260 @c <en>use @sc{cvs} during the backup, or have the backup
   3261 @c <en>program lock @sc{cvs} while doing the backup.  To not
   3262 @c <en>use @sc{cvs}, you might forbid logins to machines which
   3263 @c <en>can access the repository, turn off your @sc{cvs}
   3264 @c <en>server, or similar mechanisms.  The details would
   3265 @c <en>depend on your operating system and how you have
   3266 @c <en>@sc{cvs} set up.  To lock @sc{cvs}, you would create
   3267 @c <en>@file{#cvs.rfl} locks in each repository directory.
   3268 @c <en>See @ref{Concurrency}, for more on @sc{cvs} locks.
   3269 @c <en>Having said all this, if you just back up without any
   3270 @c <en>of these precautions, the results are unlikely to be
   3271 @c <en>particularly dire.  Restoring from backup, the
   3272 @c <en>repository might be in an inconsistent state, but this
   3273 @c <en>would not be particularly hard to fix manually.
   3274 Primeiramente, para ser paranico, alguem no deve nem
   3275 sequer usar o @sc{cvs} durante o backup, ou fazer o
   3276 programa de backup travar o @sc{cvs} enquanto estiver
   3277 executando.  Para o @sc{cvs} no ser usado, voc deve
   3278 proibir logins para mquinas que possam acessar o
   3279 repositrio ou desligar o seu servidor @sc{cvs} or
   3280 algum mecanismo similar.  Os detalhes vo depender do
   3281 seu sistema operacional e de como voc configurou o seu
   3282 @sc{cvs}.  Para travar o @sc{cvs}, voc deve criar
   3283 travas @file{#cvs.rfl} em cada diretrio do
   3284 repositrio.  Veja em @ref{Concorrncia}, para saber
   3285 mais sobre travas no @sc{cvs}.  ???Having said all
   3286 this???,
   3287 @c from-translator-to-reviewer can I substitute for
   3288 @c "nevertheless"?
   3289 se voc apenas fizer o backup sem nenhuma
   3290 destas precaues, os resultados dificilmente vo ser
   3291 catastrficos.  Ao recuperar do backup, o repositrio
   3292 pode estar em um estado inconsistente, mas isto no
   3293 deve ser muito difcil de consertar manualmente.
   3294 
   3295 @c <en>When you restore a repository from backup, assuming
   3296 @c <en>that changes in the repository were made after the time
   3297 @c <en>of the backup, working directories which were not
   3298 @c <en>affected by the failure may refer to revisions which no
   3299 @c <en>longer exist in the repository.  Trying to run @sc{cvs}
   3300 @c <en>in such directories will typically produce an error
   3301 @c <en>message.  One way to get those changes back into the
   3302 @c <en>repository is as follows:
   3303 Quando voc recupera um repositrio de um backup,
   3304 supondo que mudanas no repositrio foram feitas depois
   3305 da criao do backup, diretrio de trabalho que no
   3306 foram afetados pela falha podem se referenciar a
   3307 revises que no mais existam no repositrio.  Tentar
   3308 rodar o @sc{cvs} em tais diretrios vai gerar uma
   3309 mensagem de erro.  uma forma de desfazer estas mudanas
   3310 no repositrio  dada a seguir:
   3311 
   3312 @itemize @bullet
   3313 @item
   3314 @c <en>Get a new working directory.
   3315 Gere um novo diretrio de trabalho.
   3316 
   3317 @item
   3318 @c <en>Copy the files from the working directory from before
   3319 @c <en>the failure over to the new working directory (do not
   3320 @c <en>copy the contents of the @file{CVS} directories, of
   3321 @c <en>course).
   3322 Copie os arquivos do diretrio de trabalho de
   3323 antes da falha para o novo diretrio de trabalho (no
   3324 copie o contedo dos diretrios @file{CVS}, obviamente).
   3325 
   3326 @item
   3327 @c <en>Working in the new working directory, use commands such
   3328 @c <en>as @code{cvs update} and @code{cvs diff} to figure out
   3329 @c <en>what has changed, and then when you are ready, commit
   3330 @c <en>the changes into the repository.
   3331 Mexa no novo diretrio de trabalho, usando comandos
   3332 como @code{cvs update} e @code{cvs diff} para descobrir
   3333 o que mudou, e quando terminar, faa ???commit??? nas
   3334 mudanas para o repositrio.
   3335 @end itemize
   3336 
   3337 @c <en>@node Moving a repository
   3338 @node Movendo um repositrio
   3339 @c <en>@section Moving a repository
   3340 @section Movendo um repositrio
   3341 @c <en>@cindex Repository, moving
   3342 @cindex  Repositrio, movendo
   3343 @c <en>@cindex Moving a repository
   3344 @cindex  Movendo um repositrio
   3345 @c <en>@cindex Copying a repository
   3346 @cindex Copiando um repositrio
   3347 
   3348 @c <en>Just as backing up the files in the repository is
   3349 @c <en>pretty much like backing up any other files, if you
   3350 @c <en>need to move a repository from one place to another it
   3351 @c <en>is also pretty much like just moving any other
   3352 @c <en>collection of files.
   3353 Assim como fazer backup dos arquivos no repositrio 
   3354 muito parecido com fazer backup de quaisquer outros
   3355 arquivos, se voc precisar mover um repositrio de um
   3356 lugar para outro,  muito parecido com simplesmente
   3357 mover uma coleo de arquivos.
   3358 
   3359 @c <en>The main thing to consider is that working directories
   3360 @c <en>point to the repository.  The simplest way to deal with
   3361 @c <en>a moved repository is to just get a fresh working
   3362 @c <en>directory after the move.  Of course, you'll want to
   3363 @c <en>make sure that the old working directory had been
   3364 @c <en>checked in before the move, or you figured out some
   3365 @c <en>other way to make sure that you don't lose any
   3366 @c <en>changes.  If you really do want to reuse the existing
   3367 @c <en>working directory, it should be possible with manual
   3368 @c <en>surgery on the @file{CVS/Repository} files.  You can
   3369 @c <en>see @ref{Working directory storage}, for information on
   3370 @c <en>the @file{CVS/Repository} and @file{CVS/Root} files, but
   3371 @c <en>unless you are sure you want to bother, it probably
   3372 @c <en>isn't worth it.
   3373 O mais importante a se considerar  que diretrios de
   3374 trabalho apontam para o repositrio.  A forma mais
   3375 simples de lidar com um repositrio movido 
   3376 simplesmente pegar um diretrio de trabalho novo logo
   3377 aps da mudana.   claro que voc vai querer se
   3378 certificar que o diretrio de trabalho antigo foi
   3379 devolvido antes da mudana, ou usar de qualquer outro
   3380 artifcio para se certificar de que no perder nenhuma
   3381 mudana.  Se voc realmente quer reusar o antigo diretrio de
   3382 trabalho,  possvel, desde que voc faa uma operao
   3383 manual nos arquivos @file{CVS/Repository}.  Voc pode
   3384 ver em @ref{Armazenamento do Diretrio de trabalho},
   3385 para informaes sobre os arquivos
   3386 @file{CVS/Repository} e @file{CVS/Root}, mas s se voc
   3387 quiser ter aborrecimentos, caso contrrio esta opo
   3388 no  boa.
   3389 @c FIXME: Surgery on CVS/Repository should be avoided
   3390 @c by making RELATIVE_REPOS the default.
   3391 @c FIXME-maybe: might want some documented way to
   3392 @c change the CVS/Root files in some particular tree.
   3393 @c But then again, I don't know, maybe just having
   3394 @c people do this in perl/shell/&c isn't so bad...
   3395 
   3396 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   3397 @c <en>@node Remote repositories
   3398 @node Repositrios remotos
   3399 @c <en>@section Remote repositories
   3400 @section Repositrios remotos
   3401 @c <en>@cindex Repositories, remote
   3402 @cindex Repositrios, remotos
   3403 @c <en>@cindex Remote repositories
   3404 @cindex Repositrios remotos
   3405 @c <en>@cindex Client/Server Operation
   3406 @cindex Operao cliente/Servidor
   3407 @c <en>@cindex Server, CVS
   3408 @cindex Servidor, CVS
   3409 @c <en>@cindex Remote repositories, port specification
   3410 @cindex Repositrios remotos, especificao de porta
   3411 @c <en>@cindex Repositories, remote, port specification
   3412 @cindex Repositrios, remotos, especificao de porta
   3413 @c <en>@cindex Client/Server Operation, port specification
   3414 @cindex Operao cliente/Servidor, especificao de porta
   3415 @c <en>@cindex pserver (client/server connection method), port specification
   3416 @cindex pserver (mtodo de conexo cliente/servidor), especificao de porta
   3417 @c <en>@cindex kserver (client/server connection method), port specification
   3418 @cindex kserver (mtodo de conexo cliente/servidor), especificao de porta
   3419 @c <en>@cindex gserver (client/server connection method), port specification
   3420 @cindex gserver (mtodo de conexo cliente/servidor), especificao de porta
   3421 @c <en>@cindex port, specifying for remote repositories
   3422 @cindex porta, especificao para repositrios remotos
   3423 
   3424 @c <en>        Your working copy of the sources can be on a
   3425 @c <en>different machine than the repository.  Using @sc{cvs}
   3426 @c <en>in this manner is known as @dfn{client/server}
   3427 @c <en>operation.  You run @sc{cvs} on a machine which can
   3428 @c <en>mount your working directory, known as the
   3429 @c <en>@dfn{client}, and tell it to communicate to a machine
   3430 @c <en>which can mount the repository, known as the
   3431 @c <en>@dfn{server}.  Generally, using a remote
   3432 @c <en>repository is just like using a local one, except that
   3433 @c <en>the format of the repository name is:
   3434 Sua cpia de trabalho dos fontes pode estar em
   3435 uma mquina diferente da do repositrio.  Esta forma de
   3436 usar o @sc{cvs}  chamada operao
   3437 @dfn{client/server}.  Voc roda o @sc{cvs} numa mquina
   3438 que possa montar seu diretrio de trabalho, conhecida
   3439 como o @dfn{cliente}, e diz a ela para se comunicar com
   3440 uma mquina que pode montar o repositrio, chamada de
   3441 @dfn{servidor}.  No geral, usar um repositrio remoto
   3442  a mesma coisa que usar um local, exceto que o formato
   3443 do nome do repositrio :
   3444 
   3445 @example
   3446 [:@var{method}:][[@var{user}][:@var{password}]@@]@var{hostname}[:[@var{port}]]/path/to/repository
   3447 @end example
   3448 
   3449 @c <en>Specifying a password in the repository name is not recommended during
   3450 @c <en>checkout, since this will cause @sc{cvs} to store a cleartext copy of the
   3451 @c <en>password in each created directory.  @code{cvs login} first instead
   3452 @c <en>(@pxref{Password authentication client}).
   3453 Colocar a senha no nome do repositrio durante
   3454 operaes de checkout no  recomendado, j que isto
   3455 vai fazer com que o @sc{cvs} guarde uma cpia da senha
   3456 em texto em cada diretrio criado.  D um @code{cvs
   3457 login} primeiro ao invs disto
   3458 (@pxref{Cliente de autenticao por senha}).
   3459 
   3460 @c <en>The details of exactly what needs to be set up depend
   3461 @c <en>on how you are connecting to the server.
   3462 Os detalhes de exatamente o que precisa ser preparado
   3463 depende de como voc est conectado ao seu servidor.
   3464 
   3465 @c <en>If @var{method} is not specified, and the repository
   3466 @c <en>name contains @samp{:}, then the default is @code{ext}
   3467 @c <en>or @code{server}, depending on your platform; both are
   3468 @c <en>described in @ref{Connecting via rsh}.
   3469 Se @var{method} no est especificado, e se o nome do
   3470 repositrio contm @samp{:}, ento o padro 
   3471 @code{ext} ou @code{server}, dependendo de sua
   3472 plataforma; ambos esto descritos em
   3473 @ref{Se conectando via rsh}.
   3474 @c Should we try to explain which platforms are which?
   3475 @c Platforms like unix and VMS, which only allow
   3476 @c privileged programs to bind to sockets <1024 lose on
   3477 @c :server:
   3478 @c Platforms like Mac and VMS, whose rsh program is
   3479 @c unusable or nonexistent, lose on :ext:
   3480 @c Platforms like OS/2 and NT probably could plausibly
   3481 @c default either way (modulo -b troubles).
   3482 
   3483 @c FIXME: We need to have a better way of explaining
   3484 @c what method to use.  This presentation totally
   3485 @c obscures the fact that :ext: and CVS_RSH is the way to
   3486 @c use SSH, for example.  Plus it incorrectly implies
   3487 @c that you need an @code{rsh} binary on the client to use
   3488 @c :server:.
   3489 @c Also note that rsh not pserver is the right choice if you want
   3490 @c users to be able to create their own repositories
   3491 @c (because of the --allow-root related issues).
   3492 @menu
   3493 @c <en>* Server requirements::         Memory and other resources for servers
   3494 * Requisitos do servidor::         Memria e outros recursos para servidores
   3495 @c <en>* Connecting via rsh::          Using the @code{rsh} program to connect
   3496 * Se conectando via rsh::          Usando o programa @code{rsh} para se conectar
   3497 @c <en>* Password authenticated::      Direct connections using passwords
   3498 * Autenticao por senha::         Conexes diretas usando senhas
   3499 @c <en>* GSSAPI authenticated::        Direct connections using GSSAPI
   3500 * Autenticao GSSAPI::            Conexes diretas usando GSSAPI
   3501 @c <en>* Kerberos authenticated::      Direct connections with kerberos
   3502 * Autenticao kerberos::          Conexes diretas com kerberos
   3503 @c <en>* Connecting via fork::         Using a forked @code{cvs server} to connect
   3504 * Conectando via fork::         Usando um forked @code{cvs server} para conectar
   3505 @end menu
   3506 
   3507 @c <en>@node Server requirements
   3508 @node Requisitos do servidor
   3509 @c <en>@subsection Server requirements
   3510 @subsection Requisitos do servidor
   3511 
   3512 @c <en>The quick answer to what sort of machine is suitable as
   3513 @c <en>a server is that requirements are modest---a server
   3514 @c <en>with 32M of memory or even less can handle a fairly
   3515 @c <en>large source tree with a fair amount of activity.
   3516 A resposta rpida para que tipo de mquina  adequada
   3517 para um servidor  que os requisitos so modestos---um
   3518 servidor com 32M de memria ou at menos pode manipular
   3519 uma rvore de fontes realmente grande com uma boa
   3520 quantidade de atividade.
   3521 @c Say something about CPU speed too?  I'm even less sure
   3522 @c what to say on that subject...
   3523 
   3524 @c <en>The real answer, of course, is more complicated.
   3525 @c <en>Estimating the known areas of large memory consumption
   3526 @c <en>should be sufficient to estimate memory requirements.
   3527 @c <en>There are two such areas documented here; other memory
   3528 @c <en>consumption should be small by comparison (if you find
   3529 @c <en>that is not the case, let us know, as described in
   3530 @c <en>@ref{BUGS}, so we can update this documentation).
   3531 A resposta real, obviamente,  mais complicada.  Estimar
   3532 as reas conhecidas de grande consumo de memria deve
   3533 ser suficiente para estimar os requisitos de
   3534 memria.  Existem duas destas tais reas documentadas
   3535 aqui; Outros consumos de memria devem ser pequenos
   3536 relativamente (se voc notar que este no  o caso, nos
   3537 faa saber, como descrito em @ref{Paus}, assim
   3538 poderemos atualizar este documento).
   3539 
   3540 @c <en>The first area of big memory consumption is large
   3541 @c <en>checkouts, when using the @sc{cvs} server.  The server
   3542 @c <en>consists of two processes for each client that it is
   3543 @c <en>serving.  Memory consumption on the child process
   3544 @c <en>should remain fairly small.  Memory consumption on the
   3545 @c <en>parent process, particularly if the network connection
   3546 @c <en>to the client is slow, can be expected to grow to
   3547 @c <en>slightly more than the size of the sources in a single
   3548 @c <en>directory, or two megabytes, whichever is larger.
   3549 A primeira rea de grande consumo de memria so os
   3550 grandes checkouts, quando usando o servidor @sc{cvs}.
   3551 O servidor consiste de dois processos para cada cliente
   3552 que est servindo.  O consumo de memria no processo
   3553 filho deve permanecer pequeno.  O consumo de memria no
   3554 processo pai, perticularmente se a conexo de rede com
   3555 o cliente  pequena, pode crescer para algo um pouco
   3556 maior que o tamanho dos fontes num diretrio, ou dois
   3557 megabytes, o que for maior.
   3558 @c "two megabytes" of course is SERVER_HI_WATER.  But
   3559 @c we don't mention that here because we are
   3560 @c documenting the default configuration of CVS.  If it
   3561 @c is a "standard" thing to change that value, it
   3562 @c should be some kind of run-time configuration.
   3563 @c
   3564 @c See cvsclient.texi for more on the design decision
   3565 @c to not have locks in place while waiting for the
   3566 @c client, which is what results in memory consumption
   3567 @c as high as this.
   3568 
   3569 @c <en>Multiplying the size of each @sc{cvs} server by the
   3570 @c <en>number of servers which you expect to have active at
   3571 @c <en>one time should give an idea of memory requirements for
   3572 @c <en>the server.  For the most part, the memory consumed by
   3573 @c <en>the parent process probably can be swap space rather
   3574 @c <en>than physical memory.
   3575 Multiplicando o tamanho de cada servidor @sc{cvs} pelo
   3576 nmero de servidores que voc espera ter ativos em cada
   3577 momento deve dar uma idia dos requisitos de memria
   3578 para cada servidor.  Para a maior parte, a memria
   3579 consumida pelo processo pai pode provavelmente ser
   3580 espao de troca ao invs de memria fsica.
   3581 @c Has anyone verified that notion about swap space?
   3582 @c I say it based pretty much on guessing that the
   3583 @c ->text of the struct buffer_data only gets accessed
   3584 @c in a first in, first out fashion, but I haven't
   3585 @c looked very closely.
   3586 
   3587 @c What about disk usage in /tmp on the server?  I think that
   3588 @c it can be substantial, but I haven't looked at this
   3589 @c again and tried to figure it out ("cvs import" is
   3590 @c probably the worst case...).
   3591 
   3592 @c <en>The second area of large memory consumption is
   3593 @c <en>@code{diff}, when checking in large files.  This is
   3594 @c <en>required even for binary files.  The rule of thumb is
   3595 @c <en>to allow about ten times the size of the largest file
   3596 @c <en>you will want to check in, although five times may be
   3597 @c <en>adequate.  For example, if you want to check in a file
   3598 @c <en>which is 10 megabytes, you should have 100 megabytes of
   3599 @c <en>memory on the machine doing the checkin (the server
   3600 @c <en>machine for client/server, or the machine running
   3601 @c <en>@sc{cvs} for non-client/server).  This can be swap
   3602 @c <en>space rather than physical memory.  Because the memory
   3603 @c <en>is only required briefly, there is no particular need
   3604 @c <en>to allow memory for more than one such checkin at a
   3605 @c <en>time.
   3606 A segunda rea de grande consumo de memria  o
   3607 @code{diff}, quando trazendo grandes arquivos.  Isto 
   3608 preciso mesmo para arquivos binrios.  A boa prtica 
   3609 permitir cerca de dez vezes o tamanho do maior arquivo
   3610 que voc vai devolver ao servidor, embora cinco vezes
   3611 seja adequado.  Por exemplo, se voc quer devolver um
   3612 arquivo de 10 megabytes, voc deve ter 100 megabytes of
   3613 memory na mquina fazendo a devoluo (o servidor para
   3614 o caso cliente/servidor, ou a mquina rodando o
   3615 @sc{cvs} para no-cliente/servidor).  Esta memria pode
   3616 ser espao de troca ao invs de memria fsica.  J que
   3617 a memria  requerida apenas brevemente, no existe
   3618 necessidade especial para fornecer memria para mais
   3619 de uma devoluo ao mesmo tempo.
   3620 @c The 5-10 times rule of thumb is from Paul Eggert for
   3621 @c GNU diff.  I don't think it is in the GNU diff
   3622 @c manual or anyplace like that.
   3623 @c
   3624 @c Probably we could be saying more about
   3625 @c non-client/server CVS.
   3626 @c I would guess for non-client/server CVS in an NFS
   3627 @c environment the biggest issues are the network and
   3628 @c the NFS server.
   3629 
   3630 @c <en>Resource consumption for the client is even more
   3631 @c <en>modest---any machine with enough capacity to run the
   3632 @c <en>operating system in question should have little
   3633 @c <en>trouble.
   3634 O consumo de recursos no cliente  ainda mais
   3635 modesto---qualquer mquina com capacidade suficiente
   3636 para rodar o SO em questo no deve ter muitos
   3637 problemas.
   3638 @c Is that true?  I think the client still wants to
   3639 @c (bogusly) store entire files in memory at times.
   3640 
   3641 @c <en>For information on disk space requirements, see
   3642 @c <en>@ref{Creating a repository}.
   3643 Para informaes sobre requisitos de espao em disco,
   3644 veja em @ref{Criando um repositrio}.
   3645 
   3646 @c <en>@node Connecting via rsh
   3647 @node Se conectando via rsh
   3648 @c <en>@subsection Connecting with rsh
   3649 @subsection Se conectando via rsh
   3650 
   3651 @c <en>@cindex rsh
   3652 @cindex rsh
   3653 @c <en>@sc{cvs} uses the @samp{rsh} protocol to perform these
   3654 @c <en>operations, so the remote user host needs to have a
   3655 @c <en>@file{.rhosts} file which grants access to the local
   3656 @c <en>user. Note that the program that @sc{cvs} uses for this
   3657 @c <en>purpose may be specified using the @file{--with-rsh}
   3658 @c <en>flag to configure.
   3659 O @sc{cvs} usa o protocolo @samp{rsh} para realizar
   3660 estas operaes, logo, a mquina do usurio remoto tem
   3661 que ter um arquivo @file{.rhosts} que d acesso para o
   3662 usurio local.  Observe que o programa que o @sc{cvs}
   3663 usa para este objetivo deve ser especificado usando a
   3664 opo @file{--with-rsh} para configurar.
   3665 
   3666 @c <en>For example, suppose you are the user @samp{mozart} on
   3667 @c <en>the local machine @samp{toe.example.com}, and the
   3668 @c <en>server machine is @samp{faun.example.org}.  On
   3669 @c <en>faun, put the following line into the file
   3670 @c <en>@file{.rhosts} in @samp{bach}'s home directory:
   3671 Por exemplo, suponha que voc  o usurio @samp{mozart}
   3672 na mquina local @samp{toe.example.com}, e a mquina
   3673 servidora  @samp{faun.example.org}.  Em faun, ponha a
   3674 seguinte linha no arquivo @file{.rhosts} no diretrio
   3675 pessoal de @samp{bach}:
   3676 
   3677 @example
   3678 toe.example.com  mozart
   3679 @end example
   3680 
   3681 @noindent
   3682 @c <en>Then test that @samp{rsh} is working with
   3683 E faa o teste para ver que o @samp{rsh} est
   3684 funcionando com
   3685 
   3686 @example
   3687 rsh -l bach faun.example.org 'echo $PATH'
   3688 @end example
   3689 
   3690 @c <en>@cindex CVS_SERVER, environment variable
   3691 @cindex CVS_SERVER, varivel de ambiente
   3692 @c <en>Next you have to make sure that @code{rsh} will be able
   3693 @c <en>to find the server.  Make sure that the path which
   3694 @c <en>@code{rsh} printed in the above example includes the
   3695 @c <en>directory containing a program named @code{cvs} which
   3696 @c <en>is the server.  You need to set the path in
   3697 @c <en>@file{.bashrc}, @file{.cshrc}, etc., not @file{.login}
   3698 @c <en>or @file{.profile}.  Alternately, you can set the
   3699 @c <en>environment variable @code{CVS_SERVER} on the client
   3700 @c <en>machine to the filename of the server you want to use,
   3701 @c <en>for example @file{/usr/local/bin/cvs-1.6}.
   3702 A seguir voc vai ter que se certificar que o
   3703 @code{rsh} vai ser capaz de acessar o servidor.
   3704 Verifique se o caminho que o @code{rsh} mostrou no
   3705 exemplo acima inclui o diretrio contendo um programa
   3706 chamado @code{cvs} que est no servidor.  Voc precisa
   3707 ajustar o caminho no @file{.bashrc}, @file{.cshrc},
   3708 etc., no no @file{.login} ou no @file{.profile}.
   3709 Alternativamente, voc pode ajustar a varivel de
   3710 ambiente @code{CVS_SERVER} na mquina cliente para o
   3711 nome do arquivo do servidor que voc quer usar, por
   3712 exemplo @file{/usr/local/bin/cvs-1.6}.
   3713 @c FIXME: there should be a way to specify the
   3714 @c program in CVSROOT, not CVS_SERVER, so that one can use
   3715 @c different ones for different roots.  e.g. ":server;cvs=cvs-1.6:"
   3716 @c instead of ":server:".
   3717 
   3718 @c <en>There is no need to edit @file{inetd.conf} or start a
   3719 @c <en>@sc{cvs} server daemon.
   3720 No h necessidade de se editar o @file{inetd.conf} ou
   3721 iniciar um daemon (servio) servidor de @sc{cvs}.
   3722 
   3723 @c <en>@cindex :server:, setting up
   3724 @cindex :servidor:, ajustando
   3725 @c <en>@cindex :ext:, setting up
   3726 @cindex :ext:, ajustando
   3727 @c <en>@cindex Kerberos, using kerberized rsh
   3728 @cindex Kerberos, usando rsh kerberizado
   3729 @c <en>@cindex SSH (rsh replacement)
   3730 @cindex SSH (substituto do rsh)
   3731 @c <en>@cindex rsh replacements (Kerberized, SSH, &c)
   3732 @cindex Substitutos do rsh (Kerberizado, SSH, &c)
   3733 @c <en>There are two access methods that you use in @code{CVSROOT}
   3734 @c <en>for rsh.  @code{:server:} specifies an internal rsh
   3735 @c <en>client, which is supported only by some @sc{cvs} ports.
   3736 @c <en>@code{:ext:} specifies an external rsh program.  By
   3737 @c <en>default this is @code{rsh} (unless otherwise specified
   3738 @c <en>by the @file{--with-rsh} flag to configure) but you may set the
   3739 @c <en>@code{CVS_RSH} environment variable to invoke another
   3740 @c <en>program which can access the remote server (for
   3741 @c <en>example, @code{remsh} on HP-UX 9 because @code{rsh} is
   3742 @c <en>something different).  It must be a program which can
   3743 @c <en>transmit data to and from the server without modifying
   3744 @c <en>it; for example the Windows NT @code{rsh} is not
   3745 @c <en>suitable since it by default translates between CRLF
   3746 @c <en>and LF.  The OS/2 @sc{cvs} port has a hack to pass @samp{-b}
   3747 @c <en>to @code{rsh} to get around this, but since this could
   3748 @c <en>potentially cause problems for programs other than the
   3749 @c <en>standard @code{rsh}, it may change in the future.  If
   3750 @c <en>you set @code{CVS_RSH} to @code{SSH} or some other rsh
   3751 @c <en>replacement, the instructions in the rest of this
   3752 @c <en>section concerning @file{.rhosts} and so on are likely
   3753 @c <en>to be inapplicable; consult the documentation for your rsh
   3754 @c <en>replacement.
   3755 Existem dois mtodos de acesso que voc pode usar no
   3756 @code{CVSROOT} para rsh.  @code{:server:} especifica um
   3757 cliente rsh interno, que  suportado apenas por
   3758 alguns portes do @sc{cvs}.  @code{:ext:} especifica um
   3759 programa rsh externo.  Por padro  o @code{rsh} (a
   3760 menos que se especifique o contrrio pela opo
   3761 @file{--with-rsh}) mas voc pode ajustar a varivel de
   3762 ambiente @code{CVS_RSH} para invocar outro programa que
   3763 pode acessar o servidor remoto (por exemplo,
   3764 @code{remsh} num HP-UX 9 j que o @code{rsh}  de certa
   3765 forma diferente).  Deve ser um programa que transmita
   3766 dados de e para o servidor sem modificar nada; por
   3767 exemplo, o @code{rsh} do Windows NT no  adequado j
   3768 que por padro ele permuta CRLF com LF.  O porte do
   3769 @sc{cvs} para OS/2 tem um ???hack??? para passar
   3770 @samp{-b} para o @code{rsh} para contornar isso, mas
   3771 j que isso pode potencialmente causar problemas para
   3772 outros programas que no sejam o @code{rsh} padro,
   3773 isso deve mudar no futuro.  Se voc ajustar o
   3774 @code{CVS_RSH} para @code{SSH} ou algum outro
   3775 substituto do rsh, as instrues no restante desta seo a
   3776 respeito do arquivo @file{.rhosts} e outros
   3777 provavelmente no se aplicaro; consulte a documentao
   3778 do seu substituto do rsh.
   3779 @c FIXME: there should be a way to specify the
   3780 @c program in CVSROOT, not CVS_RSH, so that one can use
   3781 @c different ones for different roots.  e.g. ":ext;rsh=remsh:"
   3782 @c instead of ":ext:".
   3783 @c See also the comment in src/client.c for rationale
   3784 @c concerning "rsh" being the default and never
   3785 @c "remsh".
   3786 
   3787 @c <en>Continuing our example, supposing you want to access
   3788 @c <en>the module @file{foo} in the repository
   3789 @c <en>@file{/usr/local/cvsroot/}, on machine
   3790 @c <en>@file{faun.example.org}, you are ready to go:
   3791 Continuando nosso exemplo, supondo que voc quer
   3792 acessar o mdulo @file{foo} no repositrio
   3793 @file{/usr/local/cvsroot/}, da mquina
   3794 @file{faun.example.org}, voc est pronto para seguir:
   3795 
   3796 @example
   3797 cvs -d :ext:bach@@faun.example.org:/usr/local/cvsroot checkout foo
   3798 @end example
   3799 
   3800 @noindent
   3801 @c <en>(The @file{bach@@} can be omitted if the username is
   3802 @c <en>the same on both the local and remote hosts.)
   3803 (O @file{bach@@} pode ser omitido se o nome de usurio
   3804  o mesmo tanto no servidor como no cliente.)
   3805 
   3806 @c Should we mention "rsh host echo hi" and "rsh host
   3807 @c cat" (the latter followed by typing text and ^D)
   3808 @c as troubleshooting techniques?  Probably yes
   3809 @c (people tend to have trouble setting this up),
   3810 @c but this kind of thing can be hard to spell out.
   3811 
   3812 @c <en>@node Password authenticated
   3813 @node Autenticao por senha
   3814 @c <en>@subsection Direct connection with password authentication
   3815 @subsection Conexes diretas com autenticao por senha
   3816 
   3817 @c <en>The @sc{cvs} client can also connect to the server
   3818 @c <en>using a password protocol.  This is particularly useful
   3819 @c <en>if using @code{rsh} is not feasible (for example,
   3820 @c <en>the server is behind a firewall), and Kerberos also is
   3821 @c <en>not available.
   3822 O cliente @sc{cvs} tambm pode se conectar ao servidor
   3823 usando um protocolo de senha.  Isto  particularmente
   3824 til se no se pode usar o @code{rsh} (por exemplo, se
   3825 o servidor est atrs de um firewall), e o Kerberos
   3826 tambm no est disponvel.
   3827 
   3828 @c <en>        To use this method, it is necessary to make
   3829 @c <en>some adjustments on both the server and client sides.
   3830         Para usar este mtodo  necessrio fazer
   3831 ajustes tanto do lado do cliente como no do servidor.
   3832 
   3833 @menu
   3834 @c <en>* Password authentication server::     Setting up the server
   3835 * Servidor de autenticao por senha::     Ajustando o servidor
   3836 @c <en>* Password authentication client::     Using the client
   3837 * Cliente de autenticao por senha::     Usando o cliente
   3838 @c <en>* Password authentication security::   What this method does and does not do
   3839 * Segurana com autenticao por senha::   O que este mtodo faz e o que ele no faz
   3840 @end menu
   3841 
   3842 @c <en>@node Password authentication server
   3843 @node Servidor de autenticao por senha
   3844 @c <en>@subsubsection Setting up the server for password authentication
   3845 @subsubsection Ajustando o servidor para autenticao por senha
   3846 
   3847 @c <en>First of all, you probably want to tighten the
   3848 @c <en>permissions on the @file{$CVSROOT} and
   3849 @c <en>@file{$CVSROOT/CVSROOT} directories.  See @ref{Password
   3850 @c <en>authentication security}, for more details.
   3851 Antes de tudo, voc provavelmente vai querer amarrar as
   3852 permisses nos diretrios @file{$CVSROOT} e
   3853 @file{$CVSROOT/CVSROOT}.  Veja em
   3854 @ref{Segurana com autenticao por senha}
   3855 para mais informaes.
   3856 
   3857 @c <en>@cindex pserver (subcommand)
   3858 @cindex pserver (subcomando)
   3859 @c <en>@cindex Remote repositories, port specification
   3860 @cindex Repositrios remotos, especificao de porta
   3861 @c <en>@cindex Repositories, remote, port specification
   3862 @cindex Repositrios, remotos, especificao de porta
   3863 @c <en>@cindex Client/Server Operation, port specification
   3864 @cindex Operao cliente/Servidor, especificao de porta
   3865 @c <en>@cindex pserver (client/server connection method), port specification
   3866 @cindex pserver (mtodo de conexo cliente/servidor), especificao de porta
   3867 @c <en>@cindex kserver (client/server connection method), port specification
   3868 @cindex kserver (mtodo de conexo cliente/servidor), especificao de porta
   3869 @c <en>@cindex gserver (client/server connection method), port specification
   3870 @cindex gserver (mtodo de conexo cliente/servidor), especificao de porta
   3871 @c <en>@cindex port, specifying for remote repositories
   3872 @cindex porta, especificao para repositrios remotos
   3873 @c <en>@cindex Password server, setting up
   3874 @cindex Servidor por senha, ajustando
   3875 @c <en>@cindex Authenticating server, setting up
   3876 @cindex Servidor por autenticao, ajustando
   3877 @c <en>@cindex inetd, configuring for pserver
   3878 @cindex inetd, configurando para pserver
   3879 @c <en>@cindex xinetd, configuring for pserver
   3880 @cindex xinetd, configurando para pserver
   3881 @c FIXME: this isn't quite right regarding port
   3882 @c numbers; CVS looks up "cvspserver" in
   3883 @c /etc/services (on unix, but what about non-unix?).
   3884 @c <en>On the server side, the file @file{/etc/inetd.conf}
   3885 @c <en>needs to be edited so @code{inetd} knows to run the
   3886 @c <en>command @code{cvs pserver} when it receives a
   3887 @c <en>connection on the right port.  By default, the port
   3888 @c <en>number is 2401; it would be different if your client
   3889 @c <en>were compiled with @code{CVS_AUTH_PORT} defined to
   3890 @c <en>something else, though.  This can also be specified in the CVSROOT variable
   3891 @c <en>(@pxref{Remote repositories}) or overridden with the CVS_CLIENT_PORT
   3892 @c <en>environment variable (@pxref{Environment variables}).
   3893 No lado do servidor, o arquivo @file{/etc/inetd.conf}
   3894 precisa ser editado para que o @code{inetd} saiba rodar
   3895 o comando @code{cvs pserver} quando ele recebe uma
   3896 conexo pela porta certa.  Por padro, a porta de
   3897 nmero 2401; entretanto, isto pode ser diferente se seu
   3898 cliente foi compilado com @code{CVS_AUTH_PORT} definido
   3899 para outra coisa.  Esta porta tambm pode ser
   3900 especificada na varivel CVSROOT
   3901 (@pxref{Repositrios remotos}) ou sobreescrita com a varivel de
   3902 ambiente CVS_CLIENT_PORT (@pxref{Variveis de ambiente}).
   3903 
   3904 @c <en>        If your @code{inetd} allows raw port numbers in
   3905 @c <en>@file{/etc/inetd.conf}, then the following (all on a
   3906 @c <en>single line in @file{inetd.conf}) should be sufficient:
   3907         Se seu @code{inetd} permite ???raw port
   3908 numbers??? no @file{/etc/inetd.conf}, ento o seguinte
   3909 (tudo na mesma linha do @file{inetd.conf}) deve ser suficiente:
   3910 
   3911 @example
   3912 2401  stream  tcp  nowait  root  /usr/local/bin/cvs
   3913 cvs -f --allow-root=/usr/cvsroot pserver
   3914 @end example
   3915 
   3916 @noindent
   3917 @c <en>(You could also use the
   3918 @c <en>@samp{-T} option to specify a temporary directory.)
   3919 (Voc pode usar tambm a opo @samp{-T} para
   3920 especificar um diretrio temporrio.)
   3921 
   3922 @c <en>The @samp{--allow-root} option specifies the allowable
   3923 @c <en>@sc{cvsroot} directory.  Clients which attempt to use a
   3924 @c <en>different @sc{cvsroot} directory will not be allowed to
   3925 @c <en>connect.  If there is more than one @sc{cvsroot}
   3926 @c <en>directory which you want to allow, repeat the option.
   3927 @c <en>(Unfortunately, many versions of @code{inetd} have very small
   3928 @c <en>limits on the number of arguments and/or the total length
   3929 @c <en>of the command.  The usual solution to this problem is
   3930 @c <en>to have @code{inetd} run a shell script which then invokes
   3931 @c <en>@sc{cvs} with the necessary arguments.)
   3932 A opo @samp{--allow-root} especifica o diretrio
   3933 @sc{cvsroot} permitido.  Clientes que tentem usar um
   3934 diretrio @sc{cvsroot} diferente no conseguiro se
   3935 conectar.  Se voc quer permitir mais de um diretrio
   3936 @sc{cvsroot}, repita a opo.
   3937 (Infelismente, muitas verses do @code{inetd} tm um
   3938 limite muito baixo do nmero de argumentos e/ou do
   3939 comprimento total do comando.  A soluo usual para
   3940 este problema  fazer o @code{inetd} rodar um script de
   3941 shell que invoque o @sc{cvs} com os argumentos
   3942 necessrios.)
   3943 
   3944 @c <en>        If your @code{inetd} wants a symbolic service
   3945 @c <en>name instead of a raw port number, then put this in
   3946 @c <en>@file{/etc/services}:
   3947         Se seu @code{inetd} precisa de um nome
   3948 simblico de servio ao invs de um nmero de porta,
   3949 ponha em @file{/etc/services}:
   3950 
   3951 @example
   3952 cvspserver      2401/tcp
   3953 @end example
   3954 
   3955 @noindent
   3956 @c <en>and put @code{cvspserver} instead of @code{2401} in @file{inetd.conf}.
   3957 e ponha @code{cvspserver} no lugar de @code{2401} no @file{inetd.conf}.
   3958 
   3959 @c <en>If your system uses @code{xinetd} instead of @code{inetd},
   3960 @c <en>the procedure is slightly different.
   3961 @c <en>Create a file called @file{/etc/xinetd.d/cvspserver} containing the following:
   3962 Se seu sistema usa @code{xinetd} no lugar de @code{inetd},
   3963 o procedimento  um pouco diferente.  Crie um arquivo
   3964 chamado @file{/etc/xinetd.d/cvspserver} contendo o seguinte:
   3965 
   3966 @example
   3967 service cvspserver
   3968 @{
   3969    port        = 2401
   3970    socket_type = stream
   3971    protocol    = tcp
   3972    wait        = no
   3973    user        = root
   3974    passenv     = PATH
   3975    server      = /usr/local/bin/cvs
   3976    server_args = -f --allow-root=/usr/cvsroot pserver
   3977 @}
   3978 @end example
   3979 
   3980 @noindent
   3981 @c <en>(If @code{cvspserver} is defined in @file{/etc/services}, you can omit
   3982 @c <en>the @code{port} line.)
   3983 (Se @code{cvspserver}  definido no
   3984 @file{/etc/services}, voc pode omitir a linha @code{port}.)
   3985 
   3986 @c <en>        Once the above is taken care of, restart your
   3987 @c <en>@code{inetd}, or do whatever is necessary to force it
   3988 @c <en>to reread its initialization files.
   3989         Uma vez que as instrues acima foram seguidas,
   3990 reinicie seu @code{inetd}, ou faa o que for necessrio
   3991 para for-lo a reler seus arquivos de inicializao.
   3992 
   3993 @c <en>If you are having trouble setting this up, see
   3994 @c <en>@ref{Connection}.
   3995 Se voc enfrentar problemas, veja em @ref{Conexo}.
   3996 
   3997 @c <en>@cindex CVS passwd file
   3998 @cindex Arquivo passwd do CVS
   3999 @c <en>@cindex passwd (admin file)
   4000 @cindex passwd (arquivo administrativo)
   4001 @c <en>Because the client stores and transmits passwords in
   4002 @c <en>cleartext (almost---see @ref{Password authentication
   4003 @c <en>security}, for details), a separate @sc{cvs} password
   4004 @c <en>file is generally used, so people don't compromise
   4005 @c <en>their regular passwords when they access the
   4006 @c <en>repository.  This file is
   4007 @c <en>@file{$CVSROOT/CVSROOT/passwd} (@pxref{Intro
   4008 @c <en>administrative files}).  It uses a colon-separated
   4009 @c <en>format, similar to @file{/etc/passwd} on Unix systems,
   4010 @c <en>except that it has fewer fields: @sc{cvs} username,
   4011 @c <en>optional password, and an optional system username for
   4012 @c <en>@sc{cvs} to run as if authentication succeeds.  Here is
   4013 @c <en>an example @file{passwd} file with five entries:
   4014 Como o cliente guarda e transmite as senhas em texto simples
   4015 (praticamente---veja @ref{Segurana com autenticao por senha}
   4016 para detalhes), um arquivo de senhas do @sc{cvs} 
   4017 geralmente usado, de forma que as pessoas nao
   4018 comprometam suas senhas regulares quando acessam o
   4019 repositrio.  Este arquivo  o
   4020 @file{$CVSROOT/CVSROOT/passwd} (@pxref{Intro aos
   4021 arquivos administrativos}).  Ele usa um formato
   4022 separado por dois pontos, similar ao do
   4023 @file{/etc/passwd} dos sistemas Unix, exceto que este
   4024 tem menos campos: nome do usurio @sc{cvs}, senha
   4025 opcional, e um nome de usurio de sistema opcional para
   4026 o @sc{cvs} rodar como ele se ocorrer a autenticao.
   4027 Aqui est um exemplo de arquivo @file{passwd} com cinco
   4028 entradas:
   4029 
   4030 @example
   4031 anonymous:
   4032 bach:ULtgRLXo7NRxs
   4033 spwang:1sOp854gDF3DY
   4034 melissa:tGX1fS8sun6rY:pubcvs
   4035 qproj:XR4EZcEs0szik:pubcvs
   4036 @end example
   4037 
   4038 @noindent
   4039 @c <en>(The passwords are encrypted according to the standard
   4040 @c <en>Unix @code{crypt()} function, so it is possible to
   4041 @c <en>paste in passwords directly from regular Unix
   4042 @c <en>@file{/etc/passwd} files.)
   4043 (As senhas so criptografadas de acordo com a funo
   4044 Unix @code{crypt()} padro, portanto  possvel copiar
   4045 senhas diretamente de arquivos @file{/etc/passwd}
   4046 normais do Unix.)
   4047 
   4048 @c <en>The first line in the example will grant access to any
   4049 @c <en>@sc{cvs} client attempting to authenticate as user
   4050 @c <en>@code{anonymous}, no matter what password they use,
   4051 @c <en>including an empty password.  (This is typical for
   4052 @c <en>sites granting anonymous read-only access; for
   4053 @c <en>information on how to do the "read-only" part, see
   4054 @c <en>@ref{Read-only access}.)
   4055 A primeira linha no exemplo vai dar acesso a qualquer
   4056 cliente @sc{cvs} que tente se autenticar como o usurio
   4057 @code{anonymous} (annimo), qualquer que seja a senha
   4058 que ele esteja usando, at mesmo uma senha vazia.
   4059 (Isto  tpico de stios que do acesso somente-leitura
   4060 annimo; para informaes sobre como fazer a parte
   4061 "somente-leitura", veja em @ref{Acesso somente-leitura}.)
   4062 
   4063 @c <en>The second and third lines will grant access to
   4064 @c <en>@code{bach} and @code{spwang} if they supply their
   4065 @c <en>respective plaintext passwords.
   4066 As segunda e terceira linhas vo fornecer acesso a
   4067 @code{bach} e @code{spwang} se eles fornecerem suas
   4068 respectivas senhas em texto simples.
   4069 
   4070 @c <en>@cindex User aliases
   4071 @cindex User aliases
   4072 @c <en>The fourth line will grant access to @code{melissa}, if
   4073 @c <en>she supplies the correct password, but her @sc{cvs}
   4074 @c <en>operations will actually run on the server side under
   4075 @c <en>the system user @code{pubcvs}.  Thus, there need not be
   4076 @c <en>any system user named @code{melissa}, but there
   4077 @c <en>@emph{must} be one named @code{pubcvs}.
   4078 A quarta linha vai dar acesso a @code{melissa}, se ela
   4079 fornecer a senha correta, mas suas oparees no
   4080 @sc{cvs} vo ser rodadas, na verdade, como o usurio de
   4081 sistema @code{pubcvs} no lado do servidor.  Logo, no
   4082 h a necessidade de haver qualquer usurio chamado
   4083 @code{melissa}, mas @emph{tem que} haver um chamado
   4084 @code{pubcvs}.
   4085 
   4086 @c <en>The fifth line shows that system user identities can be
   4087 @c <en>shared: any client who successfully authenticates as
   4088 @c <en>@code{qproj} will actually run as @code{pubcvs}, just
   4089 @c <en>as @code{melissa} does.  That way you could create a
   4090 @c <en>single, shared system user for each project in your
   4091 @c <en>repository, and give each developer their own line in
   4092 @c <en>the @file{$CVSROOT/CVSROOT/passwd} file.  The @sc{cvs}
   4093 @c <en>username on each line would be different, but the
   4094 @c <en>system username would be the same.  The reason to have
   4095 @c <en>different @sc{cvs} usernames is that @sc{cvs} will log their
   4096 @c <en>actions under those names: when @code{melissa} commits
   4097 @c <en>a change to a project, the checkin is recorded in the
   4098 @c <en>project's history under the name @code{melissa}, not
   4099 @c <en>@code{pubcvs}.  And the reason to have them share a
   4100 @c <en>system username is so that you can arrange permissions
   4101 @c <en>in the relevant area of the repository such that only
   4102 @c <en>that account has write-permission there.
   4103 A quinta linha mostra que identidades de usurios de
   4104 sistema podem ser compartilhadas: qualquer cliente que
   4105 se autentique com sucesso como @code{qproj} vai na
   4106 verdade rodar como @code{pubcvs}, da mesma forma que
   4107 @code{melissa} faz.  Desta forma voc pode criar um
   4108 nico e compartilhado usurio de sistema para cada
   4109 projeto no seu repositrio, e dar a cada desenvolvedor
   4110 sua prpria linha no arquivo
   4111 @file{$CVSROOT/CVSROOT/passwd}.  O nome de usurio do
   4112 @sc{cvs} em cada linha vai ser diferente, mas o usurio
   4113 de sistema vai ser o mesmo.  A razo para se ter
   4114 diferentes nomes de usurios do @sc{cvs}  que o
   4115 @sc{cvs} vai registrar suas aes sob estes nomes:
   4116 quando @code{melissa} submete (commit) uma mudana ao
   4117 projeto, o checkin  gravado no histrico do projeto em
   4118 nome de @code{melissa}, no de @code{pubcvs}.  E a
   4119 razo para t-los compartilhando um usurio de sistema
   4120  que voc pode ajeitar as permisses da rea relevante
   4121 do repositrio de forma que apenas aquela conta tenha
   4122 permisso de leitura l.
   4123 
   4124 @c <en>If the system-user field is present, all
   4125 @c <en>password-authenticated @sc{cvs} commands run as that
   4126 @c <en>user; if no system user is specified, @sc{cvs} simply
   4127 @c <en>takes the @sc{cvs} username as the system username and
   4128 @c <en>runs commands as that user.  In either case, if there
   4129 @c <en>is no such user on the system, then the @sc{cvs}
   4130 @c <en>operation will fail (regardless of whether the client
   4131 @c <en>supplied a valid password).
   4132 Se o campo do usurio de sistema est presente, todos
   4133 os comandos do @sc{cvs} com autenticao por senha
   4134 rodaro como aquele usurio; se nenhum usurio 
   4135 especificado, o @sc{cvs} simplesmente vai usar o nome
   4136 de usurio do @sc{cvs} como o nome de usurio de
   4137 sistema e rodar os comandos como este usurio.  Em
   4138 qualquer caso, se no existir tal usurio no sistema, a
   4139 operao do @sc{cvs} vai falhar (independente do
   4140 cliente ter fornecido uma senha vlida).
   4141 
   4142 @c <en>The password and system-user fields can both be omitted
   4143 @c <en>(and if the system-user field is omitted, then also
   4144 @c <en>omit the colon that would have separated it from the
   4145 @c <en>encrypted password).  For example, this would be a
   4146 @c <en>valid @file{$CVSROOT/CVSROOT/passwd} file:
   4147 Os campos de senha e usurio de sistema podem ser ambos
   4148 omitidos (e se o campo de usurio de sistema for
   4149 omitido, ento a vrgula que o separava da senha
   4150 criptografada tambm pode ser omitida).  Por exemplo,
   4151 isto pode ser um arquivo @file{$CVSROOT/CVSROOT/passwd} vlido:
   4152 
   4153 @example
   4154 anonymous::pubcvs
   4155 fish:rKa5jzULzmhOo:kfogel
   4156 sussman:1sOp854gDF3DY
   4157 @end example
   4158 
   4159 @noindent
   4160 @c <en>When the password field is omitted or empty, then the
   4161 @c <en>client's authentication attempt will succeed with any
   4162 @c <en>password, including the empty string.  However, the
   4163 @c <en>colon after the @sc{cvs} username is always necessary,
   4164 @c <en>even if the password is empty.
   4165 Quando o campo senha no existe ou  vazio, ento uma
   4166 tentativa de autenticao do cliente vai funcionar
   4167 qualquer que seja a senha, inclusive a senha vazia.
   4168 Entretanto, o dois pontos antes do nome de usurio do
   4169 @sc{cvs}  sempre necessrio, mesmo se a senha for vazia.
   4170 
   4171 @c <en>@sc{cvs} can also fall back to use system authentication.
   4172 @c <en>When authenticating a password, the server first checks
   4173 @c <en>for the user in the @file{$CVSROOT/CVSROOT/passwd}
   4174 @c <en>file.  If it finds the user, it will use that entry for
   4175 @c <en>authentication as described above.  But if it does not
   4176 @c <en>find the user, or if the @sc{cvs} @file{passwd} file
   4177 @c <en>does not exist, then the server can try to authenticate
   4178 @c <en>the username and password using the operating system's
   4179 @c <en>user-lookup routines (this "fallback" behavior can be
   4180 @c <en>disabled by setting @code{SystemAuth=no} in the
   4181 @c <en>@sc{cvs} @file{config} file, @pxref{config}).
   4182 O @sc{cvs} tambm pode recorrer  autenticao do
   4183 sistema.  Quando autenticando uma senha, o servidor
   4184 primeiro procura pelo usurio no arquivo
   4185 @file{$CVSROOT/CVSROOT/passwd}.  Se ele encontra o
   4186 usurio, ele vai usar aquela entrada para autenticar
   4187 como descrito acima.  Mas se o usurio no for
   4188 encontrado, ou se o arquivo @file{passwd} do  @sc{cvs}
   4189 no existe, ento o servidor pode tentar autenticar o
   4190 nome de usurio e a senha usando as rotinas de
   4191 ???user-lookup??? do sistema operacional (Este
   4192 comportamento "alternativo" pode ser desabilitado ajustando
   4193 o @code{SystemAuth=no} no arquivo @file{config} do
   4194 @sc{cvs}, @pxref{config}).
   4195 
   4196 @c <en>The default fallback behaviour is to look in 
   4197 @c <en>@file{/etc/passwd} for this system password unless your
   4198 @c <en>system has PAM (Pluggable Authentication Modules)
   4199 @c <en>and your @sc{cvs} server executable was configured to
   4200 @c <en>use it at compile time (using @code{./configure --enable-pam} - see the
   4201 @c <en>INSTALL file for more).  In this case, PAM will be consulted instead.
   4202 @c <en>This means that @sc{cvs} can be configured to use any password
   4203 @c <en>authentication source PAM can be configured to use (possibilities
   4204 @c <en>include a simple UNIX password, NIS, LDAP, and others) in its
   4205 @c <en>global configuration file (usually @file{/etc/pam.conf}
   4206 @c <en>or possibly @file{/etc/pam.d/cvs}).  See your PAM documentation
   4207 @c <en>for more details on PAM configuration.
   4208 O comportamento alternativo  procurar no
   4209 @file{/etc/passwd} por este usurio de sistema a menos
   4210 que seu sistema tenha PAM (Pluggable Authentication
   4211 Modules) e seu servidor do @sc{cvs} executvel foi
   4212 configurado para usar PAM em tempo de compilao
   4213 (usando @code{./configure --enable-pam} - veja no
   4214 arquivo INSTALL para saber mais).  Neste caso, PAM 
   4215 que vai autenticar.  Isto significa que o @sc{cvs} pode
   4216 ser configurado para usar qualquer fonte de
   4217 autenticao por senha que PAM possa ser configurada
   4218 para usar (as possibilidades incluem senha simples de
   4219 UNIX, NIS, LDAP, e outras) no seu arquivo de
   4220 configurao global (em geral @file{/etc/pam.conf}
   4221 ou possivelmente @file{/etc/pam.d/cvs}).  Veja em sua
   4222 documentao do PAM para mais detalhes sobre a
   4223 configurao do PAM.
   4224 
   4225 @c <en>Note that PAM is an experimental feature in @sc{cvs} and feedback is
   4226 @c <en>encouraged.  Please send a mail to one of the @sc{cvs} mailing lists
   4227 @c <en>(@code{info-cvs@@nongnu.org} or @code{bug-cvs@@nongnu.org}) if you use the 
   4228 @c <en>@sc{cvs} PAM support.
   4229 Observe que PAM  uma funcionalidade experimental no
   4230 @sc{cvs} e feedback  encorajado.  Por favor, mande
   4231 e-mail para uma das listas do @sc{cvs}
   4232 (@code{info-cvs@@nongnu.org} ou @code{bug-cvs@@nongnu.org})
   4233 se voc usa o suporte a PAM do @sc{cvs}.  As listas so
   4234 em ingls.
   4235 
   4236 @c <en>@strong{WARNING: Using PAM gives the system administrator much more 
   4237 @c <en>flexibility about how @sc{cvs} users are authenticated but 
   4238 @c <en>no more security than other methods.  See below for more.} 
   4239 @strong{ATENO: Usar PAM d ao administrador do
   4240 sistema muito mais flexibilidade sobre como os usurios
   4241 do @sc{cvs} so autenticados mas no d mais segurana
   4242 que outros mtodos.  Veja abaixo mais detalhes.} 
   4243 
   4244 @c <en>CVS needs an "auth" and "account" module in the 
   4245 @c <en>PAM configuration file. A typical PAM configuration 
   4246 @c <en>would therefore have the following lines 
   4247 @c <en>in @file{/etc/pam.conf} to emulate the standard @sc{cvs} 
   4248 @c <en>system @file{/etc/passwd} authentication:
   4249 CVS precisa de um mdulo "auth" e "account" no arquivo
   4250 de configurao PAM.  Uma configurao PAM tpica deve
   4251 portanto ter as seguintes linhas no
   4252 @file{/etc/pam.conf} para simular a autenticao
   4253 @file{/etc/passwd} do sistema @sc{cvs} padro:
   4254 
   4255 @example
   4256 cvs	auth	    required	pam_unix.so
   4257 cvs	account	    required	pam_unix.so
   4258 @end example
   4259 
   4260 @c <en>The the equivalent @file{/etc/pam.d/cvs} would contain
   4261 O @file{/etc/pam.d/cvs} equivalente deve conter
   4262 
   4263 @example
   4264 auth	    required	pam_unix.so
   4265 account	    required	pam_unix.so
   4266 @end example
   4267 
   4268 @c <en>Some systems require a full path to the module so that
   4269 @c <en>@file{pam_unix.so} (Linux) would become something like 
   4270 @c <en>@file{/usr/lib/security/$ISA/pam_unix.so.1} (Sun Solaris).
   4271 @c <en>See the @file{contrib/pam} subdirectory of the @sc{cvs}
   4272 @c <en>source distribution for further example configurations.
   4273 Alguns sistemas necessitam de um caminho completo para
   4274 o mdulo de forma que @file{pam_unix.so} (Linux) vai se
   4275 tornar algo do tipo
   4276 @file{/usr/lib/security/$ISA/pam_unix.so.1} (Sun
   4277 Solaris).  Veja o subdiretrio @file{contrib/pam} da
   4278 distribuio em cdigo fonte do @sc{cvs} para mais
   4279 exemplos de configurao.
   4280 
   4281 @c <en>The PAM service name given above as "cvs" is just
   4282 @c <en>the service name in the default configuration amd can be
   4283 @c <en>set using
   4284 @c <en>@code{./configure --with-hardcoded-pam-service-name=<pam-service-name>}
   4285 @c <en>before compiling.  @sc{cvs} can also be configured to use whatever
   4286 @c <en>name it is invoked as as its PAM service name using
   4287 @c <en>@code{./configure --without-hardcoded-pam-service-name}, but this
   4288 @c <en>feature should not be used if you may not have control of the name
   4289 @c <en>@sc{cvs} will be invoked as.
   4290 O nome de servio PAM dado abaixo como "cvs"  apenas o
   4291 nome do servio na configurao padro e pode ser
   4292 mudado usando
   4293 @code{./configure --with-hardcoded-pam-service-name=<pam-service-name>}
   4294 antes de compilar.  ??? @sc{cvs} can also be configured to use whatever
   4295 name it is invoked as as its PAM service name using
   4296 @code{./configure
   4297 --without-hardcoded-pam-service-name}???, mas esta
   4298 caracterstica no deve ser usada se voc no tiver
   4299 controle do nome com o qual o @sc{cvs} ser chamado.
   4300 
   4301 @c <en>Be aware, also, that falling back to system
   4302 @c <en>authentication might be a security risk: @sc{cvs}
   4303 @c <en>operations would then be authenticated with that user's
   4304 @c <en>regular login password, and the password flies across
   4305 @c <en>the network in plaintext.  See @ref{Password
   4306 @c <en>authentication security} for more on this.
   4307 @c <en>This may be more of a problem with PAM authentication
   4308 @c <en>because it is likely that the source of the system 
   4309 @c <en>password is some central authentication service like
   4310 @c <en>LDAP which is also used to authenticate other services.
   4311 Esteja avisado, alm disso, que recorrer a autenticao
   4312 do sistema pode ser um risco de segurana: as operaes
   4313 do @sc{cvs} deveram ser autenticadas com a senha do
   4314 usurio regular, e a senha vai passar pela rede em
   4315 texto plano.  Veja em @ref{Segurana com autenticao por senha}
   4316 para saber mais.  Isto pode ser um problema a mais com
   4317 autenticao PAM por que  provvel que a fonte do
   4318 sistema de senhas  algum servio de autenticao
   4319 central como o LDAP, que  usado para autenticar outros
   4320 servios.
   4321 
   4322 @c <en>On the other hand, PAM makes it very easy to change your password
   4323 @c <en>regularly.  If they are given the option of a one-password system for
   4324 @c <en>all of their activities, users are often more willing to change their
   4325 @c <en>password on a regular basis.
   4326 Por outro lado, PAM faz com que seja fcil mudar a
   4327 senha regularmente.  Se os usurios tm um sistema de
   4328 senha nica, so mais fceis de convencer a trocar de
   4329 senha regularmente.
   4330 
   4331 @c <en>In the non-PAM configuration where the password is stored in the
   4332 @c <en>@file{CVSROOT/passwd} file, it is difficult to change passwords on a
   4333 @c <en>regular basis since only administrative users (or in some cases
   4334 @c <en>processes that act as an administrative user) are typicaly given
   4335 @c <en>access to modify this file.  Either there needs to be some
   4336 @c <en>hand-crafted web page or set-uid program to update the file, or the
   4337 @c <en>update needs to be done by submitting a request to an administrator to
   4338 @c <en>perform the duty by hand.  In the first case, having to remember to
   4339 @c <en>update a separate password on a periodic basis can be difficult.  In
   4340 @c <en>the second case, the manual nature of the change will typically mean
   4341 @c <en>that the password will not be changed unless it is absolutely
   4342 @c <en>necessary.
   4343 Numa configurao no-PAM, onde a senha  guardada no
   4344 arquivo @file{CVSROOT/passwd},  difcil mudar as
   4345 senhas regularmente j que apenas usurios
   4346 administradores (ou em alguns casos, processos que agem
   4347 como usurios administradores) tm acesso de escrita ao
   4348 arquivo.  ???Either there needs to be some
   4349 hand-crafted web page or set-uid program to update the file, or the
   4350 update needs to be done by submitting a request to an administrator to
   4351 perform the duty by hand???.  No primeiro caso, ter que
   4352 lembrar de uma senha a parte periodicamente pode ser
   4353 difcil.  No segundo caso, a natureza manual da mudana
   4354 vai significar que a senha no vai ser mudada at que
   4355 seja absolutamente necessrio.
   4356 
   4357 @c <en>Note that PAM administrators should probably avoid configuring
   4358 @c <en>one-time-passwords (OTP) for @sc{cvs} authentication/authorization.  If
   4359 @c <en>OTPs are desired, the administrator may wish to encourage the use of
   4360 @c <en>one of the other Client/Server access methods.  See the section on
   4361 @c <en>@pxref{Remote repositories} for a list of other methods.
   4362 Observe que os administradores do PAM vo evitar
   4363 configurar one-time-passwords (OTP) para
   4364 autenticao/autorizao do @sc{cvs}.  Se os OTPs so
   4365 desejados, o administrador vai querer encorajar o uso
   4366 de um dos outros mtodos de acesso cliente/servidor.
   4367 Veja a seo em @pxref{Repositrios remotos} para uma
   4368 lista de outros mtodos.
   4369 
   4370 @c <en>Right now, the only way to put a password in the
   4371 @c <en>@sc{cvs} @file{passwd} file is to paste it there from
   4372 @c <en>somewhere else.  Someday, there may be a @code{cvs
   4373 @c <en>passwd} command.
   4374 Por agora, a nica forma de botar uma senha no arquivo
   4375 @file{passwd} do @sc{cvs}  colar de algum outro lugar.
   4376 Algum dia vai haver um comando @code{cvs passwd}.
   4377 
   4378 @c <en>Unlike many of the files in @file{$CVSROOT/CVSROOT}, it
   4379 @c <en>is normal to edit the @file{passwd} file in-place,
   4380 @c <en>rather than via @sc{cvs}.  This is because of the
   4381 @c <en>possible security risks of having the @file{passwd}
   4382 @c <en>file checked out to people's working copies.  If you do
   4383 @c <en>want to include the @file{passwd} file in checkouts of
   4384 @c <en>@file{$CVSROOT/CVSROOT}, see @ref{checkoutlist}.
   4385 Ao contrrio da maioria dos arquivos no
   4386 @file{$CVSROOT/CVSROOT},  normal editar o arquivo
   4387 @file{passwd} in loco, ao invs de pelo @sc{cvs}.  Isto
   4388  devido a possveis riscos de segurana ao se ter
   4389 cpias do arquivo @file{passwd} baixadas para o
   4390 diretrio de trabalho das pessoas.  Se voc quer
   4391 incluir o arquivo @file{passwd} nos checkouts de
   4392 @file{$CVSROOT/CVSROOT}, veja em @ref{checkoutlist}.
   4393 
   4394 @c We might also suggest using the @code{htpasswd} command
   4395 @c from freely available web servers as well, but that
   4396 @c would open up a can of worms in that the users next
   4397 @c questions are likely to be "where do I get it?" and
   4398 @c "how do I use it?"
   4399 @c Also note that htpasswd, at least the version I had,
   4400 @c likes to clobber the third field.
   4401 
   4402 @c <en>@node Password authentication client
   4403 @node Cliente de autenticao por senha
   4404 @c <en>@subsubsection Using the client with password authentication
   4405 @subsubsection Usando o cliente com autenticao por senha
   4406 @c <en>@cindex Login (subcommand)
   4407 @cindex Login (subcomando)
   4408 @c <en>@cindex Password client, using
   4409 @cindex Cliente por senha, usando
   4410 @c <en>@cindex Authenticated client, using
   4411 @cindex Cliente autenticado, usando
   4412 @c <en>@cindex :pserver:, setting up
   4413 @cindex :pserver:, ajustando
   4414 @c <en>To run a @sc{cvs} command on a remote repository via
   4415 @c <en>the password-authenticating server, one specifies the
   4416 @c <en>@code{pserver} protocol, optional username, repository host, an
   4417 @c <en>optional port number, and path to the repository.  For example:
   4418 Para rodar um comando @sc{cvs} num repositrio remoto
   4419 via servidor de autenticao por senha, deve-se
   4420 espedificar o protocolo @code{pserver}, um nome de
   4421 usurio opcional, a mquina do repositrio, uma porta
   4422 opcional, e o caminho para o repositrio.  Por exemplo:
   4423 
   4424 @example
   4425 cvs -d :pserver:faun.example.org:/usr/local/cvsroot checkout someproj
   4426 @end example
   4427 
   4428 @noindent
   4429 @c <en>or
   4430 or
   4431 
   4432 @example
   4433 CVSROOT=:pserver:bach@@faun.example.org:2401/usr/local/cvsroot
   4434 cvs checkout someproj
   4435 @end example
   4436 
   4437 @c <en>However, unless you're connecting to a public-access
   4438 @c <en>repository (i.e., one where that username doesn't
   4439 @c <en>require a password), you'll need to supply a password or @dfn{log in} first.
   4440 @c <en>Logging in verifies your password with the repository and stores it in a file.
   4441 @c <en>It's done with the @code{login} command, which will
   4442 @c <en>prompt you interactively for the password if you didn't supply one as part of
   4443 @c <en>@var{$CVSROOT}:
   4444 Entretanto, a menos que voc esteja conectado a um
   4445 repositrio de acesso pblico (i.e., um daqueles que o
   4446 usurio no precisa de senha), voc vai precisar
   4447 fornecer uma senha ou @dfn{se logar} antes.  Ao se
   4448 logar, a sua senha  comparada com a do repositrio e
   4449 guardada num arquivo.  Isto  feito com o comando
   4450 @code{login}, que vai pedir a sua senha interativamente
   4451 se voc no forneceu ela como parte do @var{$CVSROOT}:
   4452 
   4453 @example
   4454 cvs -d :pserver:bach@@faun.example.org:/usr/local/cvsroot login
   4455 CVS password:
   4456 @end example
   4457 
   4458 @noindent
   4459 @c <en>or
   4460 or
   4461 
   4462 @example
   4463 cvs -d :pserver:bach:p4ss30rd@@faun.example.org:/usr/local/cvsroot login
   4464 @end example
   4465 
   4466 @c <en>After you enter the password, @sc{cvs} verifies it with
   4467 @c <en>the server.  If the verification succeeds, then that
   4468 @c <en>combination of username, host, repository, and password
   4469 @c <en>is permanently recorded, so future transactions with
   4470 @c <en>that repository won't require you to run @code{cvs
   4471 @c <en>login}.  (If verification fails, @sc{cvs} will exit
   4472 @c <en>complaining that the password was incorrect, and
   4473 @c <en>nothing will be recorded.)
   4474 Depois de fornecer a senha, o @sc{cvs} a verifica no
   4475 servidor.   Se a verificao procede, ento esta
   4476 combinao de usurio, mquina, repositrio e senha 
   4477 gravada permanentemente de forma que futuras transaes
   4478 com este repositrio no vo requerer a execuo de
   4479 @code{cvs login}.  (Se a verificao falhar, @sc{cvs}
   4480 vai sair avisando que a senha est incorreta e nada vai
   4481 ser gravado.)
   4482 
   4483 @c <en>The records are stored, by default, in the file
   4484 @c <en>@file{$HOME/.cvspass}.  That file's format is
   4485 @c <en>human-readable, and to a degree human-editable, but
   4486 @c <en>note that the passwords are not stored in
   4487 @c <en>cleartext---they are trivially encoded to protect them
   4488 @c <en>from "innocent" compromise (i.e., inadvertent viewing
   4489 @c <en>by a system administrator or other non-malicious
   4490 @c <en>person).
   4491 A gravao  feita, por padro, no arquivo
   4492 @file{$HOME/.cvspass}.  O arquivo tem formato
   4493 legvel, e num certo nvel, editvel, mas observe que
   4494 as senhas no so guardadas em texto plano---elas so
   4495 codificadas trivialmente para proteger contra
   4496 ???compromise??? "inocente" (i.e., um administrador
   4497 desavisado dar uma olhada ou outra pessoa sem segundas
   4498 intenes).
   4499 
   4500 @c <en>@cindex CVS_PASSFILE, environment variable
   4501 @c <en>You can change the default location of this file by
   4502 @c <en>setting the @code{CVS_PASSFILE} environment variable.
   4503 @c <en>If you use this variable, make sure you set it
   4504 @c <en>@emph{before} @code{cvs login} is run.  If you were to
   4505 @c <en>set it after running @code{cvs login}, then later
   4506 @c <en>@sc{cvs} commands would be unable to look up the
   4507 @c <en>password for transmission to the server.
   4508 @cindex CVS_PASSFILE, varivel de ambiente
   4509 Voc pode  mudar o local padro deste arquivo ajustando
   4510 a varivel de ambiente @code{CVS_PASSFILE}.  Se voc
   4511 usar esta varivel, certifique-se de fazer isto
   4512 @emph{antes} de rodar @code{cvs login}.  Se voc fizer
   4513 isto depois de rodar o @code{cvs login}, ento mais
   4514 tarde os comandos do @sc{cvs} vo ser incapazes de
   4515 encontrar a senha para mandar para o servidor.
   4516   
   4517 @c <en>Once you have logged in, all @sc{cvs} commands using
   4518 @c <en>that remote repository and username will authenticate
   4519 @c <en>with the stored password.  So, for example
   4520 Uma vez que voc esteja autenticado, todos os comandos
   4521 do @sc{cvs} que usam o repositrio remoto e senha vo
   4522 se autenticar com a senha armazenada.  Ento, por exemplo
   4523   
   4524 @example
   4525 cvs -d :pserver:bach@@faun.example.org:/usr/local/cvsroot checkout foo
   4526 @end example
   4527 
   4528 @c <en>@noindent
   4529 @c <en>should just work (unless the password changes on the
   4530 @c <en>server side, in which case you'll have to re-run
   4531 @c <en>@code{cvs login}).
   4532 @noindent
   4533 vai funcionar (a menos que a senha mude no servidor,
   4534 onde neste caso voc vai ter que rodar de novo
   4535 @code{cvs login}).
   4536 
   4537 @c <en>Note that if the @samp{:pserver:} were not present in
   4538 @c <en>the repository specification, @sc{cvs} would assume it
   4539 @c <en>should use @code{rsh} to connect with the server
   4540 @c <en>instead (@pxref{Connecting via rsh}).
   4541 Observe que se o @samp{:pserver:} no estiver presente
   4542 na especificao do repositrio, o @sc{cvs} vai assumir
   4543 que deve usar o @code{rsh} para se conectar com o
   4544 servidor, neste caso (@pxref{Se conectando via rsh}).
   4545 
   4546 @c <en>Of course, once you have a working copy checked out and
   4547 @c <en>are running @sc{cvs} commands from within it, there is
   4548 @c <en>no longer any need to specify the repository
   4549 @c <en>explicitly, because @sc{cvs} can deduce the repository
   4550 @c <en>from the working copy's @file{CVS} subdirectory.
   4551  claro que, uma vez que voc tenha uma cpia de
   4552 trabalho baixada e est rodando comandos @sc{cvs} de
   4553 dentro dela, no existe mais a necessidade de
   4554 explicitar o repositrio, j que o @sc{cvs} pode
   4555 deduzir o repositrio a partir do subdiretrio
   4556 @file{CVS} da cpia de trabalho.
   4557 
   4558 @c FIXME: seems to me this needs somewhat more
   4559 @c explanation.
   4560 @c <en>@cindex Logout (subcommand)
   4561 @c <en>The password for a given remote repository can be
   4562 @c <en>removed from the @code{CVS_PASSFILE} by using the
   4563 @c <en>@code{cvs logout} command.
   4564 @cindex Logout (subcomando)
   4565 A senha para um dado repositrio remoto pode ser
   4566 removida do @code{CVS_PASSFILE} usando o comando
   4567 @code{cvs logout}.
   4568 
   4569 @c <en>@node Password authentication security
   4570 @node Segurana com autenticao por senha
   4571 @c <en>@subsubsection Security considerations with password authentication
   4572 @subsubsection Consideraes de segurana com autenticao por senha
   4573 
   4574 @c <en>@cindex Security, of pserver
   4575 @cindex Segurana com pserver
   4576 @c <en>The passwords are stored on the client side in a
   4577 @c <en>trivial encoding of the cleartext, and transmitted in
   4578 @c <en>the same encoding.  The encoding is done only to
   4579 @c <en>prevent inadvertent password compromises (i.e., a
   4580 @c <en>system administrator accidentally looking at the file),
   4581 @c <en>and will not prevent even a naive attacker from gaining
   4582 @c <en>the password.
   4583 As senhas so guardadas no cliente com uma codificao
   4584 trivial de texto, e transmitidas na mesma codificao.
   4585 Esta codificao  feita apenas para prevenir uma
   4586 quebra de segredo inadvertida (i.e., um administrador
   4587 de sistema acidentalmente olhar o arquivo), e no
   4588 evita nem mesmo que um atacante ingnuo consiga a
   4589 senha.
   4590 
   4591 @c FIXME: The bit about "access to the repository
   4592 @c implies general access to the system is *not* specific
   4593 @c to pserver; it applies to kerberos and SSH and
   4594 @c everything else too.  Should reorganize the
   4595 @c documentation to make this clear.
   4596 @c <en>The separate @sc{cvs} password file (@pxref{Password
   4597 @c <en>authentication server}) allows people
   4598 @c <en>to use a different password for repository access than
   4599 @c <en>for login access.  On the other hand, once a user has
   4600 @c <en>non-read-only
   4601 @c <en>access to the repository, she can execute programs on
   4602 @c <en>the server system through a variety of means.  Thus, repository
   4603 @c <en>access implies fairly broad system access as well.  It
   4604 @c <en>might be possible to modify @sc{cvs} to prevent that,
   4605 @c <en>but no one has done so as of this writing.
   4606 O arquivo de senhas do @sc{cvs} em separado
   4607 (@pxref{Servidor de autenticao por senha}) permite
   4608 que as pessoas usem uma senha de acesso ao repositrio
   4609 deferente da senha de login.  Por outro lado, uma vez
   4610 que um usurio tenha acesso maior que somente-leitura,
   4611 ele pode executar programas no sistema do servidor de
   4612 vrias formas.  Ento, o acesso ao repositrio implica
   4613 acesso ao sistema como um todo.   possvel modificar o
   4614 @sc{cvs} para evitar isto, mas at agora ninguem agiu
   4615 neste sentido.
   4616 @c OpenBSD uses chroot() and copies the repository to
   4617 @c provide anonymous read-only access (for details see
   4618 @c http://www.openbsd.org/anoncvs.shar).  While this
   4619 @c closes the most obvious holes, I'm not sure it
   4620 @c closes enough holes to recommend it (plus it is
   4621 @c *very* easy to accidentally screw up a setup of this
   4622 @c type).
   4623 
   4624 @c <en>Note that because the @file{$CVSROOT/CVSROOT} directory
   4625 @c <en>contains @file{passwd} and other files which are used
   4626 @c <en>to check security, you must control the permissions on
   4627 @c <en>this directory as tightly as the permissions on
   4628 @c <en>@file{/etc}.  The same applies to the @file{$CVSROOT}
   4629 @c <en>directory itself and any directory
   4630 @c <en>above it in the tree.  Anyone who has write access to
   4631 @c <en>such a directory will have the ability to become any
   4632 @c <en>user on the system.  Note that these permissions are
   4633 @c <en>typically tighter than you would use if you are not
   4634 @c <en>using pserver.
   4635 observe que j que o diretrio @file{$CVSROOT/CVSROOT}
   4636 contm o arquivo @file{passwd} e outros arquivos que
   4637 so usados para verificaes de segurana, voc deve
   4638 controlar as permisses neste diretrio com o mesmo
   4639 cuidado que tem com as permisses em @file{/etc}.  O
   4640 mesmo se aplica ao prprio diretrio @file{$CVSROOT} e
   4641 qualquer diretrio acima dele na rvore de diretrios.
   4642 Qualquer pessoas que tenha permisso de escrita a algum
   4643 destes diretrios vai ter a habilidade de se tornar
   4644 qualquer usurio do sistema.  Observe que estas
   4645 permisses so em geral mais rgidas que as que voc
   4646 usaria se voc no estivesse usando o pserver.
   4647 @c TODO: Would be really nice to document/implement a
   4648 @c scheme where the CVS server can run as some non-root
   4649 @c user, e.g. "cvs".  CVSROOT/passwd would contain a
   4650 @c bunch of entries of the form foo:xxx:cvs (or the "cvs"
   4651 @c would be implicit).  This would greatly reduce
   4652 @c security risks such as those hinted at in the
   4653 @c previous paragraph.  I think minor changes to CVS
   4654 @c might be required but mostly this would just need
   4655 @c someone who wants to play with it, document it, &c.
   4656 
   4657 @c <en>In summary, anyone who gets the password gets
   4658 @c <en>repository access (which may imply some measure of general system
   4659 @c <en>access as well).  The password is available to anyone
   4660 @c <en>who can sniff network packets or read a protected
   4661 @c <en>(i.e., user read-only) file.  If you want real
   4662 @c <en>security, get Kerberos.
   4663 Resumindo, qualquer um que consiga as senhas vai ter
   4664 acesso ao repositrio (que implica de certa forma
   4665 acesso ao sistema em geral).  A senha est disponvel
   4666 para qualquer um que possa ???sniff??? pacotes de rede
   4667 ou ler um arquivo protegido (i.e., somente-leitura para
   4668 usurios).  Se voc quer segurana real, use Kerberos.
   4669 
   4670 @c <en>@node GSSAPI authenticated
   4671 @node Autenticao GSSAPI
   4672 @c <en>@subsection Direct connection with GSSAPI
   4673 @subsection Conexo direta com GSSAPI
   4674 
   4675 @c <en>@cindex GSSAPI
   4676 @cindex GSSAPI
   4677 @c <en>@cindex Security, GSSAPI
   4678 @cindex Segurana, GSSAPI
   4679 @c <en>@cindex :gserver:, setting up
   4680 @cindex :gserver:, ajustando
   4681 @c <en>@cindex Kerberos, using :gserver:
   4682 @cindex Kerberos, usando :gserver:
   4683 @c <en>GSSAPI is a generic interface to network security
   4684 @c <en>systems such as Kerberos 5.
   4685 @c <en>If you have a working GSSAPI library, you can have
   4686 @c <en>@sc{cvs} connect via a direct @sc{tcp} connection,
   4687 @c <en>authenticating with GSSAPI.
   4688 GSSAPI  uma interface genrica para sistemas de
   4689 segurana em rede como o Kerberos 5.  Se voc tem uma
   4690 biblioteca GSSAPI funcionando, voc pode ter seu
   4691 @sc{cvs} conectado via uma conexo @sc{tcp} direta, se
   4692 autenticando com GSSAPI.
   4693 
   4694 @c <en>To do this, @sc{cvs} needs to be compiled with GSSAPI
   4695 @c <en>support; when configuring @sc{cvs} it tries to detect
   4696 @c <en>whether GSSAPI libraries using kerberos version 5 are
   4697 @c <en>present.  You can also use the @file{--with-gssapi}
   4698 @c <en>flag to configure.
   4699 Para isto, o @sc{cvs} precisa ter sido compilado com
   4700 suporte a GSSAPI; quando voc estiver configurando o
   4701 @sc{cvs} ele vai tentar detectar se as bibliotecas
   4702 GSSAPI usando kerberos verso 5 esto presentes.  Voc
   4703 tambm pode configurar isto com opo @file{--with-gssapi}.
   4704 
   4705 @c <en>The connection is authenticated using GSSAPI, but the
   4706 @c <en>message stream is @emph{not} authenticated by default.
   4707 @c <en>You must use the @code{-a} global option to request
   4708 @c <en>stream authentication.
   4709 A conexo  autenticada usando GSSAPI, mas o fluxo de
   4710 mensagem @emph{no } autenticado por padro.  Voc deve
   4711 usar a opo global @code{-a} para pedir autenticao
   4712 de fluxo.
   4713 
   4714 @c <en>The data transmitted is @emph{not} encrypted by
   4715 @c <en>default.  Encryption support must be compiled into both
   4716 @c <en>the client and the server; use the
   4717 @c <en>@file{--enable-encrypt} configure option to turn it on.
   4718 @c <en>You must then use the @code{-x} global option to
   4719 @c <en>request encryption.
   4720 Os dados transmitidos @emph{no} so criptografados por
   4721 padro.  Suporte a criptografia deve ser compilado
   4722 tanto no cliente quanto no servidor; use a opo de
   4723 configurao @file{--enable-encrypt} para ativar isto.
   4724 Com isto voc deve usar a opo global @code{-x} para
   4725 pedir criptografia.
   4726 
   4727 @c <en>GSSAPI connections are handled on the server side by
   4728 @c <en>the same server which handles the password
   4729 @c <en>authentication server; see @ref{Password authentication
   4730 @c <en>server}.  If you are using a GSSAPI mechanism such as
   4731 @c <en>Kerberos which provides for strong authentication, you
   4732 @c <en>will probably want to disable the ability to
   4733 @c <en>authenticate via cleartext passwords.  To do so, create
   4734 @c <en>an empty @file{CVSROOT/passwd} password file, and set
   4735 @c <en>@code{SystemAuth=no} in the config file
   4736 @c <en>(@pxref{config}).
   4737 Conexes GSSAPI so tratadas no lado servidor pelo
   4738 mesmo servidor que cuida de autenticao por senha;
   4739 veja em @ref{Servidor de autenticao por senha}.  Se
   4740 voc est usando um mecanismo GSSAPI como o Kerberos,
   4741 que fornece autenticao forte, voc vai provavelmente
   4742 querer impedir autenticao via senhas em texto plano.
   4743 Para tal, crie um arquivo de senha
   4744 @file{CVSROOT/passwd} vazio e faa @code{SystemAuth=no}
   4745 no arquivo config (@pxref{config}).
   4746 
   4747 @c <en>The GSSAPI server uses a principal name of
   4748 @c <en>cvs/@var{hostname}, where @var{hostname} is the
   4749 @c <en>canonical name of the server host.  You will have to
   4750 @c <en>set this up as required by your GSSAPI mechanism.
   4751 O servidor GSSAPI usa um nome principal de
   4752 cvs/@var{hostname}, onde @var{hostname}  o nome
   4753 cannico da mquina servidora.  Voc vai ter que
   4754 ajustar isto como  exigido pelo seu mecanismo GSSAPI.
   4755 
   4756 @c <en>To connect using GSSAPI, use @samp{:gserver:}.  For
   4757 @c <en>example,
   4758 Para se conectar usando GSSAPI, use @samp{:gserver:}.  Por
   4759 exemplo,
   4760 
   4761 @example
   4762 cvs -d :gserver:faun.example.org:/usr/local/cvsroot checkout foo
   4763 @end example
   4764 
   4765 @c <en>@node Kerberos authenticated
   4766 @node Autenticao kerberos
   4767 @c <en>@subsection Direct connection with kerberos
   4768 @subsection Conexo direta com kerberos
   4769 
   4770 @c <en>@cindex Kerberos, using :kserver:
   4771 @cindex Kerberos, usando :kserver:
   4772 @c <en>@cindex Security, kerberos
   4773 @cindex Segurana, kerberos
   4774 @c <en>@cindex :kserver:, setting up
   4775 @cindex :kserver:, ajustando
   4776 @c <en>The easiest way to use kerberos is to use the kerberos
   4777 @c <en>@code{rsh}, as described in @ref{Connecting via rsh}.
   4778 @c <en>The main disadvantage of using rsh is that all the data
   4779 @c <en>needs to pass through additional programs, so it may be
   4780 @c <en>slower.  So if you have kerberos installed you can
   4781 @c <en>connect via a direct @sc{tcp} connection,
   4782 @c <en>authenticating with kerberos.
   4783 A forma mais fcil de usar kerberos  usar o @code{rsh}
   4784 kerberos, como descrito em @ref{Se conectando via
   4785 rsh}.  A principal desvantagem de usar rsh  que todos
   4786 os dados precisam passar por outros programas, o que 
   4787 mais lento.  Portanto, se voc tem kerberos instalado,
   4788 voc pode se conectar via conexo @sc{tcp} direta,
   4789 autenticando com kerberos.
   4790 
   4791 @c <en>This section concerns the kerberos network security
   4792 @c <en>system, version 4.  Kerberos version 5 is supported via
   4793 @c <en>the GSSAPI generic network security interface, as
   4794 @c <en>described in the previous section.
   4795 Esta seo diz respeito ao sistema de segurana de rede
   4796 kerberos (kerberos network security system), verso 4.
   4797 Kerberos verso 5  suportado pela interface de
   4798 segurana de rede genrica GSSAPI, como descrito na
   4799 seo anterior.
   4800 
   4801 @c <en>To do this, @sc{cvs} needs to be compiled with kerberos
   4802 @c <en>support; when configuring @sc{cvs} it tries to detect
   4803 @c <en>whether kerberos is present or you can use the
   4804 @c <en>@file{--with-krb4} flag to configure.
   4805 Para isto, o @sc{cvs}  precisa ter sido compilado com
   4806 suporte a kerberos; quando voc estiver configurando o
   4807 @sc{cvs} ele vai tentar detectar se as bibliotecas
   4808 kerberos esto presentes ou voc pode configurar isto
   4809 com a opo @file{--with-krb4}.
   4810 
   4811 @c <en>The data transmitted is @emph{not} encrypted by
   4812 @c <en>default.  Encryption support must be compiled into both
   4813 @c <en>the client and server; use the
   4814 @c <en>@file{--enable-encryption} configure option to turn it
   4815 @c <en>on.  You must then use the @code{-x} global option to
   4816 @c <en>request encryption.
   4817 Os dados transmitidos @emph{no} so criptografados por
   4818 padro.  Suporte a criptografia deve ser compilado
   4819 tanto no cliente quanto no servidor; use a opo de
   4820 configurao @file{--enable-encryption} para ativar
   4821 isto.  Voc deve ento usar a opo global @code{-x}
   4822 para pedir criptografia.
   4823 
   4824 @c <en>@cindex CVS_CLIENT_PORT
   4825 @cindex CVS_CLIENT_PORT
   4826 @c <en>You need to edit @file{inetd.conf} on the server
   4827 @c <en>machine to run @code{cvs kserver}.  The client uses
   4828 @c <en>port 1999 by default; if you want to use another port
   4829 @c <en>specify it in the @code{CVSROOT} (@pxref{Remote repositories})
   4830 @c <en>or the @code{CVS_CLIENT_PORT} environment variable
   4831 @c <en>(@pxref{Environment variables}) on the client.
   4832 Voc precisa editar o @file{inetd.conf} no servidor
   4833 para rodar @code{cvs kserver}.  O cliente usa a porta
   4834 1999 por padro; se voc quer usar outra porta
   4835 especifique ela no @code{CVSROOT} (@pxref{Repositrios remotos})
   4836 ou na varivel de ambiente @code{CVS_CLIENT_PORT}
   4837 (@pxref{Variveis de ambiente}) no cliente.
   4838 
   4839 @c <en>@cindex kinit
   4840 @cindex kinit
   4841 @c <en>When you want to use @sc{cvs}, get a ticket in the
   4842 @c <en>usual way (generally @code{kinit}); it must be a ticket
   4843 @c <en>which allows you to log into the server machine.  Then
   4844 @c <en>you are ready to go:
   4845 Quando voc quiser usar o @sc{cvs}, pegue um tquete da
   4846 forma usual (geralmente @code{kinit}); ele pode ser um
   4847 tquete que te permite se autenticar na mquina
   4848 servidora.  Ento voc estar pronto para seguir:
   4849 
   4850 @example
   4851 cvs -d :kserver:faun.example.org:/usr/local/cvsroot checkout foo
   4852 @end example
   4853 
   4854 @c <en>Previous versions of @sc{cvs} would fall back to a
   4855 @c <en>connection via rsh; this version will not do so.
   4856 Verses anteriores do @sc{cvs} podem recair numa
   4857 conexo via rsh; esta verso no vai fazer isso.
   4858 
   4859 @c <en>@node Connecting via fork
   4860 @node Conectando via fork
   4861 @c <en>@subsection Connecting with fork
   4862 @subsection Conectando via fork
   4863 
   4864 @c <en>@cindex fork, access method
   4865 @cindex fork, mtodo de acesso
   4866 @c <en>@cindex :fork:, setting up
   4867 @cindex :fork:, ajustando
   4868 @c <en>This access method allows you to connect to a
   4869 @c <en>repository on your local disk via the remote protocol.
   4870 @c <en>In other words it does pretty much the same thing as
   4871 @c <en>@code{:local:}, but various quirks, bugs and the like are
   4872 @c <en>those of the remote @sc{cvs} rather than the local
   4873 @c <en>@sc{cvs}.
   4874 Este mtodo de acesso permite a voc conectar a um
   4875 repositrio no seu disco local via um protocolo
   4876 remoto.  Em outras palavras, ele faz praticamente a
   4877 mesma coisa que @code{:local:}, mas vrias peduliaridades, paus
   4878 e coisas do gnero so os mesmos do @sc{cvs} remoto ao
   4879 invs do @sc{cvs} local.
   4880 
   4881 @c <en>For day-to-day operations you might prefer either
   4882 @c <en>@code{:local:} or @code{:fork:}, depending on your
   4883 @c <en>preferences.  Of course @code{:fork:} comes in
   4884 @c <en>particularly handy in testing or
   4885 @c <en>debugging @code{cvs} and the remote protocol.
   4886 @c <en>Specifically, we avoid all of the network-related
   4887 @c <en>setup/configuration, timeouts, and authentication
   4888 @c <en>inherent in the other remote access methods but still
   4889 @c <en>create a connection which uses the remote protocol.
   4890 Para trabalhar no dia-a-dia voc vai preferir ou o
   4891 @code{:local:} ou o @code{:fork:}, dependendo de suas
   4892 preferncias.   claro que @code{:fork:}  bastante
   4893 til em testes ou depurao do @code{cvs} e o protocolo
   4894 remoto.  Especificamente, ns evitamos todas as
   4895 configuraes/ajustes relacionados a redes, sesses
   4896 expirando e autenticao inerentes de mtodos de acesso
   4897 remoto mas ainda assim criamos uma conexo que usa o
   4898 protocolo remoto.
   4899 
   4900 @c <en>To connect using the @code{fork} method, use
   4901 @c <en>@samp{:fork:} and the pathname to your local
   4902 @c <en>repository.  For example:
   4903 Para se conectar usando o mtodo @code{fork}, use
   4904 @samp{:fork:} e o caminho para seu repositrio local.
   4905 Por exemplo:
   4906 
   4907 @example
   4908 cvs -d :fork:/usr/local/cvsroot checkout foo
   4909 @end example
   4910 
   4911 @c <en>@cindex CVS_SERVER, and :fork:
   4912 @cindex CVS_SERVER, and :fork:
   4913 @c <en>As with @code{:ext:}, the server is called @samp{cvs}
   4914 @c <en>by default, or the value of the @code{CVS_SERVER}
   4915 @c <en>environment variable.
   4916 Assim como com @code{:ext:}, o servidor  chamado
   4917 @samp{cvs} por padro, ou o valor da varivel de
   4918 ambiente @code{CVS_SERVER}.
   4919 
   4920 @c ---------------------------------------------------------------------
   4921 @c <en>@node Read-only access
   4922 @node Acesso somente-leitura
   4923 @c <en>@section Read-only repository access
   4924 @section Acesso somente-leitura ao repositrio
   4925 @c <en>@cindex Read-only repository access
   4926 @cindex Acesso somente-leitura ao repositrio
   4927 @c <en>@cindex readers (admin file)
   4928 @cindex readers (arquivo administrativo)
   4929 @c <en>@cindex writers (admin file)
   4930 @cindex writers (arquivo administrativo)
   4931 
   4932 @c <en>        It is possible to grant read-only repository
   4933 @c <en>access to people using the password-authenticated
   4934 @c <en>server (@pxref{Password authenticated}).  (The
   4935 @c <en>other access methods do not have explicit support for
   4936 @c <en>read-only users because those methods all assume login
   4937 @c <en>access to the repository machine anyway, and therefore
   4938 @c <en>the user can do whatever local file permissions allow
   4939 @c <en>her to do.)
   4940          possvel permitir acesso somente-leitura ao
   4941 repositrio a pessoas usando o servidor de autenticao
   4942 por senha (@pxref{Autenticao por senha}).  (Os outros
   4943 mtodos de acesso no tem suporte explcito para
   4944 somente-leitura de usurios, j que todos estes mtodos
   4945 assumem acesso por login  mquina do repositrio de
   4946 qualquer forma, e portanto o usurio pode fazer o que
   4947 as permisses de arquivos locais permitirem.)
   4948 
   4949 @c <en>        A user who has read-only access can do only
   4950 @c <en>those @sc{cvs} operations which do not modify the
   4951 @c <en>repository, except for certain ``administrative'' files
   4952 @c <en>(such as lock files and the history file).  It may be
   4953 @c <en>desirable to use this feature in conjunction with
   4954 @c <en>user-aliasing (@pxref{Password authentication server}).
   4955 Um usurio que tem acesso somente-leitura pode realizar
   4956 apenas as operaes do @sc{cvs} que no modificam o
   4957 repositrio, exceto alguns arquivos ``administrativos''
   4958 (tais como arquivos de trava e o arquivo history).
   4959 Pode ser desejvel usar esta habilidade em conjunto com
   4960 ???``user-aliasing''??? (@pxref{Servidor de autenticao por
   4961 senha}).
   4962 
   4963 @c <en>Unlike with previous versions of @sc{cvs}, read-only
   4964 @c <en>users should be able merely to read the repository, and
   4965 @c <en>not to execute programs on the server or otherwise gain
   4966 @c <en>unexpected levels of access.  Or to be more accurate,
   4967 @c <en>the @emph{known} holes have been plugged.  Because this
   4968 @c <en>feature is new and has not received a comprehensive
   4969 @c <en>security audit, you should use whatever level of
   4970 @c <en>caution seems warranted given your attitude concerning
   4971 @c <en>security.
   4972 Ao contrrio de verses anteriores do @sc{cvs},
   4973 usurios somente-leitura so capazes de simplesmente
   4974 ler o repositrio, e no de executar programas no
   4975 servidor ou ainda conseguir nveis de acessos extras.
   4976 Ou, para ser mais preciso, os papis @emph{conhecidos}
   4977 foram ???plugged???.  Pelo fato de esta caracterstica
   4978 ser nova e ainda no ter recebido uma auditoria de
   4979 segurana abrangente, voc deve usar quaisquer nveis
   4980 de precauo que paream seguros de acordo com a sua
   4981 forma de agir com respeito a segurana.
   4982 
   4983 @c <en>        There are two ways to specify read-only access
   4984 @c <en>for a user: by inclusion, and by exclusion.
   4985         Existem duas formas de estabelecer acesso
   4986 somente-leitura para um usurio: por incluso ou por excluso.
   4987 
   4988 @c <en>        "Inclusion" means listing that user
   4989 @c <en>specifically in the @file{$CVSROOT/CVSROOT/readers}
   4990 @c <en>file, which is simply a newline-separated list of
   4991 @c <en>users.  Here is a sample @file{readers} file:
   4992         "Incluso" significa botar aquele usurio
   4993 especfico no arquivo @file{$CVSROOT/CVSROOT/readers},
   4994 que  simplesmente uma lista de usurios separados por
   4995 quebra de linha.  Aqui est um exemplo do @file{readers}:
   4996 
   4997 @example
   4998 melissa
   4999 splotnik
   5000 jrandom
   5001 @end example
   5002 
   5003 @noindent
   5004 @c <en>        (Don't forget the newline after the last user.)
   5005         (No esquea a quebra de linha depois do ltimo
   5006 usurio.)
   5007 
   5008 @c <en>        "Exclusion" means explicitly listing everyone
   5009 @c <en>who has @emph{write} access---if the file
   5010         "Excluso" significa listar explicitamente
   5011 todos que tm acesso de @emph{escrita}---se o arquivo
   5012 
   5013 @example
   5014 $CVSROOT/CVSROOT/writers
   5015 @end example
   5016 
   5017 @noindent
   5018 @c <en>exists, then only
   5019 @c <en>those users listed in it have write access, and
   5020 @c <en>everyone else has read-only access (of course, even the
   5021 @c <en>read-only users still need to be listed in the
   5022 @c <en>@sc{cvs} @file{passwd} file).  The
   5023 @c <en>@file{writers} file has the same format as the
   5024 @c <en>@file{readers} file.
   5025 existe, ento apenas os usurios que constam nele teram
   5026 acesso de escrita, e qualquer outra pessoa acesso
   5027 somente-leitura (obviamente, mesmo os usurios
   5028 somente-leitura devem ainda ser listados no arquivo
   5029 @file{passwd} do @sc{cvs}).  O arquivo @file{writers}
   5030 tem o mesmo formato do arquivo @file{readers}.
   5031 
   5032 @c <en>        Note: if your @sc{cvs} @file{passwd}
   5033 @c <en>file maps cvs users onto system users (@pxref{Password
   5034 @c <en>authentication server}), make sure you deny or grant
   5035 @c <en>read-only access using the @emph{cvs} usernames, not
   5036 @c <en>the system usernames.  That is, the @file{readers} and
   5037 @c <en>@file{writers} files contain cvs usernames, which may
   5038 @c <en>or may not be the same as system usernames.
   5039         Observao: se seu arquivo @file{passwd} do
   5040 @sc{cvs} associa usurios do cvs com usurios do
   5041 sistema (@pxref{Servidor de autenticao por
   5042 senha}), certifique-se de que voc esteja
   5043 negando ou fornecendo acesso somente-leitura usando os
   5044 usurios @emph{do cvs}, e no os do sistema.  Ou seja,
   5045 os arquivos @file{readers} e @file{writers} contm
   5046 nomes de usurios do cvs, que no necessriamente tm o
   5047 mesmo nome que usurios do sistema.
   5048 
   5049 @c <en>        Here is a complete description of the server's
   5050 @c <en>behavior in deciding whether to grant read-only or
   5051 @c <en>read-write access:
   5052         Here is a complete description of the server's
   5053 behavior in deciding whether to grant read-only or
   5054 read-write access:
   5055 
   5056 @c <en>        If @file{readers} exists, and this user is
   5057 @c <en>listed in it, then she gets read-only access.  Or if
   5058 @c <en>@file{writers} exists, and this user is NOT listed in
   5059 @c <en>it, then she also gets read-only access (this is true
   5060 @c <en>even if @file{readers} exists but she is not listed
   5061 @c <en>there).  Otherwise, she gets full read-write access.
   5062         If @file{readers} exists, and this user is
   5063 listed in it, then she gets read-only access.  Or if
   5064 @file{writers} exists, and this user is NOT listed in
   5065 it, then she also gets read-only access (this is true
   5066 even if @file{readers} exists but she is not listed
   5067 there).  Otherwise, she gets full read-write access.
   5068 
   5069 @c <en>        Of course there is a conflict if the user is
   5070 @c <en>listed in both files.  This is resolved in the more
   5071 @c <en>conservative way, it being better to protect the
   5072 @c <en>repository too much than too little: such a user gets
   5073 @c <en>read-only access.
   5074         Of course there is a conflict if the user is
   5075 listed in both files.  This is resolved in the more
   5076 conservative way, it being better to protect the
   5077 repository too much than too little: such a user gets
   5078 read-only access.
   5079 
   5080 @c <en>@node Server temporary directory
   5081 @node Diretrio temporrio do servidor
   5082 @c <en>@section Temporary directories for the server
   5083 @section Temporary directories for the server
   5084 @c <en>@cindex Temporary directories, and server
   5085 @cindex Temporary directories, and server
   5086 @c <en>@cindex Server, temporary directories
   5087 @cindex Server, temporary directories
   5088 
   5089 @c <en>While running, the @sc{cvs} server creates temporary
   5090 @c <en>directories.  They are named
   5091 While running, the @sc{cvs} server creates temporary
   5092 directories.  They are named
   5093 
   5094 @example
   5095 cvs-serv@var{pid}
   5096 @end example
   5097 
   5098 @noindent
   5099 @c <en>where @var{pid} is the process identification number of
   5100 @c <en>the server.
   5101 @c <en>They are located in the directory specified by 
   5102 @c <en>the @samp{-T} global option (@pxref{Global options}), 
   5103 @c <en>the @code{TMPDIR} environment variable (@pxref{Environment variables}), 
   5104 @c <en>or, failing that, @file{/tmp}.
   5105 where @var{pid} is the process identification number of
   5106 the server.
   5107 They are located in the directory specified by 
   5108 the @samp{-T} global option (@pxref{Opes globais}), 
   5109 the @code{TMPDIR} environment variable (@pxref{Variveis de ambiente}), 
   5110 or, failing that, @file{/tmp}.
   5111 
   5112 @c <en>In most cases the server will remove the temporary
   5113 @c <en>directory when it is done, whether it finishes normally
   5114 @c <en>or abnormally.  However, there are a few cases in which
   5115 @c <en>the server does not or cannot remove the temporary
   5116 @c <en>directory, for example:
   5117 In most cases the server will remove the temporary
   5118 directory when it is done, whether it finishes normally
   5119 or abnormally.  However, there are a few cases in which
   5120 the server does not or cannot remove the temporary
   5121 directory, for example:
   5122 
   5123 @itemize @bullet
   5124 @item
   5125 @c <en>If the server aborts due to an internal server error,
   5126 @c <en>it may preserve the directory to aid in debugging
   5127 If the server aborts due to an internal server error,
   5128 it may preserve the directory to aid in debugging
   5129 
   5130 @item
   5131 @c <en>If the server is killed in a way that it has no way of
   5132 @c <en>cleaning up (most notably, @samp{kill -KILL} on unix).
   5133 If the server is killed in a way that it has no way of
   5134 cleaning up (most notably, @samp{kill -KILL} on unix).
   5135 
   5136 @item
   5137 @c <en>If the system shuts down without an orderly shutdown,
   5138 @c <en>which tells the server to clean up.
   5139 If the system shuts down without an orderly shutdown,
   5140 which tells the server to clean up.
   5141 @end itemize
   5142 
   5143 @c <en>In cases such as this, you will need to manually remove
   5144 @c <en>the @file{cvs-serv@var{pid}} directories.  As long as
   5145 @c <en>there is no server running with process identification
   5146 @c <en>number @var{pid}, it is safe to do so.
   5147 In cases such as this, you will need to manually remove
   5148 the @file{cvs-serv@var{pid}} directories.  As long as
   5149 there is no server running with process identification
   5150 number @var{pid}, it is safe to do so.
   5151 
   5152 @c ---------------------------------------------------------------------
   5153 @c <en>@node Starting a new project
   5154 @node Comeando um novo projeto
   5155 @c <en>@chapter Starting a project with CVS
   5156 @chapter Comeando um projeto com o CVS
   5157 @c <en>@cindex Starting a project with CVS
   5158 @cindex Comeando um projeto com CVS
   5159 @c <en>@cindex Creating a project
   5160 @cindex Criando um projeto
   5161 
   5162 @comment --moduledb--
   5163 @c <en>Because renaming files and moving them between
   5164 @c <en>directories is somewhat inconvenient, the first thing
   5165 @c <en>you do when you start a new project should be to think
   5166 @c <en>through your file organization.  It is not impossible
   5167 @c <en>to rename or move files, but it does increase the
   5168 @c <en>potential for confusion and @sc{cvs} does have some
   5169 @c <en>quirks particularly in the area of renaming
   5170 @c <en>directories.  @xref{Moving files}.
   5171 J que renomear e mover arquivos entre diretrios  um
   5172 tanto quanto inconveniente, a primeira coisa a fazer
   5173 quando voc comea um novo projeto deve ser ponderar a
   5174 respeito da organizao dos arquivos.  No  impossvel
   5175 renomear ou mover arquivos, mas isto aumenta as chances
   5176 de erro e o @sc{cvs} tem algumas idiossincrasias em
   5177 especial quanto a renomear diretrios.  @xref{Movendo arquivos}.
   5178 
   5179 @c <en>What to do next depends on the situation at hand.
   5180 O que fazer depende da situao em que voc est.
   5181 
   5182 @menu
   5183 @c <en>* Setting up the files::        Getting the files into the repository
   5184 * Ajustando os arquivos::      Botando os arquivos no repositrio
   5185 @c <en>* Defining the module::         How to make a module of the files
   5186 * Definindo o mdulo::         How to make a module of the files
   5187 @end menu
   5188 @c -- File permissions!
   5189 
   5190 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   5191 @c <en>@node Setting up the files
   5192 @node Ajustando os arquivos
   5193 @c <en>@section Setting up the files
   5194 @section Ajustando os arquivos
   5195 
   5196 @c <en>The first step is to create the files inside the repository.  This can
   5197 @c <en>be done in a couple of different ways.
   5198 O primeiro passo  criar os arquivos dentro do
   5199 repositrio.  Isto pode ser feito de algumas maneiras diferentes.
   5200 
   5201 @c -- The contributed scripts
   5202 @menu
   5203 @c <en>* From files::                  This method is useful with old projects
   5204 @c <en>                                where files already exists.
   5205 * De arquivos::                              Este mtodo  til para projetos
   5206                                              antigos cujos arquivos j existem.
   5207 @c <en>* From other version control systems::  Old projects where you want to
   5208 @c <en>                                        preserve history from another system.
   5209 * De outros sistemas de controle de verso:: Projetos antigos onde voc quer
   5210                                              preservar o histrico de outro sistema.
   5211 @c <en>* From scratch::                Creating a directory tree from scratch.
   5212 * Do zero::                                  Criando uma rvore de diretrios
   5213                                              do zero.
   5214 @end menu
   5215 
   5216 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   5217 @c <en>@node From files
   5218 @node De arquivos
   5219 @c <en>@subsection Creating a directory tree from a number of files
   5220 @subsection Criando uma rvore de diretrios de uma quantidade de arquivos
   5221 @c <en>@cindex Importing files
   5222 @cindex Importando arquivos
   5223 
   5224 @c <en>When you begin using @sc{cvs}, you will probably already have several
   5225 @c <en>projects that can be
   5226 @c <en>put under @sc{cvs} control.  In these cases the easiest way is to use the
   5227 @c <en>@code{import} command.  An example is probably the easiest way to
   5228 @c <en>explain how to use it.  If the files you want to install in
   5229 @c <en>@sc{cvs} reside in @file{@var{wdir}}, and you want them to appear in the
   5230 @c <en>repository as @file{$CVSROOT/yoyodyne/@var{rdir}}, you can do this:
   5231 Quando voc comea a usar o @sc{cvs}, provavelmente vai
   5232 ter vrios projetos que podem ser postos sob controle
   5233 do @sc{cvs}.  Nestes casos a forma mais fcil  usar o
   5234 comando @code{import}.  Um exemplo  provavelmente a
   5235 forma mais fcil de explicar como se usa o
   5236 @code{import}.  Se os arquivos que voc quer instalar
   5237 no @sc{cvs} esto em @file{@var{wdir}}, e voc quer que
   5238 eles estejam no repositrio
   5239 @file{$CVSROOT/yoyodyne/@var{rdir}}, voc pode fazer isto:
   5240 
   5241 @example
   5242 $ cd @var{wdir}
   5243 $ cvs import -m "Imported sources" yoyodyne/@var{rdir} yoyo start
   5244 @end example
   5245 
   5246 @c <en>Unless you supply a log message with the @samp{-m}
   5247 @c <en>flag, @sc{cvs} starts an editor and prompts for a
   5248 @c <en>message.  The string @samp{yoyo} is a @dfn{vendor tag},
   5249 @c <en>and @samp{start} is a @dfn{release tag}.  They may fill
   5250 @c <en>no purpose in this context, but since @sc{cvs} requires
   5251 @c <en>them they must be present.  @xref{Tracking sources}, for
   5252 @c <en>more information about them.
   5253 A menos que voc forneca uma mensagem de log (registro)
   5254 com a opo @samp{-m}, o @sc{cvs} vai iniciar um editor
   5255 e esperar uma mensagem.  A string @samp{yoyo}  uma
   5256 @dfn{etiqueta de fornecedor} (vendor tag), e
   5257 @samp{start}  uma @dfn{etiqueta de release} (release
   5258 tag).  Eles podem no fazer sentido neste contexto, mas
   5259 j que o @sc{cvs} exige, elas devem estar presentes.
   5260 @xref{Acompanhando fontes}, para mais informaes sobre
   5261 isto.
   5262 
   5263 @c <en>You can now verify that it worked, and remove your
   5264 @c <en>original source directory.
   5265 Voc agora pode verificar se est funcionando, e ento
   5266 apagar seu diretrio do cdigo fonte original.
   5267 @c FIXME: Need to say more about "verify that it
   5268 @c worked".  What should the user look for in the output
   5269 @c from "diff -r"?
   5270 
   5271 @example
   5272 $ cd ..
   5273 @c <en>$ cvs checkout yoyodyne/@var{rdir}       # @r{Explanation below}
   5274 $ cvs checkout yoyodyne/@var{rdir}       # @r{Explanation below}
   5275 $ diff -r @var{wdir} yoyodyne/@var{rdir}
   5276 $ rm -r @var{wdir}
   5277 @end example
   5278 
   5279 @noindent
   5280 @c <en>Erasing the original sources is a good idea, to make sure that you do
   5281 @c <en>not accidentally edit them in @var{wdir}, bypassing @sc{cvs}.
   5282 @c <en>Of course, it would be wise to make sure that you have
   5283 @c <en>a backup of the sources before you remove them.
   5284 Erasing the original sources is a good idea, to make sure that you do
   5285 not accidentally edit them in @var{wdir}, bypassing @sc{cvs}.
   5286 Of course, it would be wise to make sure that you have
   5287 a backup of the sources before you remove them.
   5288 
   5289 @c <en>The @code{checkout} command can either take a module
   5290 @c <en>name as argument (as it has done in all previous
   5291 @c <en>examples) or a path name relative to @code{$CVSROOT},
   5292 @c <en>as it did in the example above.
   5293 The @code{checkout} command can either take a module
   5294 name as argument (as it has done in all previous
   5295 examples) or a path name relative to @code{$CVSROOT},
   5296 as it did in the example above.
   5297 
   5298 @c <en>It is a good idea to check that the permissions
   5299 @c <en>@sc{cvs} sets on the directories inside @code{$CVSROOT}
   5300 @c <en>are reasonable, and that they belong to the proper
   5301 @c <en>groups.  @xref{File permissions}.
   5302 It is a good idea to check that the permissions
   5303 @sc{cvs} sets on the directories inside @code{$CVSROOT}
   5304 are reasonable, and that they belong to the proper
   5305 groups.  @xref{Permisses de arquivos}.
   5306 
   5307 @c <en>If some of the files you want to import are binary, you
   5308 @c <en>may want to use the wrappers features to specify which
   5309 @c <en>files are binary and which are not.  @xref{Wrappers}.
   5310 If some of the files you want to import are binary, you
   5311 may want to use the wrappers features to specify which
   5312 files are binary and which are not.  @xref{Wrappers}.
   5313 
   5314 @c The node name is too long, but I am having trouble
   5315 @c thinking of something more concise.
   5316 @c <en>@node From other version control systems
   5317 @node De outros sistemas de controle de verso
   5318 @c <en>@subsection Creating Files From Other Version Control Systems
   5319 @subsection Criando os Arquivos de Outros Sistemas de Controle de Verses
   5320 @c <en>@cindex Importing files, from other version control systems
   5321 @cindex Outros Sistemas de Controle de Verses, Importando Arquivos de
   5322 
   5323 @c <en>If you have a project which you are maintaining with
   5324 @c <en>another version control system, such as @sc{rcs}, you
   5325 @c <en>may wish to put the files from that project into
   5326 @c <en>@sc{cvs}, and preserve the revision history of the
   5327 @c <en>files.
   5328 If you have a project which you are maintaining with
   5329 another version control system, such as @sc{rcs}, you
   5330 may wish to put the files from that project into
   5331 @sc{cvs}, and preserve the revision history of the
   5332 files.
   5333 
   5334 @table @asis
   5335 @cindex RCS, importing files from
   5336 @cindex RCS, importing files from
   5337 @item From RCS
   5338 @item From RCS
   5339 @c <en>If you have been using @sc{rcs}, find the @sc{rcs}
   5340 @c <en>files---usually a file named @file{foo.c} will have its
   5341 @c <en>@sc{rcs} file in @file{RCS/foo.c,v} (but it could be
   5342 @c <en>other places; consult the @sc{rcs} documentation for
   5343 @c <en>details).  Then create the appropriate directories in
   5344 @c <en>@sc{cvs} if they do not already exist.  Then copy the
   5345 @c <en>files into the appropriate directories in the @sc{cvs}
   5346 @c <en>repository (the name in the repository must be the name
   5347 @c <en>of the source file with @samp{,v} added; the files go
   5348 @c <en>directly in the appropriate directory of the repository,
   5349 @c <en>not in an @file{RCS} subdirectory).  This is one of the
   5350 @c <en>few times when it is a good idea to access the @sc{cvs}
   5351 @c <en>repository directly, rather than using @sc{cvs}
   5352 @c <en>commands.  Then you are ready to check out a new
   5353 @c <en>working directory.
   5354 If you have been using @sc{rcs}, find the @sc{rcs}
   5355 files---usually a file named @file{foo.c} will have its
   5356 @sc{rcs} file in @file{RCS/foo.c,v} (but it could be
   5357 other places; consult the @sc{rcs} documentation for
   5358 details).  Then create the appropriate directories in
   5359 @sc{cvs} if they do not already exist.  Then copy the
   5360 files into the appropriate directories in the @sc{cvs}
   5361 repository (the name in the repository must be the name
   5362 of the source file with @samp{,v} added; the files go
   5363 directly in the appropriate directory of the repository,
   5364 not in an @file{RCS} subdirectory).  This is one of the
   5365 few times when it is a good idea to access the @sc{cvs}
   5366 repository directly, rather than using @sc{cvs}
   5367 commands.  Then you are ready to check out a new
   5368 working directory.
   5369 @c Someday there probably should be a "cvs import -t
   5370 @c rcs" or some such.  It could even create magic
   5371 @c branches.  It could also do something about the case
   5372 @c where the RCS file had a (non-magic) "0" branch.
   5373 
   5374 @c <en>The @sc{rcs} file should not be locked when you move it
   5375 @c <en>into @sc{cvs}; if it is, @sc{cvs} will have trouble
   5376 @c <en>letting you operate on it.
   5377 The @sc{rcs} file should not be locked when you move it
   5378 into @sc{cvs}; if it is, @sc{cvs} will have trouble
   5379 letting you operate on it.
   5380 @c What is the easiest way to unlock your files if you
   5381 @c have them locked?  Especially if you have a lot of them?
   5382 @c This is a CVS bug/misfeature; importing RCS files
   5383 @c should ignore whether they are locked and leave them in
   5384 @c an unlocked state.  Yet another reason for a separate
   5385 @c "import RCS file" command.
   5386 
   5387 @c How many is "many"? Or do they just import RCS files?
   5388 @c <en>@item From another version control system
   5389 @item From another version control system
   5390 @c <en>Many version control systems have the ability to export
   5391 @c <en>@sc{rcs} files in the standard format.  If yours does,
   5392 @c <en>export the @sc{rcs} files and then follow the above
   5393 @c <en>instructions.
   5394 Many version control systems have the ability to export
   5395 @sc{rcs} files in the standard format.  If yours does,
   5396 export the @sc{rcs} files and then follow the above
   5397 instructions.
   5398 
   5399 @c <en>Failing that, probably your best bet is to write a
   5400 @c <en>script that will check out the files one revision at a
   5401 @c <en>time using the command line interface to the other
   5402 @c <en>system, and then check the revisions into @sc{cvs}.
   5403 @c <en>The @file{sccs2rcs} script mentioned below may be a
   5404 @c <en>useful example to follow.
   5405 Failing that, probably your best bet is to write a
   5406 script that will check out the files one revision at a
   5407 time using the command line interface to the other
   5408 system, and then check the revisions into @sc{cvs}.
   5409 The @file{sccs2rcs} script mentioned below may be a
   5410 useful example to follow.
   5411 
   5412 @c <en>@cindex SCCS, importing files from
   5413 @cindex SCCS, importing files from
   5414 @c <en>@item From SCCS
   5415 @item From SCCS
   5416 @c <en>There is a script in the @file{contrib} directory of
   5417 @c <en>the @sc{cvs} source distribution called @file{sccs2rcs}
   5418 @c <en>which converts @sc{sccs} files to @sc{rcs} files.
   5419 @c <en>Note: you must run it on a machine which has both
   5420 @c <en>@sc{sccs} and @sc{rcs} installed, and like everything
   5421 @c <en>else in contrib it is unsupported (your mileage may
   5422 @c <en>vary).
   5423 There is a script in the @file{contrib} directory of
   5424 the @sc{cvs} source distribution called @file{sccs2rcs}
   5425 which converts @sc{sccs} files to @sc{rcs} files.
   5426 Note: you must run it on a machine which has both
   5427 @sc{sccs} and @sc{rcs} installed, and like everything
   5428 else in contrib it is unsupported (your mileage may
   5429 vary).
   5430 
   5431 @c <en>@cindex PVCS, importing files from
   5432 @cindex PVCS, importing files from
   5433 @c <en>@item From PVCS
   5434 @item From PVCS
   5435 @c <en>There is a script in the @file{contrib} directory of
   5436 @c <en>the @sc{cvs} source distribution called @file{pvcs_to_rcs}
   5437 @c <en>which converts @sc{pvcs} archives to @sc{rcs} files.
   5438 @c <en>You must run it on a machine which has both
   5439 @c <en>@sc{pvcs} and @sc{rcs} installed, and like everything
   5440 @c <en>else in contrib it is unsupported (your mileage may
   5441 @c <en>vary).  See the comments in the script for details.
   5442 There is a script in the @file{contrib} directory of
   5443 the @sc{cvs} source distribution called @file{pvcs_to_rcs}
   5444 which converts @sc{pvcs} archives to @sc{rcs} files.
   5445 You must run it on a machine which has both
   5446 @sc{pvcs} and @sc{rcs} installed, and like everything
   5447 else in contrib it is unsupported (your mileage may
   5448 vary).  See the comments in the script for details.
   5449 @end table
   5450 @c CMZ and/or PATCHY were systems that were used in the
   5451 @c high energy physics community (especially for
   5452 @c CERNLIB).  CERN has replaced them with CVS, but the
   5453 @c CAR format seems to live on as a way to submit
   5454 @c changes.  There is a program car2cvs which converts
   5455 @c but I'm not sure where one gets a copy.
   5456 @c Not sure it is worth mentioning here, since it would
   5457 @c appear to affect only one particular community.
   5458 @c Best page for more information is:
   5459 @c http://wwwcn1.cern.ch/asd/cvs/index.html
   5460 @c See also:
   5461 @c http://ecponion.cern.ch/ecpsa/cernlib.html
   5462 
   5463 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   5464 @c <en>@node From scratch
   5465 @node Do zero
   5466 @c <en>@subsection Creating a directory tree from scratch
   5467 @subsection Criando uma rvore de diretrios do zero
   5468 
   5469 @c Also/instead should be documenting
   5470 @c $ cvs co -l .
   5471 @c $ mkdir tc
   5472 @c $ cvs add tc
   5473 @c $ cd tc
   5474 @c $ mkdir man
   5475 @c $ cvs add man
   5476 @c etc.
   5477 @c Using import to create the directories only is
   5478 @c probably a somewhat confusing concept.
   5479 @c <en>For a new project, the easiest thing to do is probably
   5480 @c <en>to create an empty directory structure, like this:
   5481 For a new project, the easiest thing to do is probably
   5482 to create an empty directory structure, like this:
   5483 
   5484 @example
   5485 $ mkdir tc
   5486 $ mkdir tc/man
   5487 $ mkdir tc/testing
   5488 @end example
   5489 
   5490 @c <en>After that, you use the @code{import} command to create
   5491 @c <en>the corresponding (empty) directory structure inside
   5492 @c <en>the repository:
   5493 After that, you use the @code{import} command to create
   5494 the corresponding (empty) directory structure inside
   5495 the repository:
   5496 
   5497 @example
   5498 $ cd tc
   5499 @c <en>$ cvs import -m "Created directory structure" yoyodyne/@var{dir} yoyo start
   5500 $ cvs import -m "Created directory structure" yoyodyne/@var{dir} yoyo start
   5501 @end example
   5502 
   5503 @c <en>Then, use @code{add} to add files (and new directories)
   5504 @c <en>as they appear.
   5505 Then, use @code{add} to add files (and new directories)
   5506 as they appear.
   5507 
   5508 @c <en>Check that the permissions @sc{cvs} sets on the
   5509 @c <en>directories inside @code{$CVSROOT} are reasonable.
   5510 Check that the permissions @sc{cvs} sets on the
   5511 directories inside @code{$CVSROOT} are reasonable.
   5512 
   5513 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   5514 @c <en>@node Defining the module
   5515 @node Definindo o mdulo
   5516 @c <en>@section Defining the module
   5517 @section Definindo o mdulo
   5518 @c <en>@cindex Defining a module
   5519 @cindex Defining a module
   5520 @c <en>@cindex Editing the modules file
   5521 @cindex Editing the modules file
   5522 @c <en>@cindex Module, defining
   5523 @cindex Module, defining
   5524 @c <en>@cindex Modules file, changing
   5525 @cindex Modules file, changing
   5526 
   5527 @c <en>The next step is to define the module in the
   5528 @c <en>@file{modules} file.  This is not strictly necessary,
   5529 @c <en>but modules can be convenient in grouping together
   5530 @c <en>related files and directories.
   5531 The next step is to define the module in the
   5532 @file{modules} file.  This is not strictly necessary,
   5533 but modules can be convenient in grouping together
   5534 related files and directories.
   5535 
   5536 @c <en>In simple cases these steps are sufficient to define a module.
   5537 In simple cases these steps are sufficient to define a module.
   5538 
   5539 @enumerate
   5540 @item
   5541 @c <en>Get a working copy of the modules file.
   5542 Get a working copy of the modules file.
   5543 
   5544 @example
   5545 $ cvs checkout CVSROOT/modules
   5546 $ cd CVSROOT
   5547 @end example
   5548 
   5549 @item
   5550 @c <en>Edit the file and insert a line that defines the module.  @xref{Intro
   5551 @c <en>administrative files}, for an introduction.  @xref{modules}, for a full
   5552 @c <en>description of the modules file.  You can use the
   5553 @c <en>following line to define the module @samp{tc}:
   5554 Edit the file and insert a line that defines the module.
   5555 @xref{Intro aos arquivos administrativos}, for an
   5556 introduction.  @xref{modules}, for a full description
   5557 of the modules file.  You can use the following line to
   5558 define the module @samp{tc}:
   5559 
   5560 @example
   5561 tc   yoyodyne/tc
   5562 @end example
   5563 
   5564 @item
   5565 @c <en>Commit your changes to the modules file.
   5566 Commit your changes to the modules file.
   5567 
   5568 @example
   5569 @c <en>$ cvs commit -m "Added the tc module." modules
   5570 $ cvs commit -m "Added the tc module." modules
   5571 @end example
   5572 
   5573 @item
   5574 @c <en>Release the modules module.
   5575 Release the modules module.
   5576 
   5577 @example
   5578 $ cd ..
   5579 $ cvs release -d CVSROOT
   5580 @end example
   5581 @end enumerate
   5582 
   5583 @c ---------------------------------------------------------------------
   5584 @c <en>@node Revisions
   5585 @node Revises
   5586 @c <en>@chapter Revisions
   5587 @chapter Revises
   5588 
   5589 @comment <en>For many uses of @sc{cvs}, one doesn't need to worry
   5590 @comment <en>too much about revision numbers; @sc{cvs} assigns
   5591 @comment <en>numbers such as @code{1.1}, @code{1.2}, and so on, and
   5592 @comment <en>that is all one needs to know.  However, some people
   5593 @comment <en>prefer to have more knowledge and control concerning
   5594 @comment <en>how @sc{cvs} assigns revision numbers.
   5595 Para muitos usos do @sc{cvs}, no  necessrio se
   5596 preocupar com o nmero de revises; o @sc{cvs} atribui
   5597 nmeros tais como @code{1.1}, @code{1.2} e por a vai,
   5598 e isto  tudo que se precisa saber.  Entretanto,
   5599 Algumas pessoas preferem ter mais conhecimento e
   5600 controle a respeito de como o @sc{cvs} atribui nmeros
   5601 de reviso.
   5602 
   5603 @c <en>If one wants to keep track of a set of revisions
   5604 @c <en>involving more than one file, such as which revisions
   5605 @c <en>went into a particular release, one uses a @dfn{tag},
   5606 @c <en>which is a symbolic revision which can be assigned to a
   5607 @c <en>numeric revision in each file.
   5608 Se voc quiser marcar um conjunto de revises
   5609 envolvendo mais de um arquivo, tais como as revises
   5610 que integram uma release, pode usar uma @dfn{etiqueta} (tag),
   5611 que  uma reviso simblica que pode ser associada a uma
   5612 reviso numrica em cada um dos arquivos.
   5613 
   5614 @menu
   5615 @c <en>* Revision numbers::            The meaning of a revision number
   5616 * Nmeros de reviso::            O significado dos nmeros de reviso
   5617 @c <en>* Versions revisions releases::  Terminology used in this manual
   5618 * Verses revises releases::  Terminologia usada neste manual
   5619 @c <en>* Assigning revisions::         Assigning revisions
   5620 * Atribuindo revises::         Atribuindo revises
   5621 @c <en>* Tags::                        Tags--Symbolic revisions
   5622 * Etiquetas::                        Etiquetas (Tags)--Revises Simblicas
   5623 @c <en>* Tagging the working directory::  The cvs tag command
   5624 * Etiquetando o diretrio de trabalho::  O comando cvs tag
   5625 @c <en>* Tagging by date/tag::         The cvs rtag command
   5626 * Etiquetando por data/etiqueta::         O comando cvs rtag
   5627 @c <en>* Modifying tags::              Adding, renaming, and deleting tags
   5628 * Modificando etiquetas::              Adicionando, renomeando e apagando etiquetas
   5629 @c <en>* Tagging add/remove::          Tags with adding and removing files
   5630 * Etiquetando adicionados/removidos::  Etiquetas com arquivos adicionados e removidos
   5631 @c <en>* Sticky tags::                 Certain tags are persistent
   5632 * Etiquetas adesivas::          Certas etiquetas so persistentes
   5633 @end menu
   5634 
   5635 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   5636 @c <en>@node Revision numbers
   5637 @node Nmeros de reviso
   5638 @c <en>@section Revision numbers
   5639 @section Nmeros de reviso
   5640 @c <en>@cindex Revision numbers
   5641 @cindex Nmeros de reviso
   5642 @c <en>@cindex Revision tree
   5643 @cindex rvore de reviso
   5644 @c <en>@cindex Linear development
   5645 @cindex Desenvolvimento linear
   5646 @c <en>@cindex Number, revision-
   5647 @cindex Reviso, nmero de
   5648 @c <en>@cindex Decimal revision number
   5649 @cindex Nmero de reviso decimal
   5650 @c <en>@cindex Branch number
   5651 @cindex Nmero de ramo
   5652 @c <en>@cindex Number, branch
   5653 @cindex Ramo, nmero de
   5654 
   5655 @c <en>Each version of a file has a unique @dfn{revision
   5656 @c <en>number}.  Revision numbers look like @samp{1.1},
   5657 @c <en>@samp{1.2}, @samp{1.3.2.2} or even @samp{1.3.2.2.4.5}.
   5658 @c <en>A revision number always has an even number of
   5659 @c <en>period-separated decimal integers.  By default revision
   5660 @c <en>1.1 is the first revision of a file.  Each successive
   5661 @c <en>revision is given a new number by increasing the
   5662 @c <en>rightmost number by one.  The following figure displays
   5663 @c <en>a few revisions, with newer revisions to the right.
   5664 Cada verso de um arquivo tem um @dfn{nmero de
   5665 reviso} nico.  Nmeros de reviso so coisas do tipo
   5666 @samp{1.1}, @samp{1.2}, @samp{1.3.2.2} ou at mesmo
   5667 @samp{1.3.2.2.4.5}.  Um nmero de reviso sempre tem uma
   5668 quantidade par de nmeros inteiros na base dez
   5669 separados por ponto.  Por padro, a reviso 1.1  a
   5670 primeira reviso de um arquivo.  Cada reviso sucessiva
   5671 ganha um novo nmero somando um ao nmero mais a
   5672 direita.  A figura a seguir mostra mostra algumas
   5673 revises, com a reviso mais nova mais  direita.
   5674 
   5675 @example
   5676        +-----+    +-----+    +-----+    +-----+    +-----+
   5677        ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
   5678        +-----+    +-----+    +-----+    +-----+    +-----+
   5679 @end example
   5680 
   5681 @c <en>It is also possible to end up with numbers containing
   5682 @c <en>more than one period, for example @samp{1.3.2.2}.  Such
   5683 @c <en>revisions represent revisions on branches
   5684 @c <en>(@pxref{Branching and merging}); such revision numbers
   5685 @c <en>are explained in detail in @ref{Branches and
   5686 @c <en>revisions}.
   5687 Tambm  possvel ter nmeros com mais de um ponto, por
   5688 exemplo @samp{1.3.2.2}.  Tais revises representam
   5689 revises em ramos (@pxref{Ramificando e mesclando});
   5690 estes nmeros de reviso so explicados em detalhes em
   5691 @ref{Ramos e revises}.
   5692 
   5693 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   5694 @c <en>@node Versions revisions releases
   5695 @node Verses revises releases
   5696 @c <en>@section Versions, revisions and releases
   5697 @section Verses, revises e releases
   5698 @c <en>@cindex Revisions, versions and releases
   5699 @cindex Revises, verses e releases
   5700 @c <en>@cindex Versions, revisions and releases
   5701 @cindex Verses, revises e releases
   5702 @c <en>@cindex Releases, revisions and versions
   5703 @cindex Releases, revises e verses
   5704 
   5705 @c <en>A file can have several versions, as described above.
   5706 @c <en>Likewise, a software product can have several versions.
   5707 @c <en>A software product is often given a version number such
   5708 @c <en>as @samp{4.1.1}.
   5709 Um arquivo pode ter vrias verses, como descrito
   5710 acima.  Da mesma forma, um produto de software tambm
   5711 pode ter vrias verses.  Frequentemente um produto de
   5712 software recebe um nmero de verso, tal como @samp{4.1.1}.
   5713 
   5714 @c <en>Versions in the first sense are called @dfn{revisions}
   5715 @c <en>in this document, and versions in the second sense are
   5716 @c <en>called @dfn{releases}.  To avoid confusion, the word
   5717 @c <en>@dfn{version} is almost never used in this document.
   5718 Verses, neste documento so chamadas, principalmente,
   5719 de @dfn{revises} , e tambm de @dfn{releases}.  Para evitar
   5720 confuso, o termo @dfn{verso} praticamente no  usado
   5721 neste documento.
   5722 
   5723 @c <en>@node Assigning revisions
   5724 @node Atribuindo revises
   5725 @c <en>@section Assigning revisions
   5726 @section Atribuindo revises
   5727 
   5728 @c We avoid the "major revision" terminology.  It seems
   5729 @c like jargon.  Hopefully "first number" is clear enough.
   5730 @c
   5731 @c Well, in the context of software release numbers,
   5732 @c "major" and "minor" release or version numbers are
   5733 @c documented in at least the GNU Coding Standards, but I'm
   5734 @c still not sure I find that a valid reason to apply the
   5735 @c terminology to RCS revision numbers.  "First", "Second",
   5736 @c "subsequent", and so on is almost surely clearer,
   5737 @c especially to a novice reader. -DRP
   5738 @c <en>By default, @sc{cvs} will assign numeric revisions by
   5739 @c <en>leaving the first number the same and incrementing the
   5740 @c <en>second number.  For example, @code{1.1}, @code{1.2},
   5741 @c <en>@code{1.3}, etc.
   5742 Por padro, @sc{cvs} vai atribuir revises numricas
   5743 mantendo o primeiro nmero e aumentando o segundo.  Por
   5744 exemplo, @code{1.1}, @code{1.2}, @code{1.3}, etc.
   5745 
   5746 @c <en>When adding a new file, the second number will always
   5747 @c <en>be one and the first number will equal the highest
   5748 @c <en>first number of any file in that directory.  For
   5749 @c <en>example, the current directory contains files whose
   5750 @c <en>highest numbered revisions are @code{1.7}, @code{3.1},
   5751 @c <en>and @code{4.12}, then an added file will be given the
   5752 @c <en>numeric revision @code{4.1}.
   5753 Quando um novo arquivo  adicionado, o segundo nmero
   5754 vai ser sempre o um e o primeiro nmero vai ser igual
   5755 ao maior primeiro nmero de qualquer arquivo no
   5756 diretrio.  Por exemplo, se o diretrio atual contiver
   5757 arquivos os quais o maior nmero de reviso seram
   5758 @code{1.7}, @code{3.1} e @code{4.12}, ento um arquivo
   5759 adicionado vai receber a reviso numrica @code{4.1}.
   5760 
   5761 @c This is sort of redundant with something we said a
   5762 @c while ago.  Somewhere we need a better way of
   5763 @c introducing how the first number can be anything
   5764 @c except "1", perhaps.  Also I don't think this
   5765 @c presentation is clear on why we are discussing releases
   5766 @c and first numbers of numeric revisions in the same
   5767 @c breath.
   5768 @c <en>Normally there is no reason to care
   5769 @c <en>about the revision numbers---it is easier to treat them
   5770 @c <en>as internal numbers that @sc{cvs} maintains, and tags
   5771 @c <en>provide a better way to distinguish between things like
   5772 @c <en>release 1 versus release 2 of your product
   5773 @c <en>(@pxref{Tags}).  However, if you want to set the
   5774 @c <en>numeric revisions, the @samp{-r} option to @code{cvs
   5775 @c <en>commit} can do that.  The @samp{-r} option implies the
   5776 @c <en>@samp{-f} option, in the sense that it causes the
   5777 @c <en>files to be committed even if they are not modified.
   5778 Normalmente no h razo para se preocupar com nmeros
   5779 de reviso--- melhor trat-los como numerao interna
   5780 que o @sc{cvs} mantm, e etiquetas (tags) fornecem uma
   5781 forma melhor de distinguir entre coisas tais como
   5782 release 1 e release 2 de seu produto
   5783 (@pxref{Etiquetas}).  Entretando, se voc quiser
   5784 ajustar as revises numricas, a opo @samp{-r} do
   5785 @code{cvs commit} pode fazer isto.  A opo @samp{-r}
   5786 implica na opo @samp{-f}, no sentido de que ela faz
   5787 com que os arquivos sejam submetidos mesmo caso eles
   5788 no estejam modificados.
   5789 
   5790 @c <en>For example, to bring all your files up to
   5791 @c <en>revision 3.0 (including those that haven't changed),
   5792 @c <en>you might invoke:
   5793 Por exemplo, para subir todos os arquivos para a
   5794 reviso 3.0 (inclusive os que no sofreram mudanas),
   5795 voc deve invocar:
   5796 
   5797 @example
   5798 $ cvs commit -r 3.0
   5799 @end example
   5800 
   5801 @c <en>Note that the number you specify with @samp{-r} must be
   5802 @c <en>larger than any existing revision number.  That is, if
   5803 @c <en>revision 3.0 exists, you cannot @samp{cvs commit
   5804 @c <en>-r 1.3}.  If you want to maintain several releases in
   5805 @c <en>parallel, you need to use a branch (@pxref{Branching and merging}).
   5806 Observe que o nmero que voc especificar com a opo
   5807 @samp{-r} deve ser maior que qualquer nmero de reviso
   5808 existente.  Ou seja, se a reviso 3.0 existe, voc no
   5809 pode fazer @samp{cvs commit -r 1.3}.  Se voc quiser
   5810 manter vrias releases em paralelo, voc deve usar um ramo
   5811 (@pxref{Ramificando e mesclando}).
   5812 
   5813 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   5814 @c <en>@node Tags
   5815 @node Etiquetas
   5816 @c <en>@section Tags--Symbolic revisions
   5817 @section Etiquetas (Tags)--Revises simblicas
   5818 @c <en>@cindex Tags
   5819 @cindex Etiquetas
   5820 
   5821 @c <en>The revision numbers live a life of their own.  They
   5822 @c <en>need not have anything at all to do with the release
   5823 @c <en>numbers of your software product.  Depending
   5824 @c <en>on how you use @sc{cvs} the revision numbers might change several times
   5825 @c <en>between two releases.  As an example, some of the
   5826 @c <en>source files that make up @sc{rcs} 5.6 have the following
   5827 @c <en>revision numbers:
   5828 Os nmeros de reviso tem uma vida a parte.  Eles no
   5829 precisam ter nada a ver com os nmeros de release de
   5830 seu produto de software.  Dependendo de como voc usa o
   5831 @sc{cvs}, os nmeros de reviso podem mudar vrias
   5832 vezes entre duas releases.  Como um exemplo, alguns dos
   5833 arquivos fonte do @sc{rcs} 5.6 tinham os seguintes
   5834 nmeros de reviso:
   5835 @c <en>@cindex RCS revision numbers
   5836 @cindex nmeros de reviso do RCS
   5837 
   5838 @example
   5839 ci.c            5.21
   5840 co.c            5.9
   5841 ident.c         5.3
   5842 rcs.c           5.12
   5843 rcsbase.h       5.11
   5844 rcsdiff.c       5.10
   5845 rcsedit.c       5.11
   5846 rcsfcmp.c       5.9
   5847 rcsgen.c        5.10
   5848 rcslex.c        5.11
   5849 rcsmap.c        5.2
   5850 rcsutil.c       5.10
   5851 @end example
   5852 
   5853 @c <en>@cindex tag (subcommand), introduction
   5854 @cindex tag (subcomando), introduo
   5855 @c <en>@cindex Tags, symbolic name
   5856 @cindex Etiquetas, nome simblico
   5857 @c <en>@cindex Symbolic name (tag)
   5858 @cindex Nome simblico (etiqueta)
   5859 @c <en>@cindex Name, symbolic (tag)
   5860 @cindex Simblico, nome (etiqueta)
   5861 @c <en>@cindex HEAD, as reserved tag name
   5862 @cindex HEAD, nome de etiqueta reservado
   5863 @c <en>@cindex BASE, as reserved tag name
   5864 @cindex BASE, nome de etiqueta reservado
   5865 @c <en>You can use the @code{tag} command to give a symbolic name to a
   5866 @c <en>certain revision of a file.  You can use the @samp{-v} flag to the
   5867 @c <en>@code{status} command to see all tags that a file has, and
   5868 @c <en>which revision numbers they represent.  Tag names must
   5869 @c <en>start with an uppercase or lowercase letter and can
   5870 @c <en>contain uppercase and lowercase letters, digits,
   5871 @c <en>@samp{-}, and @samp{_}.  The two tag names @code{BASE}
   5872 @c <en>and @code{HEAD} are reserved for use by @sc{cvs}.  It
   5873 @c <en>is expected that future names which are special to
   5874 @c <en>@sc{cvs} will be specially named, for example by
   5875 @c <en>starting with @samp{.}, rather than being named analogously to
   5876 @c <en>@code{BASE} and @code{HEAD}, to avoid conflicts with
   5877 @c <en>actual tag names.
   5878 Voc pode usar o comando @code{tag} para dar um nome
   5879 simblico para uma certa reviso de um arquivo.  Voc
   5880 pode usar a opo @samp{-v} com o comando @code{status}
   5881 para ver todas as etiquetas que um arquivo possui, e
   5882 que nmeros de reviso elas representam.  Nomes de
   5883 etiqueta devem comear com letra maiscula ou minscula
   5884 e pode conter letras maisculas e minsculas, dgitos,
   5885 @samp{-} e @samp{_}.  Os dois nomes de etiqueta
   5886 @code{BASE} e @code{HEAD} so reservados para o
   5887 @sc{cvs}.   esperado que nomes futuros que sejam
   5888 especiais para o @sc{cvs} recebam nomes especiais, por
   5889 exemplo comeando com @samp{.}, sendo ento nomeados de
   5890 forma anloga a @code{BASE} e @code{HEAD}, para evitar
   5891 conflitos com os nomes de etiqueta atuais.
   5892 @c Including a character such as % or = has also been
   5893 @c suggested as the naming convention for future
   5894 @c special tag names.  Starting with . is nice because
   5895 @c that is not a legal tag name as far as RCS is concerned.
   5896 @c FIXME: CVS actually accepts quite a few characters
   5897 @c in tag names, not just the ones documented above
   5898 @c (see RCS_check_tag).  RCS
   5899 @c defines legitimate tag names by listing illegal
   5900 @c characters rather than legal ones.  CVS is said to lose its
   5901 @c mind if you try to use "/" (try making such a tag sticky
   5902 @c and using "cvs status" client/server--see remote
   5903 @c protocol format for entries line for probable cause).
   5904 @c TODO: The testsuite
   5905 @c should test for whatever are documented above as
   5906 @c officially-OK tag names, and CVS should at least reject
   5907 @c characters that won't work, like "/".
   5908 
   5909 @c <en>You'll want to choose some convention for naming tags,
   5910 @c <en>based on information such as the name of the program
   5911 @c <en>and the version number of the release.  For example,
   5912 @c <en>one might take the name of the program, immediately
   5913 @c <en>followed by the version number with @samp{.} changed to
   5914 @c <en>@samp{-}, so that @sc{cvs} 1.9 would be tagged with the name
   5915 @c <en>@code{cvs1-9}.  If you choose a consistent convention,
   5916 @c <en>then you won't constantly be guessing whether a tag is
   5917 @c <en>@code{cvs-1-9} or @code{cvs1_9} or what.  You might
   5918 @c <en>even want to consider enforcing your convention in the
   5919 @c <en>@file{taginfo} file (@pxref{taginfo}).
   5920 Voc vai querer definir algumas convenes para nomear
   5921 etiquetas, baseado em informaes tais como nome do
   5922 programa e nmero da verso da release.  Por exemplo,
   5923 algume pode pegar o nome do programa, seguindo pelo
   5924 nmero de verso com o @samp{.} trocado por @samp{-},
   5925 de forma que o @sc{cvs} 1.9 seja etiquetado com o nome
   5926 de @code{cvs1-9}.  Se voc escolhe uma conveno
   5927 consistente, voc no vai precisar ficar constantemente
   5928 adivinhando se a etiqueta  @code{cvs-1-9} ou
   5929 @code{cvs1_9} ou sei l o que.  Voc pode at mesmo
   5930 considerar reforar esta conveno no arquivo
   5931 @file{taginfo} (@pxref{taginfo}).
   5932 @c Might be nice to say more about using taginfo this
   5933 @c way, like giving an example, or pointing out any particular
   5934 @c issues which arise.
   5935 
   5936 @c <en>@cindex Adding a tag
   5937 @cindex Adicionando uma etiqueta
   5938 @c <en>@cindex Tags, example
   5939 @cindex Etiquetas, exemplo
   5940 @c <en>The following example shows how you can add a tag to a
   5941 @c <en>file.  The commands must be issued inside your working
   5942 @c <en>directory.  That is, you should issue the
   5943 @c <en>command in the directory where @file{backend.c}
   5944 @c <en>resides.
   5945 O exemplo seguinte mostra como voc pode adicionar uma
   5946 etiqueta a um arquivo.  Os comandos devem ser
   5947 executados de dentro do seu diretrio de trabalho.  Ou
   5948 seja, voc deve executar o comando no diretrio onde @file{backend.c}
   5949 fica.
   5950 
   5951 @example
   5952 $ cvs tag rel-0-4 backend.c
   5953 T backend.c
   5954 $ cvs status -v backend.c
   5955 ===================================================================
   5956 File: backend.c         Status: Up-to-date
   5957 
   5958     Version:            1.4     Tue Dec  1 14:39:01 1992
   5959     RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
   5960     Sticky Tag:         (none)
   5961     Sticky Date:        (none)
   5962     Sticky Options:     (none)
   5963 
   5964     Existing Tags:
   5965         rel-0-4                     (revision: 1.4)
   5966 
   5967 @end example
   5968 
   5969 @c <en>For a complete summary of the syntax of @code{cvs tag},
   5970 @c <en>including the various options, see @ref{Invoking CVS}.
   5971 Para um resumo completo da sintaxe de @code{cvs tag},
   5972 incluindo as vrias opes, veja em @ref{Chamando o CVS}.
   5973 
   5974 @c <en>There is seldom reason to tag a file in isolation.  A more common use is
   5975 @c <en>to tag all the files that constitute a module with the same tag at
   5976 @c <en>strategic points in the development life-cycle, such as when a release
   5977 @c <en>is made.
   5978 Existem poucas razes para etiquetar um arquivo em
   5979 separado.  Um uso mais comum  etiquetar todos os
   5980 arquivos que fazem parte de um mdulo com a mesma
   5981 etiqueta em momentos estratgicos do ciclo de vida do
   5982 desenvolvimento, como por exemplo, quando fica pronta
   5983 uma release.
   5984 
   5985 @example
   5986 $ cvs tag rel-1-0 .
   5987 cvs tag: Tagging .
   5988 T Makefile
   5989 T backend.c
   5990 T driver.c
   5991 T frontend.c
   5992 T parser.c
   5993 @end example
   5994 
   5995 @noindent
   5996 @c <en>(When you give @sc{cvs} a directory as argument, it generally applies the
   5997 @c <en>operation to all the files in that directory, and (recursively), to any
   5998 @c <en>subdirectories that it may contain.  @xref{Recursive behavior}.)
   5999 (Quando voc passa um diretrio para o @sc{cvs} como
   6000 argumento, ele geralmente realiza a operao em todos
   6001 os arquivos do diretrio e (recursivamente) a todo
   6002 subdiretrio que ele contenha.
   6003 @xref{Comportamento recursivo}.)
   6004 
   6005 @c <en>@cindex Retrieving an old revision using tags
   6006 @cindex Retrieving an old revision using tags
   6007 @c <en>@cindex Tags, retrieving old revisions
   6008 @cindex Tags, retrieving old revisions
   6009 @c <en>The @code{checkout} command has a flag, @samp{-r}, that lets you check out
   6010 @c <en>a certain revision of a module.  This flag makes it easy to
   6011 @c <en>retrieve the sources that make up release 1.0 of the module @samp{tc} at
   6012 @c <en>any time in the future:
   6013 O comando @code{checkout} tem uma opo, @samp{-r}, que
   6014 permite pegar uma certa reviso de um mdulo.  Esta
   6015 opo torna fcil recuperar as ontes que fizeram parte
   6016 da release 1.0 do mdulo @samp{tc} a qualquer momento
   6017 no futuro:
   6018 
   6019 @example
   6020 $ cvs checkout -r rel-1-0 tc
   6021 @end example
   6022 
   6023 @noindent
   6024 @c <en>This is useful, for instance, if someone claims that there is a bug in
   6025 @c <en>that release, but you cannot find the bug in the current working copy.
   6026 Isto pode ser til, por exemplo, se alguem afirma que
   6027 tem um pau naquela verso, mas voc no acha o pau na
   6028 cpia de trabalho mais recente.
   6029 
   6030 @c <en>You can also check out a module as it was at any given date.
   6031 @c <en>@xref{checkout options}.  When specifying @samp{-r} to
   6032 @c <en>any of these commands, you will need beware of sticky
   6033 @c <en>tags; see @ref{Sticky tags}.
   6034 Voc tambm pode pegar um mdulo do jeito que ele
   6035 estava em qualquer data.  @xref{checkout options}.
   6036 Quando usar @samp{-r} em qualquer destes comandos, voc
   6037 vai precisar estar atento s etiquetas adesivas; veja
   6038 em @ref{Etiquetas adesivas}.
   6039 
   6040 @c <en>When you tag more than one file with the same tag you
   6041 @c <en>can think about the tag as "a curve drawn through a
   6042 @c <en>matrix of filename vs. revision number."  Say we have 5
   6043 @c <en>files with the following revisions:
   6044 Quando voc etiqueta mais de um arquivo com a mesma
   6045 etiqueta voc pode pensar na etiqueta como "uma curva
   6046 desenhada ao longo da matriz de nomes de arquivo por
   6047 nmeros de reviso".  Digamos que temos 5 arquivos com
   6048 as seguintes revises:
   6049 
   6050 @example
   6051 @group
   6052         file1   file2   file3   file4   file5
   6053 
   6054         1.1     1.1     1.1     1.1  /--1.1*      <-*-  TAG
   6055         1.2*-   1.2     1.2    -1.2*-
   6056         1.3  \- 1.3*-   1.3   / 1.3
   6057         1.4          \  1.4  /  1.4
   6058                       \-1.5*-   1.5
   6059                         1.6
   6060 @end group
   6061 @end example
   6062 
   6063 @c <en>At some time in the past, the @code{*} versions were tagged.
   6064 @c <en>You can think of the tag as a handle attached to the curve
   6065 @c <en>drawn through the tagged revisions.  When you pull on
   6066 @c <en>the handle, you get all the tagged revisions.  Another
   6067 @c <en>way to look at it is that you "sight" through a set of
   6068 @c <en>revisions that is "flat" along the tagged revisions,
   6069 @c <en>like this:
   6070 Em algum momento no passado, as verses com @code{*}
   6071 foram etiquetadas.  Voc pode pensar na etiqueta como
   6072 uma ala presa  curva que passa pelas revises
   6073 marcadas.  Quando voc puxa a ala, vem as revises
   6074 etiquetadas.  outra maneira de perceber isto  ver
   6075 atravs de um conjunto de revises que foram alinhadas
   6076 pelas revises etiquetadas, como isto:
   6077 
   6078 @example
   6079 @group
   6080         file1   file2   file3   file4   file5
   6081 
   6082                         1.1
   6083                         1.2
   6084                 1.1     1.3                       _
   6085         1.1     1.2     1.4     1.1              /
   6086         1.2*----1.3*----1.5*----1.2*----1.1*    (--- <--- Look here
   6087         1.3             1.6     1.3              \_
   6088         1.4                     1.4
   6089                                 1.5
   6090 @end group
   6091 @end example
   6092 
   6093 @c <en>@node Tagging the working directory
   6094 @node Etiquetando o diretrio de trabalho
   6095 @c <en>@section Specifying what to tag from the working directory
   6096 @section Especificando o que etiquetar no diretrio de trabalho
   6097 
   6098 @c <en>@cindex tag (subcommand)
   6099 @cindex tag (subcomando)
   6100 @c <en>The example in the previous section demonstrates one of
   6101 @c <en>the most common ways to choose which revisions to tag.
   6102 @c <en>Namely, running the @code{cvs tag} command without
   6103 @c <en>arguments causes @sc{cvs} to select the revisions which
   6104 @c <en>are checked out in the current working directory.  For
   6105 @c <en>example, if the copy of @file{backend.c} in working
   6106 @c <en>directory was checked out from revision 1.4, then
   6107 @c <en>@sc{cvs} will tag revision 1.4.  Note that the tag is
   6108 @c <en>applied immediately to revision 1.4 in the repository;
   6109 @c <en>tagging is not like modifying a file, or other
   6110 @c <en>operations in which one first modifies the working
   6111 @c <en>directory and then runs @code{cvs commit} to transfer
   6112 @c <en>that modification to the repository.
   6113 O exemplo na seo anterior  demonstra uma das formas
   6114 mais comuns de escolher que revises etiquetar.  A
   6115 saber, rodando o comando @code{cvs tag} sem argumentos
   6116 faz com que o @sc{cvs} selecione as revises que esto
   6117 presentes no diretrio de trabalho atual.  Por exemplo,
   6118 se a cpia do arquivo @file{backend.c} no diretrio de
   6119 trabalho foi pega da reviso 1.4, ento o @sc{cvs} vai
   6120 etiquetar a reviso 1.4.  Observe que a etiqueta 
   6121 aplicada na reviso 1.4 no repositrio imediatamente;
   6122 Etiquetar no funciona como modificar arquivos ou
   6123 outras operaes nas quais primeiros voc modifica o
   6124 diretrio de trabalho e ento roda o @code{cvs commit}
   6125 para mandar as modificaes para o repositrio.
   6126 
   6127 @c <en>One potentially surprising aspect of the fact that
   6128 @c <en>@code{cvs tag} operates on the repository is that you
   6129 @c <en>are tagging the checked-in revisions, which may differ
   6130 @c <en>from locally modified files in your working directory.
   6131 @c <en>If you want to avoid doing this by mistake, specify the
   6132 @c <en>@samp{-c} option to @code{cvs tag}.  If there are any
   6133 @c <en>locally modified files, @sc{cvs} will abort with an
   6134 @c <en>error before it tags any files:
   6135 Um aspecto potencialmente confuso no fato de o comando
   6136 @code{cvs tag} operar no repositrio  que voc est
   6137 etiquetando revises devolvidas, que podem diferir de
   6138 arquivos localmente modificados no seu diretrio de
   6139 trabalho.  Se voc quer evitar fazer isto por engano,
   6140 use a opo @samp{-c} no @code{cvs tag}.  Se existe
   6141 qualquer arquivo localmente modificado, o @sc{cvs} vai
   6142 abortar com erro antes de etiquetar qualquer arquivo:
   6143 
   6144 @example
   6145 $ cvs tag -c rel-0-4
   6146 cvs tag: backend.c is locally modified
   6147 cvs [tag aborted]: correct the above errors first!
   6148 @end example
   6149 
   6150 @c <en>@node Tagging by date/tag
   6151 @node Etiquetando por data/etiqueta
   6152 @c <en>@section Specifying what to tag by date or revision
   6153 @section Especificando o que etiquetar por data ou reviso
   6154 @c <en>@cindex rtag (subcommand)
   6155 @cindex rtag (subcomando)
   6156 
   6157 @c <en>The @code{cvs rtag} command tags the repository as of a
   6158 @c <en>certain date or time (or can be used to tag the latest
   6159 @c <en>revision).  @code{rtag} works directly on the
   6160 @c <en>repository contents (it requires no prior checkout and
   6161 @c <en>does not look for a working directory).
   6162 O comando @code{cvs rtag} etiqueta o repositrio em uma
   6163 certa data ou hora (ou pode ser usado para etiquetar a
   6164 ltima reviso).  @code{rtag} trabalha diretamente no
   6165 repositrio (no requer um checkout e no procura por
   6166 um diretrio de trabalho).
   6167 
   6168 @c <en>The following options specify which date or revision to
   6169 @c <en>tag.  See @ref{Common options}, for a complete
   6170 @c <en>description of them.
   6171 As seguintes opes especificam que data ou reviso
   6172 etiquetar.  Veja em @ref{Opes comuns}, para uma
   6173 descrio completa delas.
   6174 
   6175 @table @code
   6176 @c <en>@item -D @var{data}
   6177 @item -D @var{data}
   6178 @c <en>Tag the most recent revision no later than @var{date}.
   6179 Etiqueta a reviso mais recente que seja anterior a @var{data}.
   6180 
   6181 @c <en>@item -f
   6182 @item -f
   6183 @c <en>Only useful with the @samp{-D @var{date}} or @samp{-r @var{tag}}
   6184 @c <en>flags.  If no matching revision is found, use the most
   6185 @c <en>recent revision (instead of ignoring the file).
   6186 til apenas em conjunto com @samp{-D @var{data}} ou
   6187 @samp{-r @var{etiqueta}}.  Se no encontrar uma revis
   6188 casando com o padro, usar a reviso mais recente (ao
   6189 invs de ignorar o arquivo).
   6190 
   6191 @c <en>@item -r @var{tag}
   6192 @item -r @var{etiqueta}
   6193 @c <en>Only tag those files that contain existing tag @var{tag}.
   6194 Etiqueta apenas os arquivos que contm a etiqueta
   6195 @var{etiqueta} existente.
   6196 @end table
   6197 
   6198 @c <en>The @code{cvs tag} command also allows one to specify
   6199 @c <en>files by revision or date, using the same @samp{-r},
   6200 @c <en>@samp{-D}, and @samp{-f} options.  However, this
   6201 @c <en>feature is probably not what you want.  The reason is
   6202 @c <en>that @code{cvs tag} chooses which files to tag based on
   6203 @c <en>the files that exist in the working directory, rather
   6204 @c <en>than the files which existed as of the given tag/date.
   6205 @c <en>Therefore, you are generally better off using @code{cvs
   6206 @c <en>rtag}.  The exceptions might be cases like:
   6207 O comando @code{cvs tag} tambm permite que voc
   6208 especifique arquivos por reviso ou data, usando as
   6209 mesmas opes @samp{-r}, @samp{-D} e @samp{-f}.
   6210 Entretanto, este caracterstica no  provavelmente o
   6211 que voc quer.  A razo  que o @code{cvs tag} escolhe
   6212 que arquivos etiquetar baseado nos arquivos que existem
   6213 no diretrio de trabalho, ao invs de arquivos que
   6214 existem na dada etiqueta/data.  Portanto, voc 
   6215 geralmente ???better off??? usar @code{cvs rtag}.  As
   6216 excees devem ser casos como:
   6217 
   6218 @example
   6219 cvs tag -r 1.4 stable backend.c
   6220 @end example
   6221 
   6222 @c <en>@node Modifying tags
   6223 @node Modificando etiquetas
   6224 @c <en>@section Deleting, moving, and renaming tags
   6225 @section Apagando, movendo e renomeando etiquetas
   6226 
   6227 @c Also see:
   6228 @c  "How do I move or rename a magic branch tag?"
   6229 @c in the FAQ (I think the issues it talks about still
   6230 @c apply, but this could use some sanity.sh work).
   6231 
   6232 @c <en>Normally one does not modify tags.  They exist in order
   6233 @c <en>to record the history of the repository and so deleting
   6234 @c <en>them or changing their meaning would, generally, not be
   6235 @c <en>what you want.
   6236 Normalmente no se modificam etiquetas.  Elas existem
   6237 para registrar o histrico do repositrio e, portanto,
   6238 apag-las ou alterar o significado delas no , em
   6239 geral, o que voc quer.
   6240 
   6241 @c <en>However, there might be cases in which one uses a tag
   6242 @c <en>temporarily or accidentally puts one in the wrong
   6243 @c <en>place.  Therefore, one might delete, move, or rename a
   6244 @c <en>tag.
   6245 Entretanto, podem haver casos nos quais alguem usa a
   6246 etiqueta temporariamente ou bota no lugar errado por
   6247 acidente.  Logo,  possvel apagar, mover, ou renomear
   6248 uma etiqueta.
   6249 
   6250 @noindent
   6251 @c <en>@strong{WARNING: the commands in this section are
   6252 @c <en>dangerous; they permanently discard historical
   6253 @c <en>information and it can be difficult or impossible to
   6254 @c <en>recover from errors.  If you are a @sc{cvs}
   6255 @c <en>administrator, you may consider restricting these
   6256 @c <en>commands with the @file{taginfo} file (@pxref{taginfo}).}
   6257 @strong{ATENO: os comandos nesta seo so perigosos;
   6258 eles apagam permanentemente informaes histricas e
   6259 pode ser difcil ou impossvel recuperar tais
   6260 informaes em caso de erro.  Se voc  um
   6261 administrador do @sc{cvs}, voc deve considerar
   6262 restringir estes comandos com o arquivo @file{taginfo}
   6263 (@pxref{taginfo}).}
   6264 
   6265 @c <en>@cindex Deleting tags
   6266 @cindex Apagando etiquetas
   6267 @c <en>@cindex Deleting branch tags
   6268 @cindex Apagando etiquetas de ramos
   6269 @c <en>@cindex Removing tags
   6270 @cindex Removendo etiquetas
   6271 @c <en>@cindex Removing branch tags
   6272 @cindex Removendo etiquetas de ramos
   6273 @c <en>@cindex Tags, deleting
   6274 @cindex Etiquetas, apagando
   6275 @c <en>@cindex Branch tags, deleting
   6276 @cindex Etiquetas de ramos, apagando
   6277 @c <en>To delete a tag, specify the @samp{-d} option to either
   6278 @c <en>@code{cvs tag} or @code{cvs rtag}.  For example:
   6279 Para apagar uma etiqueta, especifique a opo @samp{-d}
   6280 tanto para @code{cvs tag} quanto para @code{cvs rtag}.  Por exemplo:
   6281 
   6282 @example
   6283 cvs rtag -d rel-0-4 tc
   6284 @end example
   6285 
   6286 @noindent
   6287 @c <en>deletes the non-branch tag @code{rel-0-4} from the module @code{tc}.
   6288 @c <en>In the event that branch tags are encountered within the repository
   6289 @c <en>with the given name, a warning message will be issued and the branch 
   6290 @c <en>tag will not be deleted.  If you are absolutely certain you know what
   6291 @c <en>you are doing, the @code{-B} option may be specified to allow deletion
   6292 @c <en>of branch tags.  In that case, any non-branch tags encountered will
   6293 @c <en>trigger warnings and will not be deleted.
   6294 apaga a etiqueta ???non-branch??? @code{rel-0-4} do
   6295 mdulo @code{tc}.  No caso de etiquetas de ramos serem
   6296 encontradas no repositrio com o nome dado, uma
   6297 mensagem de aviso vai ser mostrada e a etiqueta de ramo
   6298 no vai ser apagada.  Se voc est absolutamente certo
   6299 de que sabe o que est fazendo, a opo @code{-B} pode
   6300 ser especificada para permitir que se apague as
   6301 etiquetas de ramos.  Neste caso, qualquer etiqueta
   6302 ???non-branch??? encontrada vai disparar avisos e no
   6303 vai ser apagada.
   6304 
   6305 @noindent
   6306 @c <en>@strong{WARNING: Moving branch tags is very dangerous!  If you think
   6307 @c <en>you need the @code{-B} option, think again and ask your @sc{cvs}
   6308 @c <en>administrator about it (if that isn't you).  There is almost certainly
   6309 @c <en>another way to accomplish what you want to accomplish.}
   6310 @strong{ATENO: Mover etiquetas de ramos  muito
   6311 perigoso!  Se voc pensa que precisa da opo
   6312 @code{-B}, pense duas vezes e pergunte a seu
   6313 administrador do @sc{cvs} sobre ela (se no for voc).
   6314  quase certo que existe outra forma de alcanar o seu objetivo.}
   6315 
   6316 @c <en>@cindex Moving tags
   6317 @cindex Movendo etiquetas
   6318 @c <en>@cindex Moving branch tags
   6319 @cindex Movendo etiquetas de ramos
   6320 @c <en>@cindex Tags, moving
   6321 @cindex Etiquetas, movendo
   6322 @c <en>@cindex Branch tags, moving
   6323 @cindex Etiquetas de ramos, movendo
   6324 @c <en>When we say @dfn{move} a tag, we mean to make the same
   6325 @c <en>name point to different revisions.  For example, the
   6326 @c <en>@code{stable} tag may currently point to revision 1.4
   6327 @c <en>of @file{backend.c} and perhaps we want to make it
   6328 @c <en>point to revision 1.6.  To move a non-branch tag, specify the
   6329 @c <en>@samp{-F} option to either @code{cvs tag} or @code{cvs
   6330 @c <en>rtag}.  For example, the task just mentioned might be
   6331 @c <en>accomplished as:
   6332 Quando falamos em @dfn{mover} uma etiqueta, queremos
   6333 dizer fazer com que o mesmo nome aponte para diferentes
   6334 revises.  Por exemplo, a etiqueta @code{stable} pode
   6335 atualmente apontar para a reviso 1.4 do arquivo
   6336 @file{backend.c} e talvez ns queiramos faz-la apontar
   6337 para a reviso 1.6.  Para mover uma etiqueta
   6338 ???non-branch???, Use a opo @samp{-F} tanto com o
   6339 @code{cvs tag} oquanto com o @code{cvs rtag}.  Por
   6340 exemplo, esta mudana pode ser alcanada com:
   6341 
   6342 @example
   6343 cvs tag -r 1.6 -F stable backend.c
   6344 @end example
   6345 
   6346 @noindent
   6347 @c <en>If any branch tags are encountered in the repository 
   6348 @c <en>with the given name, a warning is issued and the branch
   6349 @c <en>tag is not disturbed.  If you are absolutely certain you
   6350 @c <en>wish to move the branch tag, the @code{-B} option may be specified.
   6351 @c <en>In that case, non-branch tags encountered with the given
   6352 @c <en>name are ignored with a warning message.
   6353 Se alguma etiqueta de ramo for encontrada no
   6354 repositrio com o nome dado, um aviso  mostrado e a
   6355 etiqueta de ramo no  alterada.  Se voc est
   6356 absolutamente certo de que voc quer mover a etiquta de
   6357 ramo, a opo @code{-B} pode ser especificada.  Neste
   6358 caso, etiquetas ???non-branch??? encontradas com o nome
   6359 dado sero ignoradas com uma mensagem de aviso.
   6360 
   6361 @noindent
   6362 @c <en>@strong{WARNING: Moving branch tags is very dangerous!  If you think you
   6363 @c <en>need the @code{-B} option, think again and ask your @sc{cvs}
   6364 @c <en>administrator about it (if that isn't you).  There is almost certainly
   6365 @c <en>another way to accomplish what you want to accomplish.}
   6366 @strong{ATENO: Mover etiquetas de ramos  muito
   6367 perigoso!  Se voc pensa que precisa da opo
   6368 @code{-B}, pense duas vezes e pergunte a seu
   6369 administrador do @sc{cvs} sobre ela (se no for voc).
   6370  quase certo que existe outra forma de alcanar o seu objetivo.}
   6371 
   6372 @c <en>@cindex Renaming tags
   6373 @cindex Renomeando etiquetas
   6374 @c <en>@cindex Tags, renaming
   6375 @cindex Etiquetas, renomeando
   6376 @c <en>When we say @dfn{rename} a tag, we mean to make a
   6377 @c <en>different name point to the same revisions as the old
   6378 @c <en>tag.  For example, one may have misspelled the tag name
   6379 @c <en>and want to correct it (hopefully before others are
   6380 @c <en>relying on the old spelling).  To rename a tag, first
   6381 @c <en>create a new tag using the @samp{-r} option to
   6382 @c <en>@code{cvs rtag}, and then delete the old name.  (Caution:
   6383 @c <en>this method will not work with branch tags.) 
   6384 @c <en>This leaves the new tag on exactly the 
   6385 @c <en>same files as the old tag.  For example:
   6386 Quando falamos em @dfn{renomear} uma etiqueta, queremos
   6387 dizer fazer com que um nome diferente aponte para para
   6388 as mesmas revises que a etiqueta antiga.  Por exemplo,
   6389 alguem pode ter digitado errado o nome de uma etiqueta
   6390 e quer corrigir isto (de preferncia antes que outros
   6391 caiam no mesmo erro).  Para renomear uma etiqueta,
   6392 primeiro crie uma nova etiqueta usando a opo
   6393 @samp{-r} para o @code{cvs rtag}, e ento apague o nome
   6394 antigo.  (Cuidado: este mtodo no vai funcionar com
   6395 etiquetas de ramos).  Isto deixa a nova etiqueta
   6396 exatamente nos mesmos arquivos que a etiqueta antiga.
   6397 Por exemplo:
   6398 
   6399 @example
   6400 cvs rtag -r old-name-0-4 rel-0-4 tc
   6401 cvs rtag -d old-name-0-4 tc
   6402 @end example
   6403 
   6404 @c <en>@node Tagging add/remove
   6405 @node Etiquetando adicionados/removidos
   6406 @c <en>@section Tagging and adding and removing files
   6407 @section Etiquetando e adicionando e removendo arquivos
   6408 
   6409 @c <en>The subject of exactly how tagging interacts with
   6410 @c <en>adding and removing files is somewhat obscure; for the
   6411 @c <en>most part @sc{cvs} will keep track of whether files
   6412 @c <en>exist or not without too much fussing.  By default,
   6413 @c <en>tags are applied to only files which have a revision
   6414 @c <en>corresponding to what is being tagged.  Files which did
   6415 @c <en>not exist yet, or which were already removed, simply
   6416 @c <en>omit the tag, and @sc{cvs} knows to treat the absence
   6417 @c <en>of a tag as meaning that the file didn't exist as of
   6418 @c <en>that tag.
   6419 O tema a respeito de como exatamente etiquetas
   6420 interagem com arquivos adicionados e removidos  de
   6421 certa forma obscuro; Normalmente, o @sc{cvs} vai
   6422 verificar quais arquivos existem ou no sem muita
   6423 confuso.  Por padro, etiquetas so aplicadas apenas a
   6424 arquivos que tenham uma reviso correspondendo ao que
   6425 est sendo etiquetado.  Arquivos que ainda no existem,
   6426 ou que j foram removidos, simplesmente omitem a
   6427 etiqueta, e o @sc{cvs} trata a ausncia de uma
   6428 etiqueta como significando que o arquivo no existia na
   6429 criao da etiqueta.
   6430 
   6431 @c <en>However, this can lose a small amount of information.
   6432 @c <en>For example, suppose a file was added and then removed.
   6433 @c <en>Then, if the tag is missing for that file, there is no
   6434 @c <en>way to know whether the tag refers to the time before
   6435 @c <en>the file was added, or the time after it was removed.
   6436 @c <en>If you specify the @samp{-r} option to @code{cvs rtag},
   6437 @c <en>then @sc{cvs} tags the files which have been removed,
   6438 @c <en>and thereby avoids this problem.  For example, one
   6439 @c <en>might specify @code{-r HEAD} to tag the head.
   6440 Entretanto, Isto pode perder uma pequena quantidade de
   6441 informao.  Por exemplo, suponha que um arquivo foi
   6442 adicionado e ento removido.  Ento, se a etiqueta est
   6443 faltando para aquele arquivo, no h como se descobrir
   6444 se a data da etiqueta  posterior  adio ou anterior
   6445  remoo do arquivo.  Se voc usa a opo @samp{-r}
   6446 para @code{cvs rtag}, ento o @sc{cvs} etiqueta os
   6447 arquivos que foram removidos, e portanto remove este
   6448 problema.  Por exemplo, alguem pode especificar @code{-r
   6449 HEAD} para etiquetar a head.
   6450 
   6451 @c <en>On the subject of adding and removing files, the
   6452 @c <en>@code{cvs rtag} command has a @samp{-a} option which
   6453 @c <en>means to clear the tag from removed files that would
   6454 @c <en>not otherwise be tagged.  For example, one might
   6455 @c <en>specify this option in conjunction with @samp{-F} when
   6456 @c <en>moving a tag.  If one moved a tag without @samp{-a},
   6457 @c <en>then the tag in the removed files might still refer to
   6458 @c <en>the old revision, rather than reflecting the fact that
   6459 @c <en>the file had been removed.  I don't think this is
   6460 @c <en>necessary if @samp{-r} is specified, as noted above.
   6461 A respeito de adicionar e remover arquivos, o comando
   6462 @code{cvs rtag} tem a opo @samp{-a} que significa
   6463 limpar a etiqueta de arquivos removidos que ???would
   6464 not otherwise be tagged???.  Por exemplo, alguem pode
   6465 especificar esta opo em conjunto com @samp{-F} quando
   6466 mover uma etiqueta.  Se alguem mover uma etiqueta sem o
   6467 @samp{-a}, ento a etiqueta nos arquivos removidos vai
   6468 continuar fazendo referncia  reviso antiga, Ao invs
   6469 de refletir o fato de que o arquivo foi removido.  Eu
   6470 no acho que isto seja necessrio se @samp{-r} 
   6471 especificado, como falado acima.
   6472 
   6473 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   6474 @c <en>@node Sticky tags
   6475 @node Etiquetas adesivas
   6476 @c <en>@section Sticky tags
   6477 @section Etiquetas adesivas
   6478 @c <en>@cindex Sticky tags
   6479 @cindex Etiquetas adesivas
   6480 @c <en>@cindex Tags, sticky
   6481 @cindex Adesivas, etiquetas
   6482 
   6483 @c A somewhat related issue is per-directory sticky
   6484 @c tags (see comment at CVS/Tag in node Working
   6485 @c directory storage); we probably want to say
   6486 @c something like "you can set a sticky tag for only
   6487 @c some files, but you don't want to" or some such.
   6488 
   6489 @c <en>Sometimes a working copy's revision has extra data
   6490 @c <en>associated with it, for example it might be on a branch
   6491 @c <en>(@pxref{Branching and merging}), or restricted to
   6492 @c <en>versions prior to a certain date by @samp{checkout -D}
   6493 @c <en>or @samp{update -D}.  Because this data persists --
   6494 @c <en>that is, it applies to subsequent commands in the
   6495 @c <en>working copy -- we refer to it as @dfn{sticky}.
   6496 Algumas vezes, um cpia de tabalho de uma reviso tem
   6497 dados extra associados a ela, por exemplo, ela pode
   6498 estar num ramo (@pxref{Ramificando e mesclando}), ou
   6499 restrita a uma verso anterior a uma certa data por
   6500 @samp{checkout -D} ou @samp{update -D}.  J que este
   6501 dado persiste -- ou seja, ele se aplica a comandos
   6502 subseqentes na cpia de trabalho -- ns o chamamos de
   6503 @dfn{adesivos}.
   6504 
   6505 @c <en>Most of the time, stickiness is an obscure aspect of
   6506 @c <en>@sc{cvs} that you don't need to think about.  However,
   6507 @c <en>even if you don't want to use the feature, you may need
   6508 @c <en>to know @emph{something} about sticky tags (for
   6509 @c <en>example, how to avoid them!).
   6510 Na maioria das vezes, ser adesivo  um aspecto obscuro
   6511 do @sc{cvs} que voc no precisa saber a respeito.
   6512 Entretanto, mesmo se voc no quiser usar esta
   6513 habilidade, voc  vai precisar saber @emph{alguma
   6514 coisa} sobre etiquetas adesivas (sticky tags) (por
   6515 exemplo, como evit-las!).
   6516 
   6517 @c <en>You can use the @code{status} command to see if any
   6518 @c <en>sticky tags or dates are set:
   6519 Voc pode usar o comando @code{status} para ver se
   6520 alguma etiqueta ou data adesiva esto ligadas:
   6521 
   6522 @example
   6523 $ cvs status driver.c
   6524 ===================================================================
   6525 File: driver.c          Status: Up-to-date
   6526 
   6527     Version:            1.7.2.1 Sat Dec  5 19:35:03 1992
   6528     RCS Version:        1.7.2.1 /u/cvsroot/yoyodyne/tc/driver.c,v
   6529     Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
   6530     Sticky Date:        (none)
   6531     Sticky Options:     (none)
   6532 
   6533 @end example
   6534 
   6535 @c <en>@cindex Resetting sticky tags
   6536 @cindex Zerando etiquetas adesivas
   6537 @c <en>@cindex Sticky tags, resetting
   6538 @cindex Etiquetas adesivas, zerando
   6539 @c <en>@cindex Deleting sticky tags
   6540 @cindex Apagando etiquetas adesivas
   6541 @c <en>The sticky tags will remain on your working files until
   6542 @c <en>you delete them with @samp{cvs update -A}.  The
   6543 @c <en>@samp{-A} option merges local changes into the version of the
   6544 @c <en>file from the head of the trunk, removing any sticky tags,
   6545 @c <en>dates, or options.  See @ref{update} for more on the operation
   6546 @c <en>of @code{cvs update}.
   6547 As etiquetas adesivas vo permanecer nos seus arquivos
   6548 de trabalho at que voc apague elas com @samp{cvs
   6549 update -A}.  A opo @samp{-A} mescla as alteraes
   6550 locais na verso do arquivo na cabea (head) do tronco,
   6551 removendo qualquer etiqueta, data ou opo adesiva.
   6552 Veja em @ref{update} para mais a respeito desta
   6553 operao do @code{cvs update}.
   6554 
   6555 @c <en>@cindex Sticky date
   6556 @cindex Data adesiva
   6557 @c <en>The most common use of sticky tags is to identify which
   6558 @c <en>branch one is working on, as described in
   6559 @c <en>@ref{Accessing branches}.  However, non-branch
   6560 @c <en>sticky tags have uses as well.  For example,
   6561 @c <en>suppose that you want to avoid updating your working
   6562 @c <en>directory, to isolate yourself from possibly
   6563 @c <en>destabilizing changes other people are making.  You
   6564 @c <en>can, of course, just refrain from running @code{cvs
   6565 @c <en>update}.  But if you want to avoid updating only a
   6566 @c <en>portion of a larger tree, then sticky tags can help.
   6567 @c <en>If you check out a certain revision (such as 1.4) it
   6568 @c <en>will become sticky.  Subsequent @code{cvs update}
   6569 @c <en>commands will
   6570 @c <en>not retrieve the latest revision until you reset the
   6571 @c <en>tag with @code{cvs update -A}.  Likewise, use of the
   6572 @c <en>@samp{-D} option to @code{update} or @code{checkout}
   6573 @c <en>sets a @dfn{sticky date}, which, similarly, causes that
   6574 @c <en>date to be used for future retrievals.
   6575 O uso mais comum de etiquetas adesivas  identificar em
   6576 que ramo se est trabalhando, como descrito em
   6577 @ref{Acessando ramos}.  Entretanto, etiquetas adesivas
   6578 em ???non-branch??? tambm tm seu uso.  Por exemplo,
   6579 suponha que voc quer evitar atualizar seu diretrio de
   6580 trabalho, para se isolar de mudanas que outras pessoas
   6581 esto fazendo que possam que possam desestabilizar seu
   6582 trabalho.  Voc pode, claro, simplesmente no rodar o @code{cvs
   6583 update}.  Mas se voc quer evitar atualizar (fazer
   6584 update) apenas uma parte de uma grande rvore, ento
   6585 etiquetas adesivas podem ajudar.  Se voc pega uma certa
   6586 revso (como a 1.4) ela vai se tornar adesiva.
   6587 comandos @code{cvs update} subsequentes no vo trazer
   6588 a reviso mais nova at que voc limpe a etiqueta com os
   6589 comandos @code{cvs update -A}.  Da mesma forma, o uso da
   6590 opo @samp{-D} em @code{update} ou @code{checkout}
   6591 define uma @dfn{data adesiva}, que, similarmente, faz
   6592 com que a data seja usada para futuras ???retrievals???.
   6593 
   6594 @c <en>People often want to retrieve an old version of
   6595 @c <en>a file without setting a sticky tag.  This can
   6596 @c <en>be done with the @samp{-p} option to @code{checkout} or
   6597 @c <en>@code{update}, which sends the contents of the file to
   6598 @c <en>standard output.  For example:
   6599  normal as pessoas quererem recuperar uma verso
   6600 antiga de um arquivo sem definir uma etiqueta adesiva.
   6601 Isto pode ser feito com a opo @samp{-p} no
   6602 @code{checkout} ou @code{update}, que manda o contedo
   6603 do arquivo para a sada padro.  Por exemplo:
   6604 @example
   6605 $ cvs update -p -r 1.1 file1 >file1
   6606 ===================================================================
   6607 Checking out file1
   6608 RCS:  /tmp/cvs-sanity/cvsroot/first-dir/Attic/file1,v
   6609 VERS: 1.1
   6610 ***************
   6611 $
   6612 @end example
   6613 
   6614 @c <en>However, this isn't the easiest way, if you are asking
   6615 @c <en>how to undo a previous checkin (in this example, put
   6616 @c <en>@file{file1} back to the way it was as of revision
   6617 @c <en>1.1).  In that case you are better off using the
   6618 @c <en>@samp{-j} option to @code{update}; for further
   6619 @c <en>discussion see @ref{Merging two revisions}.
   6620 Entretanto, esta no  a forma mais fcil, se voc est
   6621 querendo desfazer um envio anterior (neste exemplo,
   6622 devolver o arquivo @file{file1} ao que ele era na
   6623 reviso 1.1).  Neste caso  melhor usar a opo
   6624 @samp{-j} com o @code{update}; Para maiores detalhes,
   6625 veja em @ref{Mesclando duas revises}.
   6626 
   6627 @c ---------------------------------------------------------------------
   6628 @c <en>@node Branching and merging
   6629 @node Ramificando e mesclando
   6630 @c <en>@chapter Branching and merging
   6631 @chapter Ramificando e mesclando
   6632 @c <en>@cindex Branching
   6633 @cindex Ramificando
   6634 @c <en>@cindex Merging
   6635 @cindex Mesclando
   6636 @c <en>@cindex Copying changes
   6637 @cindex Copying changes
   6638 @c <en>@cindex Main trunk and branches
   6639 @cindex Tronco principal e ramos
   6640 @c <en>@cindex Revision tree, making branches
   6641 @cindex Revision tree, making branches
   6642 @c <en>@cindex Branches, copying changes between
   6643 @cindex Branches, copying changes between
   6644 @c <en>@cindex Changes, copying between branches
   6645 @cindex Changes, copying between branches
   6646 @c <en>@cindex Modifications, copying between branches
   6647 @cindex Modifications, copying between branches
   6648 
   6649 @c <en>@sc{cvs} allows you to isolate changes onto a separate
   6650 @c <en>line of development, known as a @dfn{branch}.  When you
   6651 @c <en>change files on a branch, those changes do not appear
   6652 @c <en>on the main trunk or other branches.
   6653 O @sc{cvs} permite isolar mudanas em uma linha de
   6654 desenvolvimento separada, chamada de @dfn{ramo}.
   6655 Quando voc muda os arquivos de um ramo, aquelas
   6656 mudanas no aparecem no tronco principal ou em outros ramos.
   6657 
   6658 @c <en>Later you can move changes from one branch to another
   6659 @c <en>branch (or the main trunk) by @dfn{merging}.  Merging
   6660 @c <en>involves first running @code{cvs update -j}, to merge
   6661 @c <en>the changes into the working directory.
   6662 @c <en>You can then commit that revision, and thus effectively
   6663 @c <en>copy the changes onto another branch.
   6664 Mais tarde voc pode mover as mudanas de um ramo para
   6665 outro (ou para o tronco principal) com uma
   6666 @dfn{mesclagem}.  Mesclar  primeiro rodar um @code{cvs
   6667 update -j}, para mesclar as mudanas no seu diretrio
   6668 de trabalho.  Depois efetivar (commit) esta reviso, e
   6669 finalmente fazer a efetiva destas mudanas de um ramo
   6670 para outro.
   6671 
   6672 @menu
   6673 @c <en>* Branches motivation::         What branches are good for
   6674 * Motivao para ramos::              Para que ramos so bons
   6675 @c <en>* Creating a branch::           Creating a branch
   6676 * Criando um ramo::                   Criando um ramo
   6677 @c <en>* Accessing branches::          Checking out and updating branches
   6678 * Acessando ramos::                   Pegando e devolvendo ramos
   6679 @c <en>* Branches and revisions::      Branches are reflected in revision numbers
   6680 * Ramos e revises::                  Ramificar se reflete nos nmeros de reviso
   6681 @c <en>* Magic branch numbers::        Magic branch numbers
   6682 * Nmeros de ramos mgicos::          Magic branch numbers
   6683 @c <en>* Merging a branch::            Merging an entire branch
   6684 * Mesclando um ramo::                 Mesclando um ramo inteiro
   6685 @c <en>* Merging more than once::      Merging from a branch several times
   6686 * Mesclando mais de uma vez::         Mesclando a partir de um ramo vrias vezes
   6687 @c <en>* Merging two revisions::       Merging differences between two revisions
   6688 * Mesclando duas revises::           Mesclando diferenas entre duas revises
   6689 @c <en>* Merging adds and removals::   What if files are added or removed?
   6690 * Mesclando adicionados e removidos:: E se arquivos forem adicionados ou removidos?
   6691 @c <en>* Merging and keywords::        Avoiding conflicts due to keyword substitution
   6692 * Mesclagem e palavras-chave::        Evitando conflitos devido a substituio de palavras-chave
   6693 @end menu
   6694 
   6695 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   6696 @c <en>@node Branches motivation
   6697 @node Motivao para ramos
   6698 @c <en>@section What branches are good for
   6699 @section Para que ramos so bons
   6700 @c <en>@cindex Branches motivation
   6701 @cindex Motivao para ramos
   6702 @c <en>@cindex What branches are good for
   6703 @cindex Para que ramos so bons
   6704 @c <en>@cindex Motivation for branches
   6705 @cindex Motivation for branches
   6706 
   6707 @c FIXME: this node mentions one way to use branches,
   6708 @c but it is by no means the only way.  For example,
   6709 @c the technique of committing a new feature on a branch,
   6710 @c until it is ready for the main trunk.  The whole
   6711 @c thing is generally speaking more akin to the
   6712 @c "Revision management" node although it isn't clear to
   6713 @c me whether policy matters should be centralized or
   6714 @c distributed throughout the relevant sections.
   6715 @c <en>Suppose that release 1.0 of tc has been made.  You are continuing to
   6716 @c <en>develop tc, planning to create release 1.1 in a couple of months.  After a
   6717 @c <en>while your customers start to complain about a fatal bug.  You check
   6718 @c <en>out release 1.0 (@pxref{Tags}) and find the bug
   6719 @c <en>(which turns out to have a trivial fix).  However, the current revision
   6720 @c <en>of the sources are in a state of flux and are not expected to be stable
   6721 @c <en>for at least another month.  There is no way to make a
   6722 @c <en>bugfix release based on the newest sources.
   6723 Suponha que a release 1.0 de tc est pronta.  Voc est
   6724 continua desenvolvendo tc, e planeja lanar a release
   6725 1.1 em alguns meses.  Depois de um tempo seus
   6726 consumidores comeam a reclamar de um erro fatal.  Voc
   6727 baixa a release 1.0 (@pxref{Etiquetas}) e encontra o
   6728 erro (que tem um conserto fcil).  Entretanto, a
   6729 reviso atual dos fontes est num estado do fluxo de
   6730 desenvolvimento que voc no espera que estaja estvel
   6731 em pelo menos um ms.  No tem jeito de lanar uma
   6732 release baseada nos fontes mais novos.
   6733 
   6734 @c <en>The thing to do in a situation like this is to create a @dfn{branch} on
   6735 @c <en>the revision trees for all the files that make up
   6736 @c <en>release 1.0 of tc.  You can then make
   6737 @c <en>modifications to the branch without disturbing the main trunk.  When the
   6738 @c <en>modifications are finished you can elect to either incorporate them on
   6739 @c <en>the main trunk, or leave them on the branch.
   6740 O que se h para fazer numa situao como esta  criar
   6741 um @dfn{ramo} na rvore de revises para todos os
   6742 arquivos que integram a release 1.0 de tc.  Voc pode
   6743 ento fazer modificaes no ramo sem perturbar o tronco
   6744 principal.  Quando as modificaes terminarem voc pode
   6745 decidir se incorporam elas ao tronco ou deixa elas no ramo.
   6746 
   6747 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   6748 @c <en>@node Creating a branch
   6749 @node Criando um ramo
   6750 @c <en>@section Creating a branch
   6751 @section Criando um ramo
   6752 @c <en>@cindex Creating a branch
   6753 @cindex Criando um ramo
   6754 @c <en>@cindex Branch, creating a
   6755 @cindex Ramo, criando um
   6756 @c <en>@cindex tag (subcommand), creating a branch using
   6757 @cindex tag (subcomando), criando um ramo usando
   6758 @c <en>@cindex rtag (subcommand), creating a branch using
   6759 @cindex rtag (subcomando), criando um ramo usando
   6760 
   6761 @c <en>You can create a branch with @code{tag -b}; for
   6762 @c <en>example, assuming you're in a working copy:
   6763 Voc pode criar um ramo com @code{tag -b}; por exemplo,
   6764 supondo que voc est numa cpia de trabalho:
   6765 
   6766 @example
   6767 $ cvs tag -b rel-1-0-patches
   6768 @end example
   6769 
   6770 @c FIXME: we should be more explicit about the value of
   6771 @c having a tag on the branchpoint.  For example
   6772 @c "cvs tag rel-1-0-patches-branchpoint" before
   6773 @c the "cvs tag -b".  This points out that
   6774 @c rel-1-0-patches is a pretty awkward name for
   6775 @c this example (more so than for the rtag example
   6776 @c below).
   6777 
   6778 @c <en>This splits off a branch based on the current revisions
   6779 @c <en>in the working copy, assigning that branch the name
   6780 @c <en>@samp{rel-1-0-patches}.
   6781 Isto inicia um ramo baseado nas revises atuais na
   6782 cpia de trabalho, dando a este ramo o nome
   6783 @samp{rel-1-0-patches}.
   6784 
   6785 @c <en>It is important to understand that branches get created
   6786 @c <en>in the repository, not in the working copy.  Creating a
   6787 @c <en>branch based on current revisions, as the above example
   6788 @c <en>does, will @emph{not} automatically switch the working
   6789 @c <en>copy to be on the new branch.  For information on how
   6790 @c <en>to do that, see @ref{Accessing branches}.
   6791  importante entender que ramos so criados no
   6792 repositrio, e no na cpia de tarbalho.  Criar um ramo
   6793 baseado nas revises atuais, como no exemplo acima,
   6794 @emph{No} vai mudar automaticamente a cpia de
   6795 trabalho para o novo ramo.  Para informaes sobre
   6796 como fazer isto, veja em @ref{Acessando ramos}.
   6797 
   6798 @c <en>You can also create a branch without reference to any
   6799 @c <en>working copy, by using @code{rtag}:
   6800 Voc tambm pode criar um ramo sem referncia a
   6801 qualquer cpia de trabalho usando @code{rtag}:
   6802 
   6803 @example
   6804 $ cvs rtag -b -r rel-1-0 rel-1-0-patches tc
   6805 @end example
   6806 
   6807 @c <en>@samp{-r rel-1-0} says that this branch should be
   6808 @c <en>rooted at the revision that
   6809 @c <en>corresponds to the tag @samp{rel-1-0}.  It need not
   6810 @c <en>be the most recent revision -- it's often useful to
   6811 @c <en>split a branch off an old revision (for example, when
   6812 @c <en>fixing a bug in a past release otherwise known to be
   6813 @c <en>stable).
   6814 @samp{-r rel-1-0} diz que este ramo deve ser iniciado
   6815 na reviso que corresponde  etiqueta (tag)
   6816 @samp{rel-1-0}.  No precisa ser a reviso mais recente
   6817 --  til s vezes separar um ramo a partir de uma
   6818 reviso antiga (por exemplo, quando se est consertando
   6819 um erro numa release anterior que se pensava estar
   6820 estvel).
   6821 
   6822 @c <en>As with @samp{tag}, the @samp{-b} flag tells
   6823 @c <en>@code{rtag} to create a branch (rather than just a
   6824 @c <en>symbolic revision name).  Note that the numeric
   6825 @c <en>revision number that matches @samp{rel-1-0} will
   6826 @c <en>probably be different from file to file.
   6827 Assim como no @samp{tag}, a opo @samp{-b} diz ao
   6828 @code{rtag} para criar um ramo (ao invs de
   6829 simplesmente um nome de reviso simblico).  Observe
   6830 que o nmero de reviso simblico que casa com
   6831 @samp{rel-1-0} provavelmente ser diferente de arquivo
   6832 para arquivo.
   6833 
   6834 @c <en>So, the full effect of the command is to create a new
   6835 @c <en>branch -- named @samp{rel-1-0-patches} -- in module
   6836 @c <en>@samp{tc}, rooted in the revision tree at the point tagged
   6837 @c <en>by @samp{rel-1-0}.
   6838 Ento, O efeito total do comando  criar um novo ramo
   6839 -- chamado @samp{rel-1-0-patches} -- no mdulo
   6840 @samp{tc}, partindo da rvore de reviso no ponto
   6841 etiquetado como @samp{rel-1-0}.
   6842 
   6843 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   6844 @c <en>@node Accessing branches
   6845 @node Acessando ramos
   6846 @c <en>@section Accessing branches
   6847 @section Acessando ramos
   6848 @c <en>@cindex Check out a branch
   6849 @cindex Check out a branch
   6850 @c <en>@cindex Retrieve a branch
   6851 @cindex Retrieve a branch
   6852 @c <en>@cindex Access a branch
   6853 @cindex Access a branch
   6854 @c <en>@cindex Identifying a branch
   6855 @cindex Identifying a branch
   6856 @c <en>@cindex Branch, check out
   6857 @cindex Branch, check out
   6858 @c <en>@cindex Branch, retrieving
   6859 @cindex Branch, retrieving
   6860 @c <en>@cindex Branch, accessing
   6861 @cindex Branch, accessing
   6862 @c <en>@cindex Branch, identifying
   6863 @cindex Branch, identifying
   6864 
   6865 @c <en>You can retrieve a branch in one of two ways: by
   6866 @c <en>checking it out fresh from the repository, or by
   6867 @c <en>switching an existing working copy over to the branch.
   6868 Voc pode recuperar um ramo de duas formas: pegando um
   6869 cpia zerada dele do repositrio, ou alternando de uma
   6870 cpia de trabalho j existente para o ramo.
   6871 
   6872 @c <en>To check out a branch from the repository, invoke
   6873 @c <en>@samp{checkout} with the @samp{-r} flag, followed by
   6874 @c <en>the tag name of the branch (@pxref{Creating a branch}):
   6875 Para pegar um ramo do repositrio, chame o
   6876 @samp{checkout} com a opo @samp{-r}, seguida pelo
   6877 nome da etiqueta do ramo (@pxref{Criando um ramo}):
   6878 
   6879 @example
   6880 $ cvs checkout -r rel-1-0-patches tc
   6881 @end example
   6882 
   6883 @c <en>Or, if you already have a working copy, you can switch
   6884 @c <en>it to a given branch with @samp{update -r}:
   6885 Ou, se voc j tem uma cpia de trabalho, voc pode
   6886 alternar dela para um dado ramo com @samp{update -r}:
   6887 
   6888 @example
   6889 $ cvs update -r rel-1-0-patches tc
   6890 @end example
   6891 
   6892 @noindent
   6893 @c <en>or equivalently:
   6894 ou equivalentemente:
   6895 
   6896 @example
   6897 $ cd tc
   6898 $ cvs update -r rel-1-0-patches
   6899 @end example
   6900 
   6901 @c <en>It does not matter if the working copy was originally
   6902 @c <en>on the main trunk or on some other branch -- the above
   6903 @c <en>command will switch it to the named branch.  And
   6904 @c <en>similarly to a regular @samp{update} command,
   6905 @c <en>@samp{update -r} merges any changes you have made,
   6906 @c <en>notifying you of conflicts where they occur.
   6907 No importa se a cpia de tabalho estava originalmente
   6908 no tronco principal ou em algum outro ramo -- o comando
   6909 acima vai alternar ela para o ramo dado.  E
   6910 similarmente ao comando @samp{update} normal,
   6911 @samp{update -r} mescla quaisquer mudanas que voc
   6912 tenha feito, notificando voc sobre conflitos onde eles
   6913 ocorrerem.
   6914 
   6915 @c <en>Once you have a working copy tied to a particular
   6916 @c <en>branch, it remains there until you tell it otherwise.
   6917 @c <en>This means that changes checked in from the working
   6918 @c <en>copy will add new revisions on that branch, while
   6919 @c <en>leaving the main trunk and other branches unaffected.
   6920 Uma vez que voc tenha uma cpia de trabalho referente
   6921 a um dado, ela continua no ramo at que se diga o
   6922 contrrio.  Isto significa que mudanas inseridas a
   6923 partir da cpia de trabalho vo adicionar novas
   6924 revises naquele ramo, enquanto que no afeta o tronco
   6925 principal nem os outros ramos.
   6926 
   6927 @c <en>@cindex Branches, sticky
   6928 @cindex Ramos, adesivos
   6929 @c <en>To find out what branch a working copy is on, you can
   6930 @c <en>use the @samp{status} command.  In its output, look for
   6931 @c <en>the field named @samp{Sticky tag} (@pxref{Sticky tags})
   6932 @c <en>-- that's @sc{cvs}'s way of telling you the branch, if
   6933 @c <en>any, of the current working files:
   6934 Para saber em qual ramo uma cpia de trabalho est,
   6935 voc precisa usar o comando @samp{status}.  Na sada do
   6936 comando procure pelo campo chamado @samp{Sticky tag}
   6937 (etiqueta adesiva) (@pxref{Etiquetas adesivas})
   6938 -- esta  a forma do @sc{cvs} de dizer a voc o ramo,
   6939 se  que se est num, dos arquivos de trabalho atuais:
   6940 
   6941 @example
   6942 $ cvs status -v driver.c backend.c
   6943 ===================================================================
   6944 File: driver.c          Status: Up-to-date
   6945 
   6946     Version:            1.7     Sat Dec  5 18:25:54 1992
   6947     RCS Version:        1.7     /u/cvsroot/yoyodyne/tc/driver.c,v
   6948     Sticky Tag:         rel-1-0-patches (branch: 1.7.2)
   6949     Sticky Date:        (none)
   6950     Sticky Options:     (none)
   6951 
   6952     Existing Tags:
   6953         rel-1-0-patches             (branch: 1.7.2)
   6954         rel-1-0                     (revision: 1.7)
   6955 
   6956 ===================================================================
   6957 File: backend.c         Status: Up-to-date
   6958 
   6959     Version:            1.4     Tue Dec  1 14:39:01 1992
   6960     RCS Version:        1.4     /u/cvsroot/yoyodyne/tc/backend.c,v
   6961     Sticky Tag:         rel-1-0-patches (branch: 1.4.2)
   6962     Sticky Date:        (none)
   6963     Sticky Options:     (none)
   6964 
   6965     Existing Tags:
   6966         rel-1-0-patches             (branch: 1.4.2)
   6967         rel-1-0                     (revision: 1.4)
   6968         rel-0-4                     (revision: 1.4)
   6969 
   6970 @end example
   6971 
   6972 @c <en>Don't be confused by the fact that the branch numbers
   6973 @c <en>for each file are different (@samp{1.7.2} and
   6974 @c <en>@samp{1.4.2} respectively).  The branch tag is the
   6975 @c <en>same, @samp{rel-1-0-patches}, and the files are
   6976 @c <en>indeed on the same branch.  The numbers simply reflect
   6977 @c <en>the point in each file's revision history at which the
   6978 @c <en>branch was made.  In the above example, one can deduce
   6979 @c <en>that @samp{driver.c} had been through more changes than
   6980 @c <en>@samp{backend.c} before this branch was created.
   6981 No se confunda pelo fato de que os nmeros de ramo de
   6982 cada arquivo serem diferentes (@samp{1.7.2} e
   6983 @samp{1.4.2} respectivamente).  A etiqueta do ramo  a
   6984 mesma, @samp{rel-1-0-patches}, e os arquivos esto na
   6985 verdade no mesmo ramo.  Os nmeros simplesmente
   6986 refletem o ponto em que cada arquivo estava no
   6987 histrico de reviso quando o ramo foi criado.  No
   6988 exemplo acima, pode-se deduzir que @samp{driver.c}
   6989 tinha tido mais alteraes que @samp{backend.c} antes
   6990 do ramo ter sido criado.
   6991 
   6992 @c <en>See @ref{Branches and revisions} for details about how
   6993 @c <en>branch numbers are constructed.
   6994 Veja em @ref{Ramos e revises} para detalhes a respeito
   6995 de como nmeros de ramos so criados.
   6996 
   6997 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   6998 @c <en>@node Branches and revisions
   6999 @node Ramos e revises
   7000 @c <en>@section Branches and revisions
   7001 @section Ramos e revises
   7002 @c <en>@cindex Branch number
   7003 @cindex Nmero de ramo
   7004 @c <en>@cindex Number, branch
   7005 @cindex Ramo, nmero de
   7006 @c <en>@cindex Revision numbers (branches)
   7007 @cindex Nmeros de reviso (ramos)
   7008 
   7009 @c <en>Ordinarily, a file's revision history is a linear
   7010 @c <en>series of increments (@pxref{Revision numbers}):
   7011 Normalmente, um histrico da reviso do arquivo  uma
   7012 sria linear de incrementos (@pxref{Nmeros de
   7013 reviso}):
   7014 
   7015 @example
   7016        +-----+    +-----+    +-----+    +-----+    +-----+
   7017        ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !
   7018        +-----+    +-----+    +-----+    +-----+    +-----+
   7019 @end example
   7020 
   7021 @c <en>However, @sc{cvs} is not limited to linear development.  The
   7022 @c <en>@dfn{revision tree} can be split into @dfn{branches},
   7023 @c <en>where each branch is a self-maintained line of
   7024 @c <en>development.  Changes made on one branch can easily be
   7025 @c <en>moved back to the main trunk.
   7026 Entretanto, o @sc{cvs} no est limitado a
   7027 desenvolvimento linear.  A @dfn{rvore de revises}
   7028 pode ser separada em @dfn{ramos},
   7029 onde cada ramo  uma linha de desenvolvimento que se
   7030 mantm.  Mudanas feitas em um ramo podem ser facilmente
   7031 movidas para o tronco principal.
   7032 
   7033 @c <en>Each branch has a @dfn{branch number}, consisting of an
   7034 @c <en>odd number of period-separated decimal integers.  The
   7035 @c <en>branch number is created by appending an integer to the
   7036 @c <en>revision number where the corresponding branch forked
   7037 @c <en>off.  Having branch numbers allows more than one branch
   7038 @c <en>to be forked off from a certain revision.
   7039 Cada ramo tem um @dfn{nmero de ramo}, formado por uma
   7040 quantidade mpar de nmeros inteiros decimais separados
   7041 por ponto.  O nmero do ramo  criado anexando um
   7042 inteiro ao nmero de reviso de onde o ramo
   7043 correpondente saiu.  Com nmeros de ramo  possvel se
   7044 ter mais de uma ramificao partindo de uma certa reviso.
   7045 
   7046 @need 3500
   7047 @c <en>All revisions on a branch have revision numbers formed
   7048 @c <en>by appending an ordinal number to the branch number.
   7049 @c <en>The following figure illustrates branching with an
   7050 @c <en>example.
   7051 Todas as revises num ramo tm nmeros de reviso
   7052 formados pela anexao de um nmero ordinal ao nmero
   7053 do ramo.  A figura seguinte ilustra a ramificao com um exemplo.
   7054 
   7055 @example
   7056 @c This example used to have a 1.2.2.4 revision, which
   7057 @c might help clarify that development can continue on
   7058 @c 1.2.2.  Might be worth reinstating if it can be done
   7059 @c without overfull hboxes.
   7060 @group
   7061                                                       +-------------+
   7062                            Branch 1.2.2.3.2 ->        ! 1.2.2.3.2.1 !
   7063                                                     / +-------------+
   7064                                                    /
   7065                                                   /
   7066                  +---------+    +---------+    +---------+
   7067 Branch 1.2.2 -> _! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
   7068                / +---------+    +---------+    +---------+
   7069               /
   7070              /
   7071 +-----+    +-----+    +-----+    +-----+    +-----+
   7072 ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !  <- The main trunk
   7073 +-----+    +-----+    +-----+    +-----+    +-----+
   7074                 !
   7075                 !
   7076                 !   +---------+    +---------+    +---------+
   7077 Branch 1.2.4 -> +---! 1.2.4.1 !----! 1.2.4.2 !----! 1.2.4.3 !
   7078                     +---------+    +---------+    +---------+
   7079 
   7080 @end group
   7081 @end example
   7082 
   7083 @c --   However, at least for me the figure is not enough.  I suggest more
   7084 @c --   text to accompany it.  "A picture is worth a thousand words", so you
   7085 @c --   have to make sure the reader notices the couple of hundred words
   7086 @c --   *you* had in mind more than the others!
   7087 
   7088 @c --   Why an even number of segments?  This section implies that this is
   7089 @c --   how the main trunk is distinguished from branch roots, but you never
   7090 @c --   explicitly say that this is the purpose of the [by itself rather
   7091 @c --   surprising] restriction to an even number of segments.
   7092 
   7093 @c <en>The exact details of how the branch number is
   7094 @c <en>constructed is not something you normally need to be
   7095 @c <en>concerned about, but here is how it works: When
   7096 @c <en>@sc{cvs} creates a branch number it picks the first
   7097 @c <en>unused even integer, starting with 2.  So when you want
   7098 @c <en>to create a branch from revision 6.4 it will be
   7099 @c <en>numbered 6.4.2.  All branch numbers ending in a zero
   7100 @c <en>(such as 6.4.0) are used internally by @sc{cvs}
   7101 @c <en>(@pxref{Magic branch numbers}).  The branch 1.1.1 has a
   7102 @c <en>special meaning.  @xref{Tracking sources}.
   7103 Os detalhes exatos de como o nmero de ramo 
   7104 construdo no so algo com os quais voc precisa estar
   7105 preocupado, mas aqui vai como a coisa funciona: quando
   7106 o @sc{cvs} cria um nmero de ramo ele pega o primeiro
   7107 nmero par no usado, a partir de 2.  Logo, quando voc
   7108 quer criar um ramo a partir da reviso 6.4 ele vai ser
   7109 numerado 6.4.2.  Todos os nmeros de ramos terminados
   7110 com um zero (tal como 6.4.0) so usados internamente
   7111 pelo @sc{cvs} (@pxref{Nmeros de ramos mgicos}).  O
   7112 ramo 1.1.1 tem um significado especial.
   7113 @xref{Acompanhando fontes}.
   7114 
   7115 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   7116 @c <en>@node Magic branch numbers
   7117 @node Nmeros de ramos mgicos
   7118 @c <en>@section Magic branch numbers
   7119 @section Nmeros de ramos mgicos
   7120 
   7121 @c Want xref to here from "log"?
   7122 
   7123 @c <en>This section describes a @sc{cvs} feature called
   7124 @c <en>@dfn{magic branches}.  For most purposes, you need not
   7125 @c <en>worry about magic branches; @sc{cvs} handles them for
   7126 @c <en>you.  However, they are visible to you in certain
   7127 @c <en>circumstances, so it may be useful to have some idea of
   7128 @c <en>how it works.
   7129 Esta seo descreve uma habilidade do @sc{cvs} chamada
   7130 @dfn{ramos mgicos}.  Para a maioria dos casos, voc
   7131 no precisa se preocupar com os ramos mgicos; o
   7132 @sc{cvs} cuida deles para voc.  Entretanto, eles
   7133 aparecem em algumas situaes, sendo importante se ter
   7134 alguma idia de como eles funcionam.
   7135 
   7136 @c <en>Externally, branch numbers consist of an odd number of
   7137 @c <en>dot-separated decimal integers.  @xref{Revision
   7138 @c <en>numbers}.  That is not the whole truth, however.  For
   7139 @c <en>efficiency reasons @sc{cvs} sometimes inserts an extra 0
   7140 @c <en>in the second rightmost position (1.2.4 becomes
   7141 @c <en>1.2.0.4, 8.9.10.11.12 becomes 8.9.10.11.0.12 and so
   7142 @c <en>on).
   7143 Externamente, nmeros de ramos consistem de uma quantidade
   7144 mpar de inteiros decimais separados por
   7145 ponto.  @xref{Nmeros de reviso}.  Isto no  toda a
   7146 verdade, entretanto.  Por questes de eficincia, o
   7147 @sc{cvs} insere, em alguns momentos, um 0 extra na
   7148 segunda posio da direita para a esquerda (1.2.4 se torna
   7149 1.2.0.4, 8.9.10.11.12 se torna 8.9.10.11.0.12 e assim
   7150 por diante).
   7151 
   7152 @c <en>@sc{cvs} does a pretty good job at hiding these so
   7153 @c <en>called magic branches, but in a few places the hiding
   7154 @c <en>is incomplete:
   7155 O @sc{cvs} faz um bom trabalho escondendo estes tais
   7156 ramos mgicos, mas em alguns lugares alguma coisa aparece:
   7157 
   7158 @itemize @bullet
   7159 @ignore
   7160 @c This is in ignore as I'm taking their word for it,
   7161 @c that this was fixed
   7162 @c a long time ago.  But before deleting this
   7163 @c entirely, I'd rather verify it (and add a test
   7164 @c case to the testsuite).
   7165 @item
   7166 @c <en>The magic branch can appear in the output from
   7167 @c <en>@code{cvs status} in vanilla @sc{cvs} 1.3.  This is
   7168 @c <en>fixed in @sc{cvs} 1.3-s2.
   7169 The magic branch can appear in the output from
   7170 @code{cvs status} in vanilla @sc{cvs} 1.3.  This is
   7171 fixed in @sc{cvs} 1.3-s2.
   7172 
   7173 @end ignore
   7174 @item
   7175 @c <en>The magic branch number appears in the output from
   7176 @c <en>@code{cvs log}.
   7177 O nmero de ramo mgico aparece na sada do
   7178 @code{cvs log}.
   7179 @c What output should appear instead?
   7180 
   7181 @item
   7182 @c <en>You cannot specify a symbolic branch name to @code{cvs
   7183 @c <en>admin}.
   7184 Voc no pode especificar um nome de ramo simblico
   7185 para o @code{cvs admin}.
   7186 
   7187 @end itemize
   7188 
   7189 @c Can CVS do this automatically the first time
   7190 @c you check something in to that branch?  Should
   7191 @c it?
   7192 @c <en>You can use the @code{admin} command to reassign a
   7193 @c <en>symbolic name to a branch the way @sc{rcs} expects it
   7194 @c <en>to be.  If @code{R4patches} is assigned to the branch
   7195 @c <en>1.4.2 (magic branch number 1.4.0.2) in file
   7196 @c <en>@file{numbers.c} you can do this:
   7197 Voc pode usar o comando @code{admin} para reatribuir
   7198 um nome simblico para um ramo da forma que o @sc{rcs}
   7199 espera que seja.  Se o @code{R4patches} est atribudo
   7200 para o ramo 1.4.2 (nmero de ramo mgico 1.4.0.2) no
   7201 arquivo @file{numbers.c} voc pode fazer isto:
   7202 
   7203 @example
   7204 $ cvs admin -NR4patches:1.4.2 numbers.c
   7205 @end example
   7206 
   7207 @c <en>It only works if at least one revision is already
   7208 @c <en>committed on the branch.  Be very careful so that you
   7209 @c <en>do not assign the tag to the wrong number.  (There is
   7210 @c <en>no way to see how the tag was assigned yesterday).
   7211 Isto apenas funciona se pelo menos uma reviso j est
   7212 efetivada no ramo.  Seja bastante cuidadoso para no
   7213 atribuir a etiqueta ao nmero errado.  (No existe
   7214 jeito de ver como a etiqueta estava atribuda ontem).
   7215 
   7216 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   7217 @c <en>@node Merging a branch
   7218 @node Mesclando um ramo
   7219 @c <en>@section Merging an entire branch
   7220 @section Mesclando um ramo inteiro
   7221 @c <en>@cindex Merging a branch
   7222 @cindex Mesclando um ramo
   7223 @c <en>@cindex -j (merging branches)
   7224 @cindex -j (mesclando ramos)
   7225 
   7226 @c <en>You can merge changes made on a branch into your working copy by giving
   7227 @c <en>the @samp{-j @var{branchname}} flag to the @code{update} subcommand.  With one
   7228 @c <en>@samp{-j @var{branchname}} option it merges the changes made between the
   7229 @c <en>greatest common ancestor (GCA) of the branch and the destination revision (in
   7230 @c <en>the simple case below the GCA is the point where the branch forked) and the
   7231 @c <en>newest revision on that branch into your working copy.
   7232 Voc pode mesclar mudanas feitas num ramo em seu
   7233 diretrio de trabalho passando a opo @samp{-j
   7234 @var{nome_do_ramo}} para o subcomando @code{update}.
   7235 Com uma opo @samp{-j @var{nome_do_ramo}} ele mescla
   7236 as mudans feitas entre o maior ancestral comum
   7237 (greatest common ancestor - GCA) do ramo e a reviso de
   7238 destino (no caso mais simples abaixo, o GCA  o ponto
   7239 onde o ramo bifurcou) e a nova reviso neste ramo na
   7240 sua cpia de trabalho.
   7241 
   7242 @cindex Join
   7243 @c <en>The @samp{-j} stands for ``join''.
   7244 O @samp{-j} significa ``join'', ``juntar''.
   7245 
   7246 @c <en>@cindex Branch merge example
   7247 @cindex Exemplo de mesclagem de ramo
   7248 @c <en>@cindex Example, branch merge
   7249 @cindex Mesclagem de ramo, exemplo
   7250 @c <en>@cindex Merge, branch example
   7251 @cindex Mesclagem, de ramo, exemplo
   7252 @c <en>Consider this revision tree:
   7253 Considere esta rvore de reviso:
   7254 
   7255 @example
   7256 +-----+    +-----+    +-----+    +-----+
   7257 ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !      <- The main trunk
   7258 +-----+    +-----+    +-----+    +-----+
   7259                 !
   7260                 !
   7261                 !   +---------+    +---------+
   7262 Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !
   7263                     +---------+    +---------+
   7264 @end example
   7265 
   7266 @noindent
   7267 @c <en>The branch 1.2.2 has been given the tag (symbolic name) @samp{R1fix}.  The
   7268 @c <en>following example assumes that the module @samp{mod} contains only one
   7269 @c <en>file, @file{m.c}.
   7270 O ramo 1.2.2 recebeu a etiqueta (nome simblico)
   7271 @samp{R1fix}.  O exemplo seguinte assume que o mdulo
   7272 @samp{mod} contm apenas um arquivo, @file{m.c}.
   7273 
   7274 @example
   7275 $ cvs checkout mod               # @r{Retrieve the latest revision, 1.4}
   7276 
   7277 $ cvs update -j R1fix m.c        # @r{Merge all changes made on the branch,}
   7278                                  # @r{i.e. the changes between revision 1.2}
   7279                                  # @r{and 1.2.2.2, into your working copy}
   7280                                  # @r{of the file.}
   7281 
   7282 $ cvs commit -m "Included R1fix" # @r{Create revision 1.5.}
   7283 @end example
   7284 
   7285 @c <en>A conflict can result from a merge operation.  If that
   7286 @c <en>happens, you should resolve it before committing the
   7287 @c <en>new revision.  @xref{Conflicts example}.
   7288 Um conflito pode resultar de uma operao de mesclagem.
   7289 Se isto acontecer, voc deve resolver isto antes de
   7290 efetivar a nova reviso.  @xref{Exemplo de conflitos}.
   7291 
   7292 @c <en>If your source files contain keywords (@pxref{Keyword substitution}),
   7293 @c <en>you might be getting more conflicts than strictly necessary.  See
   7294 @c <en>@ref{Merging and keywords}, for information on how to avoid this.
   7295 Se seu cdigo fonte contm palavras-chave
   7296 (@pxref{Substituio de palavra-chave}), voc deve
   7297 obter mais conflitos que os ???strictly necessary???.
   7298 Veja em @ref{Mesclagem e palavras-chave}, para saber
   7299 como evitar isto.
   7300 
   7301 @c <en>The @code{checkout} command also supports the @samp{-j @var{branchname}} flag.  The
   7302 @c <en>same effect as above could be achieved with this:
   7303 O comando @code{checkout} tambm suporta a opo
   7304 @samp{-j @var{branchname}}.  O mesmo efeito que o visto
   7305 logo acima pode ser obtido com isto:
   7306 
   7307 @example
   7308 $ cvs checkout -j R1fix mod
   7309 $ cvs commit -m "Included R1fix"
   7310 @end example
   7311 
   7312 @c <en>It should be noted that @code{update -j @var{tagname}} will also work but may
   7313 @c <en>not produce the desired result.  @xref{Merging adds and removals}, for more.
   7314 Observe que o @code{update -j @var{tagname}} tambm vai
   7315 funcionar mas pode no produzir o efeito desejado.
   7316 @xref{Mesclando adicionados e removidos}, para mais informaes.
   7317 
   7318 @c <en>@node Merging more than once
   7319 @node Mesclando mais de uma vez
   7320 @c <en>@section Merging from a branch several times
   7321 @section Mesclando a partir de um ramo vrias vezes
   7322 
   7323 @c <en>Continuing our example, the revision tree now looks
   7324 @c <en>like this:
   7325 Continuando nosso exemplo, a rvore de reviso agora
   7326 vai parecer com isto:
   7327 
   7328 @example
   7329 +-----+    +-----+    +-----+    +-----+    +-----+
   7330 ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   <- The main trunk
   7331 +-----+    +-----+    +-----+    +-----+    +-----+
   7332                 !                           *
   7333                 !                          *
   7334                 !   +---------+    +---------+
   7335 Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !
   7336                     +---------+    +---------+
   7337 @end example
   7338 
   7339 @noindent
   7340 @c <en>where the starred line represents the merge from the
   7341 @c <en>@samp{R1fix} branch to the main trunk, as just
   7342 @c <en>discussed.
   7343 Onde a linha de asteriscos representa a mescla entre o
   7344 ramo @samp{R1fix} e o tronco principal, como acabamos
   7345 de ver.
   7346 
   7347 @c <en>Now suppose that development continues on the
   7348 @c <en>@samp{R1fix} branch:
   7349 Agora suponha que o desenvolvimento continua no ramo @samp{R1fix}:
   7350 
   7351 @example
   7352 +-----+    +-----+    +-----+    +-----+    +-----+
   7353 ! 1.1 !----! 1.2 !----! 1.3 !----! 1.4 !----! 1.5 !   <- The main trunk
   7354 +-----+    +-----+    +-----+    +-----+    +-----+
   7355                 !                           *
   7356                 !                          *
   7357                 !   +---------+    +---------+    +---------+
   7358 Branch R1fix -> +---! 1.2.2.1 !----! 1.2.2.2 !----! 1.2.2.3 !
   7359                     +---------+    +---------+    +---------+
   7360 @end example
   7361 
   7362 @noindent
   7363 @c <en>and then you want to merge those new changes onto the
   7364 @c <en>main trunk.  If you just use the @code{cvs update -j
   7365 @c <en>R1fix m.c} command again, @sc{cvs} will attempt to
   7366 @c <en>merge again the changes which you have already merged,
   7367 @c <en>which can have undesirable side effects.
   7368 e ento voc quer mesclar as novas mudanas dentro do
   7369 tronco principal.  Se voc usar simplesmente o comando
   7370 @code{cvs update -j R1fix m.c} de novo, o @sc{cvs} vai
   7371 tentar mesclar de novo as mudanas que voc j mesclou,
   7372 o que pode gerar efeitos indesejados.
   7373 
   7374 @c <en>So instead you need to specify that you only want to
   7375 @c <en>merge the changes on the branch which have not yet been
   7376 @c <en>merged into the trunk.  To do that you specify two
   7377 @c <en>@samp{-j} options, and @sc{cvs} merges the changes from
   7378 @c <en>the first revision to the second revision.  For
   7379 @c <en>example, in this case the simplest way would be
   7380 Ento, ao invs disto, voc precisa especificar que voc
   7381 quer apenas mesclar no tronco as mudanas que ainda no
   7382 foram mescladas.  Para fazer isto voc especifica duas
   7383 opes @samp{-j}, e o @sc{cvs} mescla as mudanas da
   7384 primeira reviso na segunda reviso.  Por exemplo,
   7385 neste caso a forma mais simples ser
   7386 
   7387 @example
   7388 cvs update -j 1.2.2.2 -j R1fix m.c    # @r{Merge changes from 1.2.2.2 to the}
   7389                                       # @r{head of the R1fix branch}
   7390 @end example
   7391 
   7392 @c <en>The problem with this is that you need to specify the
   7393 @c <en>1.2.2.2 revision manually.  A slightly better approach
   7394 @c <en>might be to use the date the last merge was done:
   7395 O problema com isto  que voc precisa especificar a
   7396 reviso 1.2.2.2 manualmente.  Uma abordagem um pouco
   7397 melhor seria usar a data em que a ltima mesclagem foi
   7398 feita:
   7399 
   7400 @example
   7401 cvs update -j R1fix:yesterday -j R1fix m.c
   7402 @end example
   7403 
   7404 @c <en>Better yet, tag the R1fix branch after every merge into
   7405 @c <en>the trunk, and then use that tag for subsequent merges:
   7406 Ou ainda melhor, etiquete o ramo R1fix depois de cada
   7407 mesclagem no tronco, e ento use a etiqueta para
   7408 mesclagens subseqentes:
   7409 
   7410 @example
   7411 cvs update -j merged_from_R1fix_to_trunk -j R1fix m.c
   7412 @end example
   7413 
   7414 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   7415 @c <en>@node Merging two revisions
   7416 @node Mesclando duas revises
   7417 @c <en>@section Merging differences between any two revisions
   7418 @section Mesclando diferenas entre duas revises quaisquer
   7419 @c <en>@cindex Merging two revisions
   7420 @cindex Mesclando duas revises
   7421 @c <en>@cindex Revisions, merging differences between
   7422 @cindex Revises, mesclando diferenas entre
   7423 @c <en>@cindex Differences, merging
   7424 @cindex Diferenas, mesclando
   7425 
   7426 @c <en>With two @samp{-j @var{revision}} flags, the @code{update}
   7427 @c <en>(and @code{checkout}) command can merge the differences
   7428 @c <en>between any two revisions into your working file.
   7429 Com duas opes @samp{-j @var{reviso}}, o comando @code{update}
   7430 (e @code{checkout}) pode mesclar as diferenas entre
   7431 quaisquer duas revises no arquivo do diretrio de trabalho.
   7432 
   7433 @c <en>@cindex Undoing a change
   7434 @cindex Desfazendo uma alterao
   7435 @c <en>@cindex Removing a change
   7436 @cindex Removendo uma alterao
   7437 @example
   7438 $ cvs update -j 1.5 -j 1.3 backend.c
   7439 @end example
   7440 
   7441 @noindent
   7442 @c <en>will undo all changes made between revision
   7443 @c <en>1.3 and 1.5.  Note the order of the revisions!
   7444 vai desfazer todas as alteraes feitas entre as
   7445 revises 1.3 e 1.5.  Observe a ordem das revises!
   7446 
   7447 @c <en>If you try to use this option when operating on
   7448 @c <en>multiple files, remember that the numeric revisions will
   7449 @c <en>probably be very different between the various files.
   7450 @c <en>You almost always use symbolic
   7451 @c <en>tags rather than revision numbers when operating on
   7452 @c <en>multiple files.
   7453 Se voc tentar usar esta opo quando estiver agindo em
   7454 vrios arquivos, lembre-se que as revises numricas
   7455 provavelmente vo ser bastante diferentes nos vrios
   7456 arquivos.  Voc vai quase sempre usar etiquetas
   7457 simblicas ao invs de nmeros de reviso quando
   7458 estiver operando em vrios arquivos.
   7459 
   7460 @c <en>@cindex Restoring old version of removed file
   7461 @cindex Recuperando uma verso antiga de um arquivo removido
   7462 @c <en>@cindex Resurrecting old version of dead file
   7463 @cindex Ressucitando uma verso antiga de um arquivo morto
   7464 @c <en>Specifying two @samp{-j} options can also undo file
   7465 @c <en>removals or additions.  For example, suppose you have
   7466 @c <en>a file
   7467 @c <en>named @file{file1} which existed as revision 1.1, and
   7468 @c <en>you then removed it (thus adding a dead revision 1.2).
   7469 @c <en>Now suppose you want to add it again, with the same
   7470 @c <en>contents it had previously.  Here is how to do it:
   7471 Ao especificar duas opes @samp{-j} voc pode tambm
   7472 desfazer uma remoo ou adio de arquivo.  Por
   7473 exemplo, suponhao que voc tem um arquivo chamado
   7474 @file{file1} que existia numa reviso 1.1, e voc
   7475 removeu ele (adicionando ento uma reviso morta 1.2).
   7476 Agora suponha que voc quer adicion-lo novamente, com
   7477 o mesmo contedo que ele tinha anteriormente.  Aqui
   7478 est como fazer isto:
   7479 
   7480 @example
   7481 $ cvs update -j 1.2 -j 1.1 file1
   7482 U file1
   7483 $ cvs commit -m test
   7484 Checking in file1;
   7485 /tmp/cvs-sanity/cvsroot/first-dir/file1,v  <--  file1
   7486 new revision: 1.3; previous revision: 1.2
   7487 done
   7488 $
   7489 @end example
   7490 
   7491 @c <en>@node Merging adds and removals
   7492 @node Mesclando adicionados e removidos
   7493 @c <en>@section Merging can add or remove files
   7494 @section Mesclar pode adicionar ou remover arquivos
   7495 
   7496 @c <en>If the changes which you are merging involve removing
   7497 @c <en>or adding some files, @code{update -j} will reflect
   7498 @c <en>such additions or removals.
   7499 Se as mudanas que voc est mesclando envolvem remover
   7500 ou adicionar alguns arquivos, @code{update -j} vai
   7501 resultar em algumas adies ou remoes.
   7502 
   7503 @c FIXME: This example needs a lot more explanation.
   7504 @c We also need other examples for some of the other
   7505 @c cases (not all--there are too many--as long as we present a
   7506 @c coherent general principle).
   7507 @c <en>For example:
   7508 Por exemplo:
   7509 @example
   7510 cvs update -A
   7511 touch a b c
   7512 cvs add a b c ; cvs ci -m "added" a b c
   7513 cvs tag -b branchtag
   7514 cvs update -r branchtag
   7515 touch d ; cvs add d
   7516 rm a ; cvs rm a
   7517 cvs ci -m "added d, removed a"
   7518 cvs update -A
   7519 cvs update -jbranchtag
   7520 @end example
   7521 
   7522 @c <en>After these commands are executed and a @samp{cvs commit} is done,
   7523 @c <en>file @file{a} will be removed and file @file{d} added in the main branch.
   7524 Depois destes comandos terem sido executados e um
   7525 @samp{cvs commit} ser feito, o arquivo @file{a} vai ser
   7526 removido e o arquivo @file{d} adicionado no ramo principal.
   7527 @c (which was determined by trying it)
   7528 
   7529 @c <en>Note that using a single static tag (@samp{-j @var{tagname}})
   7530 @c <en>rather than a dynamic tag (@samp{-j @var{branchname}}) to merge
   7531 @c <en>changes from a branch will usually not remove files which were removed on the
   7532 @c <en>branch since @sc{cvs} does not automatically add static tags to dead revisions.
   7533 @c <en>The exception to this rule occurs when
   7534 @c <en>a static tag has been attached to a dead revision manually.  Use the branch tag
   7535 @c <en>to merge all changes from the branch or use two static tags as merge endpoints
   7536 @c <en>to be sure that all intended changes are propagated in the merge.
   7537 Observe que ao se usar uma nica etiqueta esttica
   7538 (@samp{-j @var{tagname}}) ao invs de uma etiqueta
   7539 dinmica (@samp{-j @var{branchname}}) para mesclar
   7540 mudanas a partir de um ramo normalmente no vai
   7541 remover arquivos que foram removidos do ramo, j que o
   7542 @sc{cvs} no adiona etiquetas estticas a revises
   7543 mortas.  A exceo a esta regra ocorre quando uma
   7544 etiqueta esttica foi colocada numa reviso morta
   7545 manualmente.  Use a etiqueta do ramo para mesclar todas
   7546 as mudanas a partir do ramo ou use duas etiquetas
   7547 estticas como limites da mescla para ter certeza que
   7548 todas as mudanas pretendidas vo ser propagadas na mesclagem.
   7549 
   7550 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   7551 @c <en>@node Merging and keywords
   7552 @node Mesclagem e palavras-chave
   7553 @c <en>@section Merging and keywords
   7554 @section Mesclagem e palavras-chave
   7555 @c <en>@cindex Merging, and keyword substitution
   7556 @cindex Mesclagem, e substituio de palavra-chave
   7557 @c <en>@cindex Keyword substitution, and merging
   7558 @cindex Substituio de palavra-chave, e mesclagem
   7559 @c <en>@cindex -j (merging branches), and keyword substitution
   7560 @cindex -j (mesclando ramos), e substituio de palavra-chave
   7561 @c <en>@cindex -kk, to avoid conflicts during a merge
   7562 @cindex -kk, para evitar conflitos durante uma mesclagem
   7563 
   7564 @c <en>If you merge files containing keywords (@pxref{Keyword
   7565 @c <en>substitution}), you will normally get numerous
   7566 @c <en>conflicts during the merge, because the keywords are
   7567 @c <en>expanded differently in the revisions which you are
   7568 @c <en>merging.
   7569 Se voc mescla arquivos contendo palavras-chave
   7570 (@pxref{Substituio de palavra-chave}), voc
   7571 normalmente vai ter muitos conflitos durante a
   7572 mesclagem, j que as palavras-chave so expandidas de
   7573 forma diferente nas revises que voc est mesclando.
   7574 
   7575 @c <en>Therefore, you will often want to specify the
   7576 @c <en>@samp{-kk} (@pxref{Substitution modes}) switch to the
   7577 @c <en>merge command line.  By substituting just the name of
   7578 @c <en>the keyword, not the expanded value of that keyword,
   7579 @c <en>this option ensures that the revisions which you are
   7580 @c <en>merging will be the same as each other, and avoid
   7581 @c <en>spurious conflicts.
   7582 Portanto, voc vai freqentemente querer especificar a opo
   7583 @samp{-kk} (@pxref{Modos de substituio}) na linha de
   7584 comando do merge.  Simplesmente substituindo o nome da
   7585 palavra-chave, e no o valor expandido dela, vai
   7586 garantir que as revises que voc vai estar mesclando
   7587 ???will be the same as each other???, e assim evitar
   7588 conflitos falsos.
   7589 
   7590 @c <en>For example, suppose you have a file like this:
   7591 Por exemplo, suponha que voc tenha um arquivo como este:
   7592 
   7593 @example
   7594        +---------+
   7595       _! 1.1.2.1 !   <-  br1
   7596      / +---------+
   7597     /
   7598    /
   7599 +-----+    +-----+
   7600 ! 1.1 !----! 1.2 !
   7601 +-----+    +-----+
   7602 @end example
   7603 
   7604 @noindent
   7605 @c <en>and your working directory is currently on the trunk
   7606 @c <en>(revision 1.2).  Then you might get the following
   7607 @c <en>results from a merge:
   7608 E seu diretrio de trabalho est no momento no tronco
   7609 (reviso 1.2).  Ento pode acontecer de voc obter os
   7610 seguintes resultados de uma mescla:
   7611 
   7612 @example
   7613 $ cat file1
   7614 key $@splitrcskeyword{}Revision: 1.2 $
   7615 . . .
   7616 $ cvs update -j br1
   7617 U file1
   7618 RCS file: /cvsroot/first-dir/file1,v
   7619 retrieving revision 1.1
   7620 retrieving revision 1.1.2.1
   7621 Merging differences between 1.1 and 1.1.2.1 into file1
   7622 rcsmerge: warning: conflicts during merge
   7623 $ cat file1
   7624 @asis{}<<<<<<< file1
   7625 key $@splitrcskeyword{}Revision: 1.2 $
   7626 @asis{}=======
   7627 key $@splitrcskeyword{}Revision: 1.1.2.1 $
   7628 @asis{}>>>>>>> 1.1.2.1
   7629 . . .
   7630 @end example
   7631 
   7632 @c <en>What happened was that the merge tried to merge the
   7633 @c <en>differences between 1.1 and 1.1.2.1 into your working
   7634 @c <en>directory.  So, since the keyword changed from
   7635 @c <en>@code{Revision: 1.1} to @code{Revision: 1.1.2.1},
   7636 @c <en>@sc{cvs} tried to merge that change into your working
   7637 @c <en>directory, which conflicted with the fact that your
   7638 @c <en>working directory had contained @code{Revision: 1.2}.
   7639 O que aconteceu  que a mesclagem tentou mesclar as
   7640 diferenas entre 1.1 e 1.1.2.1 dentro de seu diretrio
   7641 de trabalho.  Ento, uma vez que a palavra-chave mudou
   7642 de @code{Revision: 1.1} para @code{Revision: 1.1.2.1},
   7643 o @sc{cvs} tentou mesclar esta mudana no seu diretrio
   7644 de trabalho, o que gerou um conflito com o fato de seu
   7645 diretrio de trabalho continha @code{Revision: 1.2}.
   7646 
   7647 @c <en>Here is what happens if you had used @samp{-kk}:
   7648 Isto  o que aconteceria se voc tivesse usado @samp{-kk}:
   7649 
   7650 @example
   7651 $ cat file1
   7652 key $@splitrcskeyword{}Revision: 1.2 $
   7653 . . .
   7654 $ cvs update -kk -j br1
   7655 U file1
   7656 RCS file: /cvsroot/first-dir/file1,v
   7657 retrieving revision 1.1
   7658 retrieving revision 1.1.2.1
   7659 Merging differences between 1.1 and 1.1.2.1 into file1
   7660 $ cat file1
   7661 key $@splitrcskeyword{}Revision$
   7662 . . .
   7663 @end example
   7664 
   7665 @c <en>What is going on here is that revision 1.1 and 1.1.2.1
   7666 @c <en>both expand as plain @code{Revision}, and therefore
   7667 @c <en>merging the changes between them into the working
   7668 @c <en>directory need not change anything.  Therefore, there
   7669 @c <en>is no conflict.
   7670 O que est acontecendo aqui  que ambas as revises 1.1
   7671 e 1.1.2.1 expandem em um simples @code{Revision}, e
   7672 consequentemente, no h nenhuma mudana para mesclar entre elas no
   7673 diretrio de trabalho.  Portanto, no h conflito.
   7674 
   7675 @c <en>@strong{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a
   7676 @c <en>major problem with using @samp{-kk} on merges.  Namely, @samp{-kk}
   7677 @c <en>overrode any default keyword expansion mode set in the archive file in
   7678 @c <en>the repository.  This could, unfortunately for some users, cause data
   7679 @c <en>corruption in binary files (with a default keyword expansion mode set
   7680 @c <en>to @samp{-kb}).  Therefore, when a repository contained binary files,
   7681 @c <en>conflicts had to be dealt with manually rather than using @samp{-kk} in
   7682 @c <en>a merge command.}
   7683 @strong{WARNING: Em verses do @sc{cvs} anteriores 
   7684 1.12.2, existia um grande problema ao usar @samp{-kk}
   7685 em mesclagens.  A saber, @samp{-kk} sobreescrevia
   7686 qualquer modo de expanso de palavra-chave padro
   7687 ajustado no arquivo do repositrio.  Isto podia,
   7688 infelizmente para alguns usurios, corromper arquivos
   7689 binrios (com um modo de expanso de palavra-chave
   7690 padro em @samp{-kb}).  Portanto, quando um repositrio
   7691 contm arquivos binrios, conflitos tm que ser
   7692 tratados manualmente ao invs de serem tratados com
   7693 @samp{-kk} no comando de mescla.}
   7694 
   7695 @c <en>In @sc{cvs} version 1.12.2 and later, the keyword expansion mode
   7696 @c <en>provided on the command line to any @sc{cvs} command no longer
   7697 @c <en>overrides the @samp{-kb} keyword expansion mode setting for binary
   7698 @c <en>files, though it will still override other default keyword expansion
   7699 @c <en>modes.  You can now safely merge using @samp{-kk} to avoid spurious conflicts
   7700 @c <en>on lines containing RCS keywords, even when your repository contains
   7701 @c <en>binary files.
   7702 Da verso 1.12.2 para frente do @sc{cvs}, a expanso
   7703 por palavra-chave disponvel na linha de comando para
   7704 qualquer comando do @sc{cvs} no mais sobreescreve o
   7705 modo de expanso de palavra-chave @samp{-kb} para
   7706 arquivos binrios, embora ainda sobreescreva os outros
   7707 modos de expanso de palavra-chave.  Voc pode agora
   7708 mesclar com tranquilidade usando @samp{-kk} para evitar
   7709 conflitos falsos em linhas contendo palavras-chave do
   7710 RCS, mesmo quando seu repositrio contm arquivos binrios.
   7711 
   7712 @c ---------------------------------------------------------------------
   7713 @c <en>@node Recursive behavior
   7714 @node Comportamento recursivo
   7715 @c <en>@chapter Recursive behavior
   7716 @chapter Comportamento recursivo
   7717 @c <en>@cindex Recursive (directory descending)
   7718 @cindex Recursivo (directory descending)
   7719 @c <en>@cindex Directory, descending
   7720 @cindex Directory, descending
   7721 @c <en>@cindex Descending directories
   7722 @cindex Descending directories
   7723 @c <en>@cindex Subdirectories
   7724 @cindex Subdiretrios
   7725 
   7726 @c <en>Almost all of the subcommands of @sc{cvs} work
   7727 @c <en>recursively when you specify a directory as an
   7728 @c <en>argument.  For instance, consider this directory
   7729 @c <en>structure:
   7730 Quase todos os subcomandos do @sc{cvs} trabalham de
   7731 forma recursiva quando voc passa um diretrio como
   7732 argumento.  Por exemplo, considere esta estrutura:
   7733 
   7734 @example
   7735       @code{$HOME}
   7736         |
   7737         +--@t{tc}
   7738         |   |
   7739             +--@t{CVS}
   7740 @c <en>            |      (internal @sc{cvs} files)
   7741             |      (internal @sc{cvs} files)
   7742             +--@t{Makefile}
   7743             +--@t{backend.c}
   7744             +--@t{driver.c}
   7745             +--@t{frontend.c}
   7746             +--@t{parser.c}
   7747             +--@t{man}
   7748             |    |
   7749             |    +--@t{CVS}
   7750 @c <en>            |    |  (internal @sc{cvs} files)
   7751             |    |  (internal @sc{cvs} files)
   7752             |    +--@t{tc.1}
   7753             |
   7754             +--@t{testing}
   7755                  |
   7756                  +--@t{CVS}
   7757 @c <en>                 |  (internal @sc{cvs} files)
   7758                  |  (internal @sc{cvs} files)
   7759                  +--@t{testpgm.t}
   7760                  +--@t{test2.t}
   7761 @end example
   7762 
   7763 @noindent
   7764 @c <en>If @file{tc} is the current working directory, the
   7765 @c <en>following is true:
   7766 Se @file{tc}  o diretrio atual, ento  verdade que:
   7767 
   7768 @itemize @bullet
   7769 @item
   7770 @c <en>@samp{cvs update testing} is equivalent to
   7771 @samp{cvs update testing}  equivalente a
   7772 
   7773 @example
   7774 cvs update testing/testpgm.t testing/test2.t
   7775 @end example
   7776 
   7777 @item
   7778 @c <en>@samp{cvs update testing man} updates all files in the
   7779 @c <en>subdirectories
   7780 @samp{cvs update testing man} atualiza todos os
   7781 arquivos nos subdiretrios
   7782 
   7783 @item
   7784 @c <en>@samp{cvs update .} or just @samp{cvs update} updates
   7785 @c <en>all files in the @code{tc} directory
   7786 @samp{cvs update .} ou simplesmente @samp{cvs update}
   7787 atualiza todos os arquivos no diretrio @code{tc}
   7788 @end itemize
   7789 
   7790 @c <en>If no arguments are given to @code{update} it will
   7791 @c <en>update all files in the current working directory and
   7792 @c <en>all its subdirectories.  In other words, @file{.} is a
   7793 @c <en>default argument to @code{update}.  This is also true
   7794 @c <en>for most of the @sc{cvs} subcommands, not only the
   7795 @c <en>@code{update} command.
   7796 Se nenhum argumento  dado ao @code{update} ele
   7797 atualiza todos os arquivos no diretrio atual e nos
   7798 seus subdiretrios recursivamente.  Em outras palavras,
   7799 O @file{.}  um argumento padro para o @code{update}.
   7800 O mesmo vale para a maioria dos subcomandos do
   7801 @sc{cvs}, e no apenas para o @code{update}.
   7802 
   7803 @c <en>The recursive behavior of the @sc{cvs} subcommands can be
   7804 @c <en>turned off with the @samp{-l} option.
   7805 @c <en>Conversely, the @samp{-R} option can be used to force recursion if
   7806 @c <en>@samp{-l} is specified in @file{~/.cvsrc} (@pxref{~/.cvsrc}).
   7807 O comportamento recursivo dos subcomandos do @sc{cvs}
   7808 pode ser desligado com a opo @samp{-l}.  De forma
   7809 oposta, a opo @samp{-R} pode ser usada para forar a
   7810 recurso se o @samp{-l} estiver especificado no
   7811 @file{~/.cvsrc} (@pxref{~/.cvsrc}).
   7812 
   7813 @example
   7814 $ cvs update -l         # @r{Don't update files in subdirectories}
   7815 @end example
   7816 
   7817 @c ---------------------------------------------------------------------
   7818 @c <en>@node Adding and removing
   7819 @node Adicionando e removendo
   7820 @c <en>@chapter Adding, removing, and renaming files and directories
   7821 @chapter Adicionando, removendo e renomeando arquivos e diretrios
   7822 
   7823 @c <en>In the course of a project, one will often add new
   7824 @c <en>files.  Likewise with removing or renaming, or with
   7825 @c <en>directories.  The general concept to keep in mind in
   7826 @c <en>all these cases is that instead of making an
   7827 @c <en>irreversible change you want @sc{cvs} to record the
   7828 @c <en>fact that a change has taken place, just as with
   7829 @c <en>modifying an existing file.  The exact mechanisms to do
   7830 @c <en>this in @sc{cvs} vary depending on the situation.
   7831 No decorrer de um projeto, normalmente se adicionam
   7832 arquivos.  Da mesma forma se remove e se renomeia.  E
   7833 tudo isto tambm para diretrios.  O conceito geral que
   7834 se deve ter em mente em todos estes casos  que ao
   7835 invs de fazer uma mudana irreversvel voc vai querer
   7836 que o @sc{cvs} registre o fato de que uma mudana
   7837 ocorreu, da mesma forma que  feito com a modificao
   7838 de um arquivo existente.  O mecanismo exato para se
   7839 fazer isto com o @sc{cvs} varia conforme o caso.
   7840 
   7841 @menu
   7842 @c <en>* Adding files::                Adding files
   7843 * Adicionando arquivos::          Adicionando arquivos
   7844 @c <en>* Removing files::              Removing files
   7845 * Removendo arquivos::            Removendo arquivos
   7846 @c <en>* Removing directories::        Removing directories
   7847 * Removendo diretrios::          Removendo diretrios
   7848 @c <en>* Moving files::                Moving and renaming files
   7849 * Movendo arquivos::              Movendo e renomeando arquivos
   7850 @c <en>* Moving directories::          Moving and renaming directories
   7851 * Movendo diretrios::            Movendo e renomeando diretrios
   7852 @end menu
   7853 
   7854 @c <en>@node Adding files
   7855 @node Adicionando arquivos
   7856 @c <en>@section Adding files to a directory
   7857 @section Adicionando arquivos a um diretrio
   7858 @c <en>@cindex Adding files
   7859 @cindex Adicionando arquivos
   7860 
   7861 @c <en>To add a new file to a directory, follow these steps.
   7862 Para adicionar um novo arquivo a um diretrio, siga
   7863 estes passos.
   7864 
   7865 @itemize @bullet
   7866 @item
   7867 @c <en>You must have a working copy of the directory.
   7868 @c <en>@xref{Getting the source}.
   7869 Voc deve ter uma cpia de trabalho do diretrio.
   7870 @xref{Obtendo os fontes}.
   7871 
   7872 @item
   7873 @c <en>Create the new file inside your working copy of the directory.
   7874 Crie o novo arquivo dentro da cpia local do diretrio.
   7875 
   7876 @item
   7877 @c <en>Use @samp{cvs add @var{filename}} to tell @sc{cvs} that you
   7878 @c <en>want to version control the file.  If the file contains
   7879 @c <en>binary data, specify @samp{-kb} (@pxref{Binary files}).
   7880 Use @samp{cvs add @var{filename}} para dizer ao
   7881 @sc{cvs} que voc quer fazer controle de verses no
   7882 arquivo.  Se o arquivo contm dados em binrio,
   7883 especifique @samp{-kb} (@pxref{Arquivos binrios}).
   7884 
   7885 @item
   7886 @c <en>Use @samp{cvs commit @var{filename}} to actually check
   7887 @c <en>in the file into the repository.  Other developers
   7888 @c <en>cannot see the file until you perform this step.
   7889 Use @samp{cvs commit @var{filename}} para de fato
   7890 colocar o arquivo no repositrio.  Outros
   7891 desenvolvedores no poderam ver o arquivo at que voc
   7892 tenha feito isto.
   7893 @end itemize
   7894 
   7895 @c <en>You can also use the @code{add} command to add a new
   7896 @c <en>directory.
   7897 Voc tambm pode usar o comando @code{add} para
   7898 adicionar um novo diretrio.
   7899 @c FIXCVS and/or FIXME: Adding a directory doesn't
   7900 @c require the commit step.  This probably can be
   7901 @c considered a CVS bug, but it is possible we should
   7902 @c warn people since this behavior probably won't be
   7903 @c changing right away.
   7904 
   7905 @c <en>Unlike most other commands, the @code{add} command is
   7906 @c <en>not recursive.  You cannot even type @samp{cvs add
   7907 @c <en>foo/bar}!  Instead, you have to
   7908 Ao contrrio da maioria dos outros comandos, o comando
   7909 @code{add} no  recursivo.  Voc no pode sequer digitar @samp{cvs add
   7910 foo/bar}!  Ao invs disso, voc tem que fazer
   7911 @c FIXCVS: This is, of course, not a feature.  It is
   7912 @c just that no one has gotten around to fixing "cvs add
   7913 @c foo/bar".
   7914 
   7915 @example
   7916 $ cd foo
   7917 $ cvs add bar
   7918 @end example
   7919 
   7920 @c <en>@cindex add (subcommand)
   7921 @cindex add (subcomando)
   7922 @c <en>@deffn Command {cvs add} [@code{-k} kflag] [@code{-m} message] files @dots{}
   7923 @deffn Comando {cvs add} [@code{-k} kflag] [@code{-m} mensagem] arquivos @dots{}
   7924 
   7925 @c <en>Schedule @var{files} to be added to the repository.
   7926 @c <en>The files or directories specified with @code{add} must
   7927 @c <en>already exist in the current directory.  To add a whole
   7928 @c <en>new directory hierarchy to the source repository (for
   7929 @c <en>example, files received from a third-party vendor), use
   7930 @c <en>the @code{import} command instead.  @xref{import}.
   7931 Agenda @var{arquivos} para serem adicionados ao repositrio.
   7932 Os arquivos ou diretrios especificados com @code{add}
   7933 j devem existir no diretrio atual.  Para adicionar
   7934 toda uma estrutura de diretrios nova ao repositrio
   7935 de fontes (por exemplo, arquivos recebidos de um
   7936 fornecedor terceiro), use o comando @code{import} ao
   7937 invs do @code{add}.  @xref{import}.
   7938 
   7939 @c <en>The added files are not placed in the source repository
   7940 @c <en>until you use @code{commit} to make the change
   7941 @c <en>permanent.  Doing an @code{add} on a file that was
   7942 @c <en>removed with the @code{remove} command will undo the
   7943 @c <en>effect of the @code{remove}, unless a @code{commit}
   7944 @c <en>command intervened.  @xref{Removing files}, for an
   7945 @c <en>example.
   7946 Os arquivos adicionados no so colocados no
   7947 repositrio de fontes at que voc use o @code{commit}
   7948 para tornar a mudana permanente.  Aplicar um
   7949 @code{add} num arquivo que foi removido com o comando
   7950 @code{remove} vai desfazer o efeito do @code{remove}, a
   7951 menos que haja um @code{commit} entre os dois.
   7952 @xref{Removendo arquivos}, para um exemplo.
   7953 
   7954 @c <en>The @samp{-k} option specifies the default way that
   7955 @c <en>this file will be checked out; for more information see
   7956 @c <en>@ref{Substitution modes}.
   7957 A opo @samp{-k} especifica a forma padro como este
   7958 arquivo vai ser ???checked out???; para mais
   7959 informaes veja @ref{Modos de substituio}.
   7960 
   7961 @c As noted in BUGS, -m is broken client/server (Nov
   7962 @c 96).  Also see testsuite log2-* tests.
   7963 @c <en>The @samp{-m} option specifies a description for the
   7964 @c <en>file.  This description appears in the history log (if
   7965 @c <en>it is enabled, @pxref{history file}).  It will also be
   7966 @c <en>saved in the version history inside the repository when
   7967 @c <en>the file is committed.  The @code{log} command displays
   7968 @c <en>this description.  The description can be changed using
   7969 @c <en>@samp{admin -t}.  @xref{admin}.  If you omit the
   7970 @c <en>@samp{-m @var{description}} flag, an empty string will
   7971 @c <en>be used.  You will not be prompted for a description.
   7972 A opo @samp{-m} especifica uma descrio para o
   7973 arquivo.  Esta descrio aparece no registro histrico (history log)
   7974 (se este estiver habilitado, @pxref{arquivo history (histrico)}).
   7975 Ela tambm vai ser guardada no histrico de verses
   7976 dentro do repositrio quando o arquivo 
   7977 ???committed???.  O comando @code{log} mostra esta
   7978 descrio.  A descrio pode ser alterada usando-se
   7979 @samp{admin -t}.  @xref{admin}.  Se voc omitir a opo
   7980 @samp{-m @var{description}}, uma string vazia vai ser
   7981 usada.  No vai ser pedido a voc uma descrio.
   7982 @end deffn
   7983 
   7984 @c <en>For example, the following commands add the file
   7985 @c <en>@file{backend.c} to the repository:
   7986 Por exemplo, os seguintes comandos adicionam o arquivo
   7987 @file{backend.c} ao repositrio:
   7988 
   7989 @c This example used to specify
   7990 @c     -m "Optimizer and code generation passes."
   7991 @c to the cvs add command, but that doesn't work
   7992 @c client/server (see log2 in sanity.sh).  Should fix CVS,
   7993 @c but also seems strange to document things which
   7994 @c don't work...
   7995 @example
   7996 $ cvs add backend.c
   7997 $ cvs commit -m "Early version. Not yet compilable." backend.c
   7998 @end example
   7999 
   8000 @c <en>When you add a file it is added only on the branch
   8001 @c <en>which you are working on (@pxref{Branching and merging}).  You can
   8002 @c <en>later merge the additions to another branch if you want
   8003 @c <en>(@pxref{Merging adds and removals}).
   8004 Quando voc adiciona um arquivo ele  adicionado apenas
   8005 no ramo no qual voc est trabalhando
   8006 (@pxref{Ramificando e mesclando}).  Voc pode mais
   8007 tarde mesclar as adies a outro ramo se voc quiser
   8008 (@pxref{Mesclando adicionados e removidos}).
   8009 @c Should we mention that earlier versions of CVS
   8010 @c lacked this feature (1.3) or implemented it in a buggy
   8011 @c way (well, 1.8 had many bugs in cvs update -j)?
   8012 @c Should we mention the bug/limitation regarding a
   8013 @c file being a regular file on one branch and a directory
   8014 @c on another?
   8015 @c FIXME: This needs an example, or several, here or
   8016 @c elsewhere, for it to make much sense.
   8017 @c Somewhere we need to discuss the aspects of death
   8018 @c support which don't involve branching, I guess.
   8019 @c Like the ability to re-create a release from a tag.
   8020 
   8021 @c ---------------------------------------------------------------------
   8022 @c <en>@node Removing files
   8023 @node Removendo arquivos
   8024 @c <en>@section Removing files
   8025 @section Removendo arquivos
   8026 @c <en>@cindex Removing files
   8027 @cindex Removendo arquivos
   8028 @c <en>@cindex Deleting files
   8029 @cindex Apagando arquivos
   8030 
   8031 @c FIXME: this node wants to be split into several
   8032 @c smaller nodes.  Could make these children of
   8033 @c "Adding and removing", probably (death support could
   8034 @c be its own section, for example, as could the
   8035 @c various bits about undoing mistakes in adding and
   8036 @c removing).
   8037 @c <en>Directories change.  New files are added, and old files
   8038 @c <en>disappear.  Still, you want to be able to retrieve an
   8039 @c <en>exact copy of old releases.
   8040 Diretrios mudam.  Novos arquivos so adicionados, e
   8041 arquivos velhos somem.  Ainda assim, voc vai querer
   8042 poder recuperar uma cpia exata de releases antigas.
   8043 
   8044 @c <en>Here is what you can do to remove a file,
   8045 @c <en>but remain able to retrieve old revisions:
   8046 Aqui est o que voc pode fazer para remover um
   8047 arquivo, mas continuar sendo capaz de recuperar
   8048 revises antigas dele:
   8049 
   8050 @itemize @bullet
   8051 @c FIXME: should probably be saying something about
   8052 @c having a working directory in the first place.
   8053 @item
   8054 @c <en>Make sure that you have not made any uncommitted
   8055 @c <en>modifications to the file.  @xref{Viewing differences},
   8056 @c <en>for one way to do that.  You can also use the
   8057 @c <en>@code{status} or @code{update} command.  If you remove
   8058 @c <en>the file without committing your changes, you will of
   8059 @c <en>course not be able to retrieve the file as it was
   8060 @c <en>immediately before you deleted it.
   8061 Certifique-se de no ter feito nenhuma alterao que
   8062 falte fazer ???commit??? nele.  @xref{Vendo as diferenas},
   8063 para uma forma de fazer isto.  Voc tambm pode usar o comando
   8064 @code{status} ou o @code{update}.  Se voc remove o
   8065 arquivo sem fazer ???commit??? nas suas mudanas,
   8066 obviamente voc no vai ser capaz de recuperar o
   8067 arquivo na forma como ele era imediatamente antes da remoo.
   8068 
   8069 @item
   8070 @c <en>Remove the file from your working copy of the directory.
   8071 @c <en>You can for instance use @code{rm}.
   8072 Remova o arquivo da cpia local do seu diretrio.
   8073 Voc pode usar o @code{rm}, por exemplo.
   8074 
   8075 @item
   8076 @c <en>Use @samp{cvs remove @var{filename}} to tell @sc{cvs} that
   8077 @c <en>you really want to delete the file.
   8078 Use @samp{cvs remove @var{filename}} para dizer ao
   8079 @sc{cvs} que voc quer realmente apagar o arquivo.
   8080 
   8081 @item
   8082 @c <en>Use @samp{cvs commit @var{filename}} to actually
   8083 @c <en>perform the removal of the file from the repository.
   8084 Use @samp{cvs commit @var{filename}} para realizar a
   8085 remoo de fato do arquivo do repositrio.
   8086 @end itemize
   8087 
   8088 @c FIXME: Somehow this should be linked in with a more
   8089 @c general discussion of death support.  I don't know
   8090 @c whether we want to use the term "death support" or
   8091 @c not (we can perhaps get by without it), but we do
   8092 @c need to discuss the "dead" state in "cvs log" and
   8093 @c related subjects.  The current discussion is
   8094 @c scattered around, and not xref'd to each other.
   8095 @c FIXME: I think this paragraph wants to be moved
   8096 @c later down, at least after the first example.
   8097 @c <en>When you commit the removal of the file, @sc{cvs}
   8098 @c <en>records the fact that the file no longer exists.  It is
   8099 @c <en>possible for a file to exist on only some branches and
   8100 @c <en>not on others, or to re-add another file with the same
   8101 @c <en>name later.  @sc{cvs} will correctly create or not create
   8102 @c <en>the file, based on the @samp{-r} and @samp{-D} options
   8103 @c <en>specified to @code{checkout} or @code{update}.
   8104 Quando voc faz ???commit??? na remoo do arquivo, o
   8105 @sc{cvs} registra o fato de que o arquivo no existe
   8106 mais.   possvel para um arquivo existir apenas em
   8107 alguns ramos e no em outros, ou re-adicionar outro
   8108 arquivo com o mesmo nome depois.  O @sc{cvs} vai de
   8109 forma correta criar ou no criar o arquivo, baseado nas
   8110 opes @samp{-r} e @samp{-D} especificadas no
   8111 @code{checkout} ou no @code{update}.
   8112 
   8113 @c FIXME: This style seems to clash with how we
   8114 @c document things in general.
   8115 @c <en>@cindex Remove (subcommand)
   8116 @cindex Remove (subcomando)
   8117 @c <en>@deffn Command {cvs remove} [options] files @dots{}
   8118 @deffn Comando {cvs remove} [options] files @dots{}
   8119 
   8120 @c <en>Schedule file(s) to be removed from the repository
   8121 @c <en>(files which have not already been removed from the
   8122 @c <en>working directory are not processed).  This command
   8123 @c <en>does not actually remove the file from the repository
   8124 @c <en>until you commit the removal.  For a full list of
   8125 @c <en>options, see @ref{Invoking CVS}.
   8126 Prepara arquivo(s) para ser removido do reporitrio
   8127 (arquivos que ainda no foram removidos do diretrio de
   8128 trabalho no so processados).  Na verdade este comando
   8129 no remove o arquivo do repositrio at que voc faa
   8130 ???commit??? no removido.  Para uma lista completa de
   8131 opes, veja em @ref{Chamando o CVS}.
   8132 @end deffn
   8133 
   8134 @c <en>Here is an example of removing several files:
   8135 Aqui est um exemplo de remoo de vrios arquivos:
   8136 
   8137 @example
   8138 $ cd test
   8139 $ rm *.c
   8140 $ cvs remove
   8141 cvs remove: Removing .
   8142 cvs remove: scheduling a.c for removal
   8143 cvs remove: scheduling b.c for removal
   8144 cvs remove: use 'cvs commit' to remove these files permanently
   8145 $ cvs ci -m "Removed unneeded files"
   8146 cvs commit: Examining .
   8147 cvs commit: Committing .
   8148 @end example
   8149 
   8150 @c <en>As a convenience you can remove the file and @code{cvs
   8151 @c <en>remove} it in one step, by specifying the @samp{-f}
   8152 @c <en>option.  For example, the above example could also be
   8153 @c <en>done like this:
   8154 Por convenincia voc pode remover o arquivo e fazer @code{cvs
   8155 remove} nele de uma s vez, especificando a opo
   8156 @samp{-f}.  Por exemplo, o exemplo acima poderia ser
   8157 feito assim:
   8158 
   8159 @example
   8160 $ cd test
   8161 $ cvs remove -f *.c
   8162 cvs remove: scheduling a.c for removal
   8163 cvs remove: scheduling b.c for removal
   8164 cvs remove: use 'cvs commit' to remove these files permanently
   8165 $ cvs ci -m "Removed unneeded files"
   8166 cvs commit: Examining .
   8167 cvs commit: Committing .
   8168 @end example
   8169 
   8170 @c <en>If you execute @code{remove} for a file, and then
   8171 @c <en>change your mind before you commit, you can undo the
   8172 @c <en>@code{remove} with an @code{add} command.
   8173 Se voc executa @code{remove} para um arquivo, e ento
   8174 muda de idia antes do ???commit???, voc pode desfazer
   8175 o @code{remove} com um @code{add}.
   8176 @ignore
   8177 @c is this worth saying or not?  Somehow it seems
   8178 @c confusing to me.
   8179 @c <en>Of course,
   8180 @c <en>since you have removed your copy of file in the working
   8181 @c <en>directory, @sc{cvs} does not necessarily bring back the
   8182 @c <en>contents of the file from right before you executed
   8183 @c <en>@code{remove}; instead it gets the file from the
   8184 @c <en>repository again.
   8185 Obviamente, uma vez que voc removeu a sua cpia local
   8186 do arquivo no diretrio de trabalho, o @sc{cvs} no vai
   8187 trazer de volta necessariamente o contedo do arquivo
   8188 exatamente como estava antes do @code{remove}; No lugar
   8189 disto ele vai buscar o arquivo no repositrio de novo.
   8190 @end ignore
   8191 
   8192 @c FIXME: what if you change your mind after you commit
   8193 @c it?  (answer is also "cvs add" but we don't say that...).
   8194 @c We need some index entries for thinks like "undoing
   8195 @c removal" too.
   8196 
   8197 @example
   8198 $ ls
   8199 CVS   ja.h  oj.c
   8200 $ rm oj.c
   8201 $ cvs remove oj.c
   8202 cvs remove: scheduling oj.c for removal
   8203 cvs remove: use 'cvs commit' to remove this file permanently
   8204 $ cvs add oj.c
   8205 U oj.c
   8206 cvs add: oj.c, version 1.1.1.1, resurrected
   8207 @end example
   8208 
   8209 @c <en>If you realize your mistake before you run the
   8210 @c <en>@code{remove} command you can use @code{update} to
   8211 @c <en>resurrect the file:
   8212 Se voc notar  o erro antes de rodar o comando
   8213 @code{remove} voc pode usar o @code{update} para
   8214 resuscitar o arquivo:
   8215 
   8216 @example
   8217 $ rm oj.c
   8218 $ cvs update oj.c
   8219 cvs update: warning: oj.c was lost
   8220 U oj.c
   8221 @end example
   8222 
   8223 @c <en>When you remove a file it is removed only on the branch
   8224 @c <en>which you are working on (@pxref{Branching and merging}).  You can
   8225 @c <en>later merge the removals to another branch if you want
   8226 @c <en>(@pxref{Merging adds and removals}).
   8227 Quando voc remove um arquivo ele  removido apenas do
   8228 ramo no qual voc est trabalhando (@pxref{Ramificando
   8229 e mesclando}).  Voc pode depois mesclar as remoes em
   8230 outro ramo se quiser
   8231 (@pxref{Mesclando adicionados e removidos}).
   8232 
   8233 @c <en>@node Removing directories
   8234 @node Removendo diretrios
   8235 @c <en>@section Removing directories
   8236 @section Removendo diretrios
   8237 @c <en>@cindex Removing directories
   8238 @cindex Removendo diretrios
   8239 @c <en>@cindex Directories, removing
   8240 @cindex Diretrios, removendo
   8241 
   8242 @c <en>In concept removing directories is somewhat similar to
   8243 @c <en>removing files---you want the directory to not exist in
   8244 @c <en>your current working directories, but you also want to
   8245 @c <en>be able to retrieve old releases in which the directory
   8246 @c <en>existed.
   8247 Conceitualmente, remover diretrios  num certo sentido
   8248 similar a remover arquivos---voc quer que o diretrio
   8249 no exista mais  no seu diretrio de trabalho atual,
   8250 mas voc tambm quer ser capaz de recuperar releases
   8251 antigas nas quais o diretrio existe.
   8252 
   8253 @c <en>The way that you remove a directory is to remove all
   8254 @c <en>the files in it.  You don't remove the directory
   8255 @c <en>itself; there is no way to do that.
   8256 @c <en>Instead you specify the @samp{-P} option to
   8257 @c <en>@code{cvs update} or @code{cvs checkout},
   8258 @c <en>which will cause @sc{cvs} to remove empty
   8259 @c <en>directories from working directories.
   8260 @c <en>(Note that @code{cvs export} always removes empty directories.)
   8261 @c <en>Probably the
   8262 @c <en>best way to do this is to always specify @samp{-P}; if
   8263 @c <en>you want an empty directory then put a dummy file (for
   8264 @c <en>example @file{.keepme}) in it to prevent @samp{-P} from
   8265 @c <en>removing it.
   8266 A forma de remover um diretrio  removendo todos os
   8267 arquivos nele.  Voc no remove o diretrio mesmo; no
   8268 h jeito de fazer isto.  Ao invs disto voc especifica
   8269 a opo @samp{-P} no @code{cvs update} ou no @code{cvs
   8270 checkout}, que vai fazer com que o @sc{cvs} remova
   8271 diretrios vazios de seus diretrios de
   8272 trabalho.  (Observe que o @code{cvs export} sempre
   8273 remove diretrios vazios.) Provavelmente, a melhor
   8274 maneira de fazer isto  sempre usar o @samp{-P}; se
   8275 voc quiser manter um diretrio vazio, ponha um arquivo
   8276 sem importncia nele (por exemplo @file{.keepme}) para
   8277 evitar que o @samp{-P} apague o diretrio.
   8278 
   8279 @c I'd try to give a rationale for this, but I'm not
   8280 @c sure there is a particularly convincing one.  What
   8281 @c we would _like_ is for CVS to do a better job of version
   8282 @c controlling whether directories exist, to eliminate the
   8283 @c need for -P and so that a file can be a directory in
   8284 @c one revision and a regular file in another.
   8285 @c <en>Note that @samp{-P} is implied by the @samp{-r} or @samp{-D}
   8286 @c <en>options of @code{checkout}.  This way
   8287 @c <en>@sc{cvs} will be able to correctly create the directory
   8288 @c <en>or not depending on whether the particular version you
   8289 @c <en>are checking out contains any files in that directory.
   8290 Observe que o @samp{-P} est implcito nas opes
   8291 @samp{-r} ou @samp{-D} do @code{checkout}.  Desta forma
   8292 o @sc{cvs} vai ser capaz de criar ou no criar corretamente o
   8293 diretrio dependendo de ter ou no algum arquivo na
   8294 verso que voc est fazendo ???check out???.
   8295 
   8296 @c ---------------------------------------------------------------------
   8297 @c <en>@node Moving files
   8298 @node Movendo arquivos
   8299 @c <en>@section Moving and renaming files
   8300 @section Movendo e renomeando arquivos
   8301 @c <en>@cindex Moving files
   8302 @cindex Movendo arquivos
   8303 @c <en>@cindex Renaming files
   8304 @cindex Renomeando arquivos
   8305 @c <en>@cindex Files, moving
   8306 @cindex Arquivos, movendo
   8307 
   8308 @c <en>Moving files to a different directory or renaming them
   8309 @c <en>is not difficult, but some of the ways in which this
   8310 @c <en>works may be non-obvious.  (Moving or renaming a
   8311 @c <en>directory is even harder.  @xref{Moving directories}.).
   8312 Mover arquivos para um diretrio diferente ou
   8313 renome-los no  difcil, mas algumas das formas de
   8314 faze-lo podem no ser bvias.  (Mover ou renomear
   8315 diretrios  ainda mais difcil.  @xref{Movendo
   8316 diretrios}.).
   8317 
   8318 @c <en>The examples below assume that the file @var{old} is renamed to
   8319 @c <en>@var{new}.
   8320 O exemplos abaixo assumem que o arquivo @var{antigo} foi
   8321 renomeado para @var{novo}.
   8322 
   8323 @menu
   8324 @c <en>* Outside::                     The normal way to Rename
   8325 * Outside::                     A forma normal de renomear
   8326 @c <en>* Inside::                      A tricky, alternative way
   8327 * Inside::                      Uma forma ???tricky???, alternativa
   8328 @c <en>* Rename by copying::           Another tricky, alternative way
   8329 * Renomeando na base da cpia:: Outra forma ???tricky???, alternativa
   8330 @end menu
   8331 
   8332 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   8333 @c <en>@node Outside
   8334 @node Outside
   8335 @c <en>@subsection The Normal way to Rename
   8336 @subsection A forma normal de renomear
   8337 
   8338 @c More rename issues.  Not sure whether these are
   8339 @c worth documenting; I'm putting them here because
   8340 @c it seems to be as good a place as any to try to
   8341 @c set down the issues.
   8342 @c * "cvs annotate" will annotate either the new
   8343 @c file or the old file; it cannot annotate _each
   8344 @c line_ based on whether it was last changed in the
   8345 @c new or old file.  Unlike "cvs log", where the
   8346 @c consequences of having to select either the new
   8347 @c or old name seem fairly benign, this may be a
   8348 @c real advantage to having CVS know about renames
   8349 @c other than as a deletion and an addition.
   8350 
   8351 @c <en>The normal way to move a file is to copy @var{old} to
   8352 @c <en>@var{new}, and then issue the normal @sc{cvs} commands
   8353 @c <en>to remove @var{old} from the repository, and add
   8354 @c <en>@var{new} to it.
   8355 A forma normal de mover um arquivo  copiar
   8356 @var{antigo} para @var{novo}, e ento aplicar os
   8357 comandos normais do @sc{cvs} para, no repositrio,
   8358 remover @var{antigo} e adicionar @var{novo}.
   8359 @c The following sentence is not true: one must cd into
   8360 @c the directory to run "cvs add".
   8361 @c  (Both @var{old} and @var{new} could
   8362 @c contain relative paths, for example @file{foo/bar.c}).
   8363 
   8364 @example
   8365 $ mv @var{old} @var{new}
   8366 $ cvs remove @var{old}
   8367 $ cvs add @var{new}
   8368 $ cvs commit -m "Renamed @var{old} to @var{new}" @var{old} @var{new}
   8369 @end example
   8370 
   8371 @c <en>This is the simplest way to move a file, it is not
   8372 @c <en>error-prone, and it preserves the history of what was
   8373 @c <en>done.  Note that to access the history of the file you
   8374 @c <en>must specify the old or the new name, depending on what
   8375 @c <en>portion of the history you are accessing.  For example,
   8376 @c <en>@code{cvs log @var{old}} will give the log up until the
   8377 @c <en>time of the rename.
   8378 Esta  a forma mais simples de mover um arquivo, no 
   8379 anti-falhas, e vai preservar o histrico do que foi
   8380 feito.  Observe que para acessar o histrico do arquivo
   8381 voc vai precisar especificar o nome antigo ou o novo,
   8382 dependendo de que poro do histrico voc vai estar
   8383 acessando.  Por exemplo, @code{cvs log @var{antigo}}
   8384 vai mostrar o registro (log) at o momento onde o
   8385 arquivo foi renomeado.
   8386 
   8387 @c <en>When @var{new} is committed its revision numbers will
   8388 @c <en>start again, usually at 1.1, so if that bothers you,
   8389 @c <en>use the @samp{-r rev} option to commit.  For more
   8390 @c <en>information see @ref{Assigning revisions}.
   8391 Quando @var{novo}  ???committed??? seus nmeros de
   8392 reviso vo recomear, normalmente em 1.1.  Portanto, se
   8393 isto te incomoda, lembre de usar a opo @samp{-r rev}
   8394 na hora do ???commit???.  Para mais informaes veja em
   8395 @ref{Atribuindo revises}.
   8396 
   8397 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   8398 @c <en>@node Inside
   8399 @node Inside
   8400 @c <en>@subsection Moving the history file
   8401 @subsection Movendo o arquivo com o histrico
   8402 
   8403 @c <en>This method is more dangerous, since it involves moving
   8404 @c <en>files inside the repository.  Read this entire section
   8405 @c <en>before trying it out!
   8406 Este mtodo  mais perigoso, j que envolve
   8407 movimentao de arquivos no repositrio.  Leia a seo
   8408 toda antes de sair tentando!
   8409 
   8410 @example
   8411 $ cd $CVSROOT/@var{dir}
   8412 $ mv @var{old},v @var{new},v
   8413 @end example
   8414 
   8415 @noindent
   8416 @c <en>Advantages:
   8417 Vantagens:
   8418 
   8419 @itemize @bullet
   8420 @item
   8421 @c <en>The log of changes is maintained intact.
   8422 O registro (log) de alteraes permanece intacto.
   8423 
   8424 @item
   8425 @c <en>The revision numbers are not affected.
   8426 Os nmeros de reviso no so alterados.
   8427 @end itemize
   8428 
   8429 @noindent
   8430 @c <en>Disadvantages:
   8431 Desvantagens:
   8432 
   8433 @itemize @bullet
   8434 @item
   8435 @c <en>Old releases cannot easily be fetched from the
   8436 @c <en>repository.  (The file will show up as @var{new} even
   8437 @c <en>in revisions from the time before it was renamed).
   8438 Releases antigas no sero mais facilmente recuperadas
   8439 a partir do repositrio.  (O arquivo vai aparecer como
   8440 @var{novo} mesmo em revises do tempo anterior a ter
   8441 sido renomeado).
   8442 
   8443 @item
   8444 @c <en>There is no log information of when the file was renamed.
   8445 No h informao nos registros de quando o arquivo foi
   8446 renomeado.
   8447 
   8448 @item
   8449 @c <en>Nasty things might happen if someone accesses the history file
   8450 @c <en>while you are moving it.  Make sure no one else runs any of the @sc{cvs}
   8451 @c <en>commands while you move it.
   8452 Coisas ???Nasty??? podem acontecer se algum acessar o
   8453 arquivo de histrico enquanto voc estier movendo ele.
   8454 Certifique-se de que ningum mais rode qualquer dos
   8455 comandos do @sc{cvs} durante a movimentao.
   8456 @end itemize
   8457 
   8458 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   8459 @c <en>@node Rename by copying
   8460 @node Renomeando na base da cpia
   8461 @c <en>@subsection Copying the history file
   8462 @subsection Copiando o arquivo de histrico
   8463 
   8464 @c <en>This way also involves direct modifications to the
   8465 @c <en>repository.  It is safe, but not without drawbacks.
   8466 Esta forma tambm envolve modificaes diretas no
   8467 repositrio.   segura, mas tem seus incovenientes.
   8468 
   8469 @example
   8470 # @r{Copy the @sc{rcs} file inside the repository}
   8471 $ cd $CVSROOT/@var{dir}
   8472 $ cp @var{old},v @var{new},v
   8473 # @r{Remove the old file}
   8474 $ cd ~/@var{dir}
   8475 $ rm @var{old}
   8476 $ cvs remove @var{old}
   8477 $ cvs commit @var{old}
   8478 # @r{Remove all tags from @var{new}}
   8479 $ cvs update @var{new}
   8480 $ cvs log @var{new}             # @r{Remember the non-branch tag names}
   8481 $ cvs tag -d @var{tag1} @var{new}
   8482 $ cvs tag -d @var{tag2} @var{new}
   8483 @dots{}
   8484 @end example
   8485 
   8486 @c <en>By removing the tags you will be able to check out old
   8487 @c <en>revisions.
   8488 Ao remover as etiquetas voc vai ser capaz de ???check
   8489 out??? revises antigas.
   8490 
   8491 @noindent
   8492 @c <en>Advantages:
   8493 Vantagens:
   8494 
   8495 @itemize @bullet
   8496 @item
   8497 @c FIXME: Is this true about -D now that we have death
   8498 @c support?  See 5B.3 in the FAQ.
   8499 @c <en>Checking out old revisions works correctly, as long as
   8500 @c <en>you use @samp{-r@var{tag}} and not @samp{-D@var{date}}
   8501 @c <en>to retrieve the revisions.
   8502 O ???check out??? de revises antigas funciona corretamente,
   8503 ???as long as??? voc usa @samp{-r@var{tag}} e no
   8504 @samp{-D@var{date}} para recuperar as revises.
   8505 
   8506 @item
   8507 @c <en>The log of changes is maintained intact.
   8508 O registro (log) de mudanas  mantido intacto.
   8509 
   8510 @item
   8511 @c <en>The revision numbers are not affected.
   8512 Os nmeros de reviso no so afetados.
   8513 @end itemize
   8514 
   8515 @noindent
   8516 @c <en>Disadvantages:
   8517 Desvantagens:
   8518 
   8519 @itemize @bullet
   8520 @item
   8521 @c <en>You cannot easily see the history of the file across the rename.
   8522 Voc no pode ver de forma fcil os histrico do
   8523 arquivo atravs das aes de renomear.
   8524 
   8525 @ignore
   8526 @c Is this true?  I don't see how the revision numbers
   8527 @c _could_ start over, when new,v is just old,v with
   8528 @c the tags deleted.
   8529 @c If there is some need to reinstate this text,
   8530 @c it is "usually 1.1", not "1.0" and it needs an
   8531 @c xref to Assigning revisions
   8532 @item
   8533 @c <en>Unless you use the @samp{-r rev} (@pxref{commit
   8534 @c <en>options}) flag when @var{new} is committed its revision
   8535 @c <en>numbers will start at 1.0 again.
   8536 A menos que voc use a opo @samp{-r rev} (@pxref{commit
   8537 options}) quando o @var{new} for ???committed??? seus
   8538 nmeros de reviso vo sempre recomear com 1.0.
   8539 @end ignore
   8540 @end itemize
   8541 
   8542 @c ---------------------------------------------------------------------
   8543 @c <en>@node Moving directories
   8544 @node Movendo diretrios
   8545 @c <en>@section Moving and renaming directories
   8546 @section Movendo e renomeando diretrios
   8547 @c <en>@cindex Moving directories
   8548 @cindex Movendo diretrios
   8549 @c <en>@cindex Renaming directories
   8550 @cindex Renomeando diretrios
   8551 @c <en>@cindex Directories, moving
   8552 @cindex Diretrios, movendo
   8553 
   8554 @c <en>The normal way to rename or move a directory is to
   8555 @c <en>rename or move each file within it as described in
   8556 @c <en>@ref{Outside}.  Then check out with the @samp{-P}
   8557 @c <en>option, as described in @ref{Removing directories}.
   8558 A forma normal de renomear ou mover um diretrio 
   8559 renomear ou mover cada arquivo dentro dele como
   8560 descrito em @ref{Outside}.  Ento fazer um ???check
   8561 out??? com a opo @samp{-P}, como descrito em
   8562 @ref{Removendo diretrios}.
   8563 
   8564 @c <en>If you really want to hack the repository to rename or
   8565 @c <en>delete a directory in the repository, you can do it
   8566 @c <en>like this:
   8567 Se voc realmente quer ???to hack??? o repositrio para
   8568 renomear ou apagar um diretrio no repositrio, voc
   8569 pode faz-lo da seguinte forma:
   8570 
   8571 @enumerate
   8572 @item
   8573 @c <en>Inform everyone who has a checked out copy of the directory that the
   8574 @c <en>directory will be renamed.  They should commit all
   8575 @c <en>their changes, and remove their working copies,
   8576 @c <en>before you take the steps below.
   8577 Avise a todos que fizeram checkout do diretrio que o
   8578 diretrio vai ser renomeado.  Eles vo ter que fazer
   8579 ???commit??? de todas as mudanas, e remover suas
   8580 cpias de trabalho antes que voc faa os passos
   8581 seguintes.
   8582 
   8583 @item
   8584 @c <en>Rename the directory inside the repository.
   8585 Renomeie o diretrio dentro do repositrio.
   8586 
   8587 @example
   8588 $ cd $CVSROOT/@var{parent-dir}
   8589 $ mv @var{old-dir} @var{new-dir}
   8590 @end example
   8591 
   8592 @item
   8593 @c <en>Fix the @sc{cvs} administrative files, if necessary (for
   8594 @c <en>instance if you renamed an entire module).
   8595 Conserte os arquivos administrativos do @sc{cvs}, se
   8596 necessrio (por exemplo, se voc est renomeando um
   8597 mdulo inteiro).
   8598 
   8599 @item
   8600 @c <en>Tell everyone that they can check out again and continue
   8601 @c <en>working.
   8602 Diga a todo mundo que  eles podem fazer check out
   8603 novamente e continuar o trabalho.
   8604 
   8605 @end enumerate
   8606 
   8607 @c <en>If someone had a working copy the @sc{cvs} commands will
   8608 @c <en>cease to work for him, until he removes the directory
   8609 @c <en>that disappeared inside the repository.
   8610 Se algum manteve uma cpia de trabalho, os comandos do
   8611 @sc{cvs} vo parar de funcionar para esta pessoa at
   8612 que ela remova o diretrio que desapareceu do repositrio.
   8613 
   8614 @c <en>It is almost always better to move the files in the
   8615 @c <en>directory instead of moving the directory.  If you move the
   8616 @c <en>directory you are unlikely to be able to retrieve old
   8617 @c <en>releases correctly, since they probably depend on the
   8618 @c <en>name of the directories.
   8619 Na maioria das vezes  melhor mover os arquivos do
   8620 diretrio ao invs de mover o diretrio.  Se voc mover
   8621 o diretrio no h garantias de que voc seja capaz de
   8622 recuperar releases antigas corretamente, j que elas
   8623 dependem provavelmente do nome dos diretrios.
   8624 
   8625 @c ---------------------------------------------------------------------
   8626 @c <en>@node History browsing
   8627 @node Navegao no Histrico
   8628 @c <en>@chapter History browsing
   8629 @chapter Navegao no Histrico
   8630 @c <en>@cindex History browsing
   8631 @cindex Navegao no Histrico
   8632 @c <en>@cindex Traceability
   8633 @cindex Rastreabilidade
   8634 @c <en>@cindex Isolation
   8635 @cindex Isolamento
   8636 
   8637 @ignore
   8638 @c This is too long for an introduction (goal is
   8639 @c one 20x80 character screen), and also mixes up a
   8640 @c variety of issues (parallel development, history,
   8641 @c maybe even touches on process control).
   8642 
   8643 @c -- @quote{To lose ones history is to lose ones soul.}
   8644 @c -- ///
   8645 @c -- ///Those who cannot remember the past are condemned to repeat it.
   8646 @c -- ///               -- George Santayana
   8647 @c -- ///
   8648 
   8649 @c <en>@sc{cvs} tries to make it easy for a group of people to work
   8650 @c <en>together.  This is done in two ways:
   8651 O @sc{cvs} tenta ajudar um grupo a trabalhar junto.
   8652 Isto  feito de duas formas:
   8653 
   8654 @itemize @bullet
   8655 @item
   8656 @c <en>Isolation---You have your own working copy of the
   8657 @c <en>source.  You are not affected by modifications made by
   8658 @c <en>others until you decide to incorporate those changes
   8659 @c <en>(via the @code{update} command---@pxref{update}).
   8660 Isolamento---Voc tem a sua prpria cpia de trabalho
   8661 dos fontes.  Voc no  afetado por modificaes feitas
   8662 por outros at que voc decida incorporar estas
   8663 modificaes (atravs do comando
   8664 @code{update}---@pxref{update}).
   8665 
   8666 @item
   8667 @c <en>Traceability---When something has changed, you can
   8668 @c <en>always see @emph{exactly} what changed.
   8669 Rastreabilidade---Quando alguma coisa mudou, voc pode
   8670 ver @emph{exatamente} o que mudou.
   8671 @end itemize
   8672 
   8673 @c <en>There are several features of @sc{cvs} that together lead
   8674 @c <en>to traceability:
   8675 Existem vrias caractersticas do @sc{cvs} que juntas
   8676 possibilitam a rastreabilidade:
   8677 
   8678 @itemize @bullet
   8679 @item
   8680 @c <en>Each revision of a file has an accompanying log
   8681 @c <en>message.
   8682 Each revision of a file has an accompanying log
   8683 message.
   8684 
   8685 @item
   8686 @c <en>All commits are optionally logged to a central history
   8687 @c <en>database.
   8688 All commits are optionally logged to a central history
   8689 database.
   8690 
   8691 @item
   8692 @c <en>Logging information can be sent to a user-defined
   8693 @c <en>program (@pxref{loginfo}).
   8694 Logging information can be sent to a user-defined
   8695 program (@pxref{loginfo}).
   8696 @end itemize
   8697 
   8698 @c -- More text here.
   8699 
   8700 @c <en>This chapter should talk about the history file, the
   8701 @c <en>@code{log} command, the usefulness of ChangeLogs
   8702 @c <en>even when you run @sc{cvs}, and things like that.
   8703 This chapter should talk about the history file, the
   8704 @code{log} command, the usefulness of ChangeLogs
   8705 even when you run @sc{cvs}, and things like that.
   8706 
   8707 @end ignore
   8708 
   8709 @c kind of lame, in a lot of ways the above text inside
   8710 @c the @ignore motivates this chapter better
   8711 @c <en>Once you have used @sc{cvs} to store a version control
   8712 @c <en>history---what files have changed when, how, and by
   8713 @c <en>whom, there are a variety of mechanisms for looking
   8714 @c <en>through the history.
   8715 Uma vez usando o @sc{cvs} para guardar um histrico do
   8716 controle de verses---que arquivos foram mudandos,
   8717 quando, como e por quem, existe uma variedade de
   8718 mecanismos para procurar ao longo do histrico.
   8719 
   8720 @c FIXME: should also be talking about how you look at
   8721 @c old revisions (e.g. "cvs update -p -r 1.2 foo.c").
   8722 @menu
   8723 @c <en>* log messages::                Log messages
   8724 * mensagens de registro::       Mensagens de registro (log)
   8725 @c <en>* history database::            The history database
   8726 * history database::            The history database
   8727 @c <en>* user-defined logging::        User-defined logging
   8728 * user-defined logging::        User-defined logging
   8729 @c <en>* annotate::                    What revision modified each line of a file?
   8730 * annotate::                    Que reviso modificou cada linha de um arquivo?
   8731 @end menu
   8732 
   8733 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   8734 @c <en>@node log messages
   8735 @node mensagens de registro
   8736 @c <en>@section Log messages
   8737 @section Mensagens de registro (log)
   8738 
   8739 @c FIXME: @xref to place where we talk about how to
   8740 @c specify message to commit.
   8741 @c <en>Whenever you commit a file you specify a log message.
   8742 Sempre que voc ???commit??? um arquivo voc especifica
   8743 uma mensagem de registro (log).
   8744 
   8745 @c FIXME: bring the information here, and get rid of or
   8746 @c greatly shrink the "log" node.
   8747 @c <en>To look through the log messages which have been
   8748 @c <en>specified for every revision which has been committed,
   8749 @c <en>use the @code{cvs log} command (@pxref{log}).
   8750 Para ver todas as mensagens de registro que foram
   8751 especificadas para cada reviso que foi
   8752 ???committed???, use o comando @code{cvs log}
   8753 (@pxref{log}).
   8754 
   8755 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   8756 @c <en>@node history database
   8757 @node history database
   8758 @c <en>@section The history database
   8759 @section The history database
   8760 
   8761 @c FIXME: bring the information from the history file
   8762 @c and history nodes here.  Rewrite it to be motivated
   8763 @c better (start out by clearly explaining what gets
   8764 @c logged in history, for example).
   8765 @c <en>You can use the history file (@pxref{history file}) to
   8766 @c <en>log various @sc{cvs} actions.  To retrieve the
   8767 @c <en>information from the history file, use the @code{cvs
   8768 @c <en>history} command (@pxref{history}).
   8769 Voc pode usar o arquivo history (@pxref{arquivo
   8770 history (histrico)}) para registrar vrias aes do @sc{cvs}.
   8771 Para recuperar a informao do arquivo history, use o
   8772 comando @code{cvs history} (@pxref{history}).
   8773 
   8774 @c <en>Note: you can control what is logged to this file by using the
   8775 @c <en>@samp{LogHistory} keyword in the @file{CVSROOT/config} file
   8776 @c <en>(@pxref{config}).
   8777 Observao: voc pode controlar o que vai ser
   8778 registrado neste arquivo usando a palavra-chave
   8779 @samp{LogHistory} no arquivo @file{CVSROOT/config}
   8780 (@pxref{config}).
   8781 
   8782 @c
   8783 @c The history database has many problems:
   8784 @c * It is very unclear what field means what.  This
   8785 @c could be improved greatly by better documentation,
   8786 @c but there are still non-orthogonalities (for
   8787 @c example, tag does not record the "repository"
   8788 @c field but most records do).
   8789 @c * Confusion about files, directories, and modules.
   8790 @c Some commands record one, some record others.
   8791 @c * File removal is not logged.  There is an 'R'
   8792 @c record type documented, but CVS never uses it.
   8793 @c * Tags are only logged for the "cvs rtag" command,
   8794 @c not "cvs tag".  The fix for this is not completely
   8795 @c clear (see above about modules vs. files).
   8796 @c * Are there other cases of operations that are not
   8797 @c logged?  One would hope for all changes to the
   8798 @c repository to be logged somehow (particularly
   8799 @c operations like tagging, "cvs admin -k", and other
   8800 @c operations which do not record a history that one
   8801 @c can get with "cvs log").  Operations on the working
   8802 @c directory, like export, get, and release, are a
   8803 @c second category also covered by the current "cvs
   8804 @c history".
   8805 @c * The history file does not record the options given
   8806 @c to a command.  The most serious manifestation of
   8807 @c this is perhaps that it doesn't record whether a command
   8808 @c was recursive.  It is not clear to me whether one
   8809 @c wants to log at a level very close to the command
   8810 @c line, as a sort of way of logging each command
   8811 @c (more or less), or whether one wants
   8812 @c to log more at the level of what was changed (or
   8813 @c something in between), but either way the current
   8814 @c information has pretty big gaps.
   8815 @c * Further details about a tag--like whether it is a
   8816 @c branch tag or, if a non-branch tag, which branch it
   8817 @c is on.  One can find out this information about the
   8818 @c tag as it exists _now_, but if the tag has been
   8819 @c moved, one doesn't know what it was like at the time
   8820 @c the history record was written.
   8821 @c * Whether operating on a particular tag, date, or
   8822 @c options was implicit (sticky) or explicit.
   8823 @c
   8824 @c Another item, only somewhat related to the above, is a
   8825 @c way to control what is logged in the history file.
   8826 @c This is probably the only good way to handle
   8827 @c different people having different ideas about
   8828 @c information/space tradeoffs.
   8829 @c
   8830 @c It isn't really clear that it makes sense to try to
   8831 @c patch up the history file format as it exists now to
   8832 @c include all that stuff.  It might be better to
   8833 @c design a whole new CVSROOT/nhistory file and "cvs
   8834 @c nhistory" command, or some such, or in some other
   8835 @c way trying to come up with a clean break from the
   8836 @c past, which can address the above concerns.  Another
   8837 @c open question is how/whether this relates to
   8838 @c taginfo/loginfo/etc.
   8839 
   8840 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   8841 @c <en>@node user-defined logging
   8842 @node user-defined logging
   8843 @c <en>@section User-defined logging
   8844 @section User-defined logging
   8845 
   8846 @c FIXME: should probably also mention the fact the -l
   8847 @c global option can disable most of the mechanisms
   8848 @c discussed here (why?  What is the -l global option for?).
   8849 @c
   8850 @c FIXME: probably should centralize this information
   8851 @c here, at least to some extent.  Maybe by moving the
   8852 @c loginfo, etc., nodes here and replacing
   8853 @c the "user-defined logging" node with one node for
   8854 @c each method.
   8855 @c <en>You can customize @sc{cvs} to log various kinds of
   8856 @c <en>actions, in whatever manner you choose.  These
   8857 @c <en>mechanisms operate by executing a script at various
   8858 @c <en>times.  The script might append a message to a file
   8859 @c <en>listing the information and the programmer who created
   8860 @c <en>it, or send mail to a group of developers, or, perhaps,
   8861 @c <en>post a message to a particular newsgroup.  To log
   8862 @c <en>commits, use the @file{loginfo} file (@pxref{loginfo}).
   8863 @c <en>To log tags, use the @file{taginfo} file (@pxref{taginfo}).
   8864 Voc pode personalizar o @sc{cvs} para registrar vrios
   8865 tipos de ao, da forma que voc escolher.  Estes
   8866 mecanismos operam executando um script vrias vezes.  O
   8867 script deve anexar uma mensagem a um arquivo que lista
   8868 as informaes e o programador que as criou, ou mandar
   8869 um e-mail para um grupo de desenvolvedores, ou, talvez,
   8870 mandar uma mensagem para um newsgroup em particular.
   8871 Para registrar os commits, usar o arquivo
   8872 @file{loginfo} (@pxref{loginfo}).  Para registrar
   8873 etiquetamentos, use o comando @file{taginfo}
   8874 (@pxref{taginfo}).
   8875 @c FIXME: What is difference between doing it in the
   8876 @c modules file and using loginfo/taginfo?  Why should
   8877 @c user use one or the other?
   8878 @c <en>To log commits, checkouts, exports, and tags,
   8879 @c <en>respectively, you can also use the @samp{-i},
   8880 @c <en>@samp{-o}, @samp{-e}, and @samp{-t} options in the
   8881 @c <en>modules file.  For a more flexible way of giving
   8882 @c <en>notifications to various users, which requires less in
   8883 @c <en>the way of keeping centralized scripts up to date, use
   8884 @c <en>the @code{cvs watch add} command (@pxref{Getting
   8885 @c <en>Notified}); this command is useful even if you are not
   8886 @c <en>using @code{cvs watch on}.
   8887 Para registrar ???commits???, ???checkouts???,
   8888 exportaes, e etiquetagens, voc pode
   8889 usar, respectivamente, as opes @samp{-i}, @samp{-o},
   8890 @samp{-e} e @samp{-t} no arquivo modules.  Para uma
   8891 forma mais flexvel de notificar vrios usurios, ???which requires less in
   8892 the way of??? manter scripts centralizados atualizados,
   8893 use o comando @code{cvs watch add} (@pxref{Recebendo
   8894 Notificaes}); este comando  til mesmo se voc no
   8895 estiver usando @code{cvs watch on}.
   8896 
   8897 @c <en>@node annotate
   8898 @node annotate
   8899 @c <en>@section Annotate command
   8900 @section O comando annotate
   8901 @c <en>@cindex annotate (subcommand)
   8902 @cindex annotate (subcomando)
   8903 
   8904 @c <en>@deffn Command {cvs annotate} [@code{-FflR}] [@code{-r rev}|@code{-D date}] files @dots{}
   8905 @deffn Comando {cvs annotate} [@code{-FflR}] [@code{-r reviso}|@code{-D data}] arquivos @dots{}
   8906 
   8907 @c <en>For each file in @var{files}, print the head revision
   8908 @c <en>of the trunk, together with information on the last
   8909 @c <en>modification for each line.  For example:
   8910 Para cada arquivo em @var{arquivos}, imprime a reviso no topo
   8911  do tronco, junto com informaes a respeito
   8912 da ltima modificao em cada linha.  Por exemplo:
   8913 
   8914 @example
   8915 $ cvs annotate ssfile
   8916 Annotations for ssfile
   8917 ***************
   8918 1.1          (mary     27-Mar-96): ssfile line 1
   8919 1.2          (joe      28-Mar-96): ssfile line 2
   8920 @end example
   8921 
   8922 @c <en>The file @file{ssfile} currently contains two lines.
   8923 @c <en>The @code{ssfile line 1} line was checked in by
   8924 @c <en>@code{mary} on March 27.  Then, on March 28, @code{joe}
   8925 @c <en>added a line @code{ssfile line 2}, without modifying
   8926 @c <en>the @code{ssfile line 1} line.  This report doesn't
   8927 @c <en>tell you anything about lines which have been deleted
   8928 @c <en>or replaced; you need to use @code{cvs diff} for that
   8929 @c <en>(@pxref{diff}).
   8930 O arquivo @file{ssfile} atualmente contm duas
   8931 linhas.  A @code{linha 1 de ssfile} foi submetida por
   8932 @code{mary} em March 27 (27 de maro).  Ento, em March
   8933 28 (28 de maro), @code{joe} adicionou a
   8934 @code{linha 2 de ssfile}, sem modificar a
   8935 @code{linha 1 de ssfile}.  Este relatrio no te diz nada a
   8936 respeito de linhas que foram deletadas ou substitudas;
   8937 Voc precisa usar o @code{cvs diff} para isto
   8938 (@pxref{diff}).
   8939 
   8940 @end deffn
   8941 
   8942 @c <en>The options to @code{cvs annotate} are listed in
   8943 @c <en>@ref{Invoking CVS}, and can be used to select the files
   8944 @c <en>and revisions to annotate.  The options are described
   8945 @c <en>in more detail there and in @ref{Common options}.
   8946 As opes para o @code{cvs annotate} so listadas em
   8947 @ref{Chamando o CVS} e podem ser usadas para selecionar
   8948 os arquivos e revises para o annotate.  As opes
   8949 so descritas com mais detalhes l e em @ref{Opes comuns}.
   8950 
   8951 @c FIXME: maybe an example using the options?  Just
   8952 @c what it means to select a revision might be worth a
   8953 @c few words of explanation ("you want to see who
   8954 @c changed this line *before* 1.4"...).
   8955 
   8956 @c ---------------------------------------------------------------------
   8957 @c <en>@node Binary files
   8958 @node Arquivos binrios
   8959 @c <en>@chapter Handling binary files
   8960 @chapter Manipulando arquivos binrios
   8961 @c <en>@cindex Binary files
   8962 @cindex Arquivos binrios
   8963 
   8964 @c <en>The most common use for @sc{cvs} is to store text
   8965 @c <en>files.  With text files, @sc{cvs} can merge revisions,
   8966 @c <en>display the differences between revisions in a
   8967 @c <en>human-visible fashion, and other such operations.
   8968 @c <en>However, if you are willing to give up a few of these
   8969 @c <en>abilities, @sc{cvs} can store binary files.  For
   8970 @c <en>example, one might store a web site in @sc{cvs}
   8971 @c <en>including both text files and binary images.
   8972 O @sc{cvs}  usado normalmente para guardar arquivos
   8973 texto.  Com arquivos texto o @sc{cvs} pode mesclar
   8974 revises, mostrar diferenas entre revises de uma
   8975 forma legvel para humanos, e outras operaes do
   8976 tipo.  Entretanto, se voc est disposto a abrir mo de
   8977 algumas destas habilidades, o @sc{cvs} pode guardar
   8978 arquivos binrios.  Por exemplo, pode-se guardar um
   8979 site no @sc{cvs} incluindo tanto os arquivos texto
   8980 quanto as imagens em binrio.
   8981 
   8982 @menu
   8983 @c <en>* Binary why::     More details on issues with binary files
   8984 * Binary why::     Mais detalhes no que concerne a arquivos binrios
   8985 @c <en>* Binary howto::   How to store them
   8986 * Binary howto::   Como guard-los
   8987 @end menu
   8988 
   8989 @c <en>@node Binary why
   8990 @node Binary why
   8991 @c <en>@section The issues with binary files
   8992 @section The issues with binary files
   8993 
   8994 @c <en>While the need to manage binary files may seem obvious
   8995 @c <en>if the files that you customarily work with are binary,
   8996 @c <en>putting them into version control does present some
   8997 @c <en>additional issues.
   8998 ???While??? a necessidade de armazenar arquivos
   8999 binrios se mostra bvia se os arquivos com os quais
   9000 voc normalmente trabalha so binrios, bot-los
   9001 dentro do controle de verses requer alguns cuidados
   9002 adicionais.
   9003 
   9004 @c <en>One basic function of version control is to show the
   9005 @c <en>differences between two revisions.  For example, if
   9006 @c <en>someone else checked in a new version of a file, you
   9007 @c <en>may wish to look at what they changed and determine
   9008 @c <en>whether their changes are good.  For text files,
   9009 @c <en>@sc{cvs} provides this functionality via the @code{cvs
   9010 @c <en>diff} command.  For binary files, it may be possible to
   9011 @c <en>extract the two revisions and then compare them with a
   9012 @c <en>tool external to @sc{cvs} (for example, word processing
   9013 @c <en>software often has such a feature).  If there is no
   9014 @c <en>such tool, one must track changes via other mechanisms,
   9015 @c <en>such as urging people to write good log messages, and
   9016 @c <en>hoping that the changes they actually made were the
   9017 @c <en>changes that they intended to make.
   9018 Uma habilidade bsica de um controle de verses  mostrar
   9019 as diferenas entre duas revises.  Por exemplo, se
   9020 outra pessoa submete (check in) uma nova verso de um
   9021 arquivo, voc pode querer ver o que foi mudado e
   9022 determinar quais destas mudanas foram boas.  Para
   9023 arquivos texto, o @sc{cvs} oferece esta funcionalidade
   9024 atravs do comando @code{cvs diff}.  Para arquivos
   9025 binrios, existe uma chance de  extrair as duas
   9026 revises e ento compar-las com uma ferramenta externa
   9027 ao @sc{cvs} (por exemplo, alguns processadores de texto
   9028 tm esta habilidade).  Se no existe tal ferramenta, 
   9029 possvel rastrear mudanas por outros meios, como por
   9030 exemplo convencendo as pessoas a escreverem boas
   9031 mensagens de registro (log), e torcendo para que as
   9032 mudanas que eles realmente fizeram foram as que eles
   9033 tinham inteno de fazer.
   9034 
   9035 @c <en>Another ability of a version control system is the
   9036 @c <en>ability to merge two revisions.  For @sc{cvs} this
   9037 @c <en>happens in two contexts.  The first is when users make
   9038 @c <en>changes in separate working directories
   9039 @c <en>(@pxref{Multiple developers}).  The second is when one
   9040 @c <en>merges explicitly with the @samp{update -j} command
   9041 @c <en>(@pxref{Branching and merging}).
   9042 Outra habilidade de um sistema de controle de verses 
   9043 a capacidade de mesclar duas revises.  No @sc{cvs}
   9044 isto acontece em dois contextos.  O primeiro  quando
   9045 os usuriso fazem mudanas em diretrios de trabalho
   9046 separados (@pxref{Mltiplos desenvolvedores}).  A
   9047 segunda  quando algum mescla explicitamente com o
   9048 comando @samp{update -j} (@pxref{Ramificando e mesclando}).
   9049 
   9050 @c <en>In the case of text
   9051 @c <en>files, @sc{cvs} can merge changes made independently,
   9052 @c <en>and signal a conflict if the changes conflict.  With
   9053 @c <en>binary files, the best that @sc{cvs} can do is present
   9054 @c <en>the two different copies of the file, and leave it to
   9055 @c <en>the user to resolve the conflict.  The user may choose
   9056 @c <en>one copy or the other, or may run an external merge
   9057 @c <en>tool which knows about that particular file format, if
   9058 @c <en>one exists.
   9059 @c <en>Note that having the user merge relies primarily on the
   9060 @c <en>user to not accidentally omit some changes, and thus is
   9061 @c <en>potentially error prone.
   9062 No caso de arquivos texto, o @sc{cvs} pode mesclar
   9063 mudanas feitas independentemente, e avisar sobre um
   9064 conflito se as mudanas conflitarem.  Com arquivos
   9065 binrios, o melhor que o @sc{cvs} pode fazer 
   9066 fornecer as duas cpias diferentes do arquivo, e deixar
   9067 a cargo do usurio a resoluo do conflito.  O usurio
   9068 pode escolher uma cpia ou a outra, ou pode rodar uma
   9069 ferramenta externa de mesclagem que entenda aquele
   9070 formato de arquivo em particular, se  que tal
   9071 ferramenta exista. Observe que mesclagem feita pelo
   9072 usurio se baseia no fato de o usurio no omitir
   9073 acidentalmente algumas mudanas, e portanto  sujeita a erros.
   9074 
   9075 @c <en>If this process is thought to be undesirable, the best
   9076 @c <en>choice may be to avoid merging.  To avoid the merges
   9077 @c <en>that result from separate working directories, see the
   9078 @c <en>discussion of reserved checkouts (file locking) in
   9079 @c <en>@ref{Multiple developers}.  To avoid the merges
   9080 @c <en>resulting from branches, restrict use of branches.
   9081 Se voc acha que este processo  indesejvel, a melhor
   9082 escolha  evitar mesclagem.  Para evitar mesclagens
   9083 resultantes de diretrios de trabalho separados, veja a
   9084 discusso a respeito de ???reserved checkouts??? (travas
   9085 de arquivo) em @ref{Mltiplos desenvolvedores}.  Para
   9086 ecitar mesclagens resultantes de ramificaes,
   9087 restrinja o uso de ramos.
   9088 
   9089 @c <en>@node Binary howto
   9090 @node Binary howto
   9091 @c <en>@section How to store binary files
   9092 @section Como guardar arquivos binrios
   9093 
   9094 @c <en>There are two issues with using @sc{cvs} to store
   9095 @c <en>binary files.  The first is that @sc{cvs} by default
   9096 @c <en>converts line endings between the canonical form in
   9097 @c <en>which they are stored in the repository (linefeed
   9098 @c <en>only), and the form appropriate to the operating system
   9099 @c <en>in use on the client (for example, carriage return
   9100 @c <en>followed by line feed for Windows NT).
   9101 Existem dois aspectos a considerar quando se usa o
   9102 @sc{cvs} para guardar arquivos binrios.  O primeiro 
   9103 que o @sc{cvs}, por padro, converte quebras de linhas
   9104 entre a forma cannica na qual elas so guardadas no
   9105 repositrio (apenas ???linefeed???), e a forma
   9106 apropriada para o sistema operacional no qual o cliente
   9107  usado (por exemplo, carriage return (retorno do
   9108 carro) seguido por line feed (alimentao de linha)
   9109 para o Windows NT).
   9110 
   9111 @c <en>The second is that a binary file might happen to
   9112 @c <en>contain data which looks like a keyword (@pxref{Keyword
   9113 @c <en>substitution}), so keyword expansion must be turned
   9114 @c <en>off.
   9115 O segundo aspecto  que um arquivo binrio pode conter
   9116 dados que se paream com uma palavra-chave
   9117 (@pxref{Substituio de palavra-chave}). Logo, a
   9118 expanso de palavra-chave deve ser desativada.
   9119 
   9120 @c FIXME: the third is that one can't do merges with
   9121 @c binary files.  xref to Multiple Developers and the
   9122 @c reserved checkout issues.
   9123 
   9124 @c <en>The @samp{-kb} option available with some @sc{cvs}
   9125 @c <en>commands insures that neither line ending conversion
   9126 @c <en>nor keyword expansion will be done.
   9127 A opo @samp{-kb} disponvel com alguns comandos do
   9128 @sc{cvs} garante que nem converso de terminao de
   9129 linha nem expanso de palavra-chave sejam usadas.
   9130 
   9131 @c <en>Here is an example of how you can create a new file
   9132 @c <en>using the @samp{-kb} flag:
   9133 Aqui est um exemplo de como voc pode criar um novo
   9134 arquivo usando a opo @samp{-kb}:
   9135 
   9136 @example
   9137 $ echo '$@splitrcskeyword{}Id$' > kotest
   9138 $ cvs add -kb -m"A test file" kotest
   9139 $ cvs ci -m"First checkin; contains a keyword" kotest
   9140 @end example
   9141 
   9142 @c <en>If a file accidentally gets added without @samp{-kb},
   9143 @c <en>one can use the @code{cvs admin} command to recover.
   9144 @c <en>For example:
   9145 Se um arquivo for acidentalmente adicionado sem o
   9146 @samp{-kb},  possvel usar o comando @code{cvs admin}
   9147 para reverter. Por exemplo:
   9148 
   9149 @example
   9150 $ echo '$@splitrcskeyword{}Id$' > kotest
   9151 $ cvs add -m"A test file" kotest
   9152 $ cvs ci -m"First checkin; contains a keyword" kotest
   9153 $ cvs admin -kb kotest
   9154 $ cvs update -A kotest
   9155 # @r{For non-unix systems:}
   9156 # @r{Copy in a good copy of the file from outside CVS}
   9157 $ cvs commit -m "make it binary" kotest
   9158 @end example
   9159 
   9160 @c Trying to describe this for both unix and non-unix
   9161 @c in the same description is very confusing.  Might
   9162 @c want to split the two, or just ditch the unix "shortcut"
   9163 @c (unixheads don't do much with binary files, anyway).
   9164 @c This used to say "(Try the above example, and do a
   9165 @c @code{cat kotest} after every command)".  But that
   9166 @c only really makes sense for the unix case.
   9167 @c <en>When you check in the file @file{kotest} the file is
   9168 @c <en>not preserved as a binary file, because you did not
   9169 @c <en>check it in as a binary file.  The @code{cvs
   9170 @c <en>admin -kb} command sets the default keyword
   9171 @c <en>substitution method for this file, but it does not
   9172 @c <en>alter the working copy of the file that you have.  If you need to
   9173 @c <en>cope with line endings (that is, you are using
   9174 @c <en>@sc{cvs} on a non-unix system), then you need to
   9175 @c <en>check in a new copy of the file, as shown by the
   9176 @c <en>@code{cvs commit} command above.
   9177 @c <en>On unix, the @code{cvs update -A} command suffices.
   9178 Quando voc submete o arquivo @file{kotest} o arquivo
   9179 no  mantido como um arquivo binrio, por que voc no
   9180 o submeteu como arquivo binrio.  O comando @code{cvs
   9181 admin -kb} ajusta o mtodo de substituio da
   9182 palavra-chave padro para este arquivo, mas no altera
   9183 a cpia de trabalho que voc tem.  Se voc tem que
   9184 lidar com terminaes de linha (ou seja, voc est usando
   9185 o @sc{cvs} em um sistema no-unix), ento voc precisa
   9186 submeter uma nova cpia do arquivo, como mostrado no comando
   9187 @code{cvs commit} acima. No unix, o comando @code{cvs
   9188 update -A} basta.
   9189 @c FIXME: should also describe what the *other users*
   9190 @c need to do, if they have checked out copies which
   9191 @c have been corrupted by lack of -kb.  I think maybe
   9192 @c "cvs update -kb" or "cvs
   9193 @c update -A" would suffice, although the user who
   9194 @c reported this suggested removing the file, manually
   9195 @c removing it from CVS/Entries, and then "cvs update"
   9196 @c <en>(Note that you can use @code{cvs log} to determine the default keyword
   9197 @c <en>substitution method for a file and @code{cvs status} to determine
   9198 @c <en>the keyword substitution method for a working copy.)
   9199 (Note que voc pode usar o @code{cvs log} para
   9200 determinar o mtido de substituio de palavra-chave
   9201 padro para um arquivo e @code{cvs status} para
   9202 determinar o mtodo de substituio de palavra-chave
   9203 para uma cpia de trabalho.)
   9204 
   9205 @c <en>However, in using @code{cvs admin -k} to change the
   9206 @c <en>keyword expansion, be aware that the keyword expansion
   9207 @c <en>mode is not version controlled.  This means that, for
   9208 @c <en>example, that if you have a text file in old releases,
   9209 @c <en>and a binary file with the same name in new releases,
   9210 @c <en>@sc{cvs} provides no way to check out the file in text
   9211 @c <en>or binary mode depending on what version you are
   9212 @c <en>checking out.  There is no good workaround for this
   9213 @c <en>problem.
   9214 Entretanto, ao usar @code{cvs admin -k} para mudar a
   9215 expanso de palavra-chave, esteja atento para o fato de
   9216 que o modo de expanso de palavra-chave no tem
   9217 controle de verso.  Isto significa que, por exemplo,
   9218 se voc tem um arquivo texto em verses antigas, e um
   9219 arquivo binrio com o mesmo nome em novos releases,
   9220 o @sc{cvs} no fornece uma forma de obter o arquivo em
   9221 formato texto, ou binrio, dependendo da verso que
   9222 voc estpa pegando.  No existe uma boa soluo
   9223 alternativa para este problema.
   9224 
   9225 @c <en>You can also set a default for whether @code{cvs add}
   9226 @c <en>and @code{cvs import} treat a file as binary based on
   9227 @c <en>its name; for example you could say that files who
   9228 @c <en>names end in @samp{.exe} are binary.  @xref{Wrappers}.
   9229 @c <en>There is currently no way to have @sc{cvs} detect
   9230 @c <en>whether a file is binary based on its contents.  The
   9231 @c <en>main difficulty with designing such a feature is that
   9232 @c <en>it is not clear how to distinguish between binary and
   9233 @c <en>non-binary files, and the rules to apply would vary
   9234 @c <en>considerably with the operating system.
   9235 Voc tambm pode ajustar um padro para quando o
   9236 @code{cvs add} e o @code{cvs import} tratarem um
   9237 arquivo como binrio de acordo como o seu nome; por
   9238 exemplo, voc pode dizer que arquivos cujos nomes
   9239 terminem com @samp{.exe} so binrio.  @xref{Wrappers}.
   9240 No existe atualmente uma forma de fazer o @sc{cvs}
   9241 detectar quando um arquivo  binrio baseado em seu
   9242 contedo.  A dificuldade principal em fazer isto  que
   9243 no  claro como se faz para distinguir entre arquivos
   9244 binrios e no-binrios, e as regras para serem
   9245 aplicadas variam consideravelmente com o sistema
   9246 operacional.
   9247 @c For example, it would be good on MS-DOS-family OSes
   9248 @c for anything containing ^Z to be binary.  Having
   9249 @c characters with the 8th bit set imply binary is almost
   9250 @c surely a bad idea in the context of ISO-8859-* and
   9251 @c other such character sets.  On VMS or the Mac, we
   9252 @c could use the OS's file typing.  This is a
   9253 @c commonly-desired feature, and something of this sort
   9254 @c may make sense.  But there are a lot of pitfalls here.
   9255 @c
   9256 @c Another, probably better, way to tell is to read the
   9257 @c file in text mode, write it to a temp file in text
   9258 @c mode, and then do a binary mode compare of the two
   9259 @c files.  If they differ, it is a binary file.  This
   9260 @c might have problems on VMS (or some other system
   9261 @c with several different text modes), but in general
   9262 @c should be relatively portable.  The only other
   9263 @c downside I can think of is that it would be fairly
   9264 @c slow, but that is perhaps a small price to pay for
   9265 @c not having your files corrupted.  Another issue is
   9266 @c what happens if you import a text file with bare
   9267 @c linefeeds on Windows.  Such files will show up on
   9268 @c Windows sometimes (I think some native windows
   9269 @c programs even write them, on occasion).  Perhaps it
   9270 @c is reasonable to treat such files as binary; after
   9271 @c all it is something of a presumption to assume that
   9272 @c the user would want the linefeeds converted to CRLF.
   9273 
   9274 @c ---------------------------------------------------------------------
   9275 @c <en>@node Multiple developers
   9276 @node Mltiplos desenvolvedores
   9277 @c <en>@chapter Multiple developers
   9278 @chapter Mltiplos desenvolvedores
   9279 @c <en>@cindex Multiple developers
   9280 @cindex Mltiplos desenvolvedores
   9281 @c <en>@cindex Team of developers
   9282 @cindex Team of developers
   9283 @c <en>@cindex File locking
   9284 @cindex File locking
   9285 @c <en>@cindex Locking files
   9286 @cindex Locking files
   9287 @c <en>@cindex Working copy
   9288 @cindex Working copy
   9289 @c <en>@cindex Reserved checkouts
   9290 @cindex Reserved checkouts
   9291 @c <en>@cindex Unreserved checkouts
   9292 @cindex checkouts no-reservados
   9293 @c <en>@cindex RCS-style locking
   9294 @cindex RCS-style locking
   9295 
   9296 @c <en>When more than one person works on a software project
   9297 @c <en>things often get complicated.  Often, two people try to
   9298 @c <en>edit the same file simultaneously.  One solution, known
   9299 @c <en>as @dfn{file locking} or @dfn{reserved checkouts}, is
   9300 @c <en>to allow only one person to edit each file at a time.
   9301 @c <en>This is the only solution with some version control
   9302 @c <en>systems, including @sc{rcs} and @sc{sccs}.  Currently
   9303 @c <en>the usual way to get reserved checkouts with @sc{cvs}
   9304 @c <en>is the @code{cvs admin -l} command (@pxref{admin
   9305 @c <en>options}).  This is not as nicely integrated into
   9306 @c <en>@sc{cvs} as the watch features, described below, but it
   9307 @c <en>seems that most people with a need for reserved
   9308 @c <en>checkouts find it adequate.
   9309 Quando mais de uma pessoa trabalham em um projeto de
   9310 software freqentemente surgem complicaes.  s vezes
   9311 duas pessoas tentam editar o mesmo arquivo
   9312 simultaneamente.  Uma soluo, conhecida como
   9313 @dfn{trava de arquivo} ou @dfn{???checkout???
   9314 reservado},  permitir, para cada arquivo, que apenas
   9315 uma pessoa por vez edite o arquivo. Esta  a nica
   9316 soluo em alguns sistemas de controle de verso,
   9317 incluindo @sc{rcs} e @sc{sccs}.  Atualmente, a forma
   9318 normal de se ter ???checkouts??? reservados com o @sc{cvs}
   9319  com o comando @code{cvs admin -l} (@pxref{admin
   9320 options}).  Isto no  to integrado com o @sc{cvs}
   9321 quanto a habilidade de ???watch???, descrita abaixo,
   9322 mas vemos que a maioria das pessoas que necessitam de
   9323 ???checkouts??? reservados acham isto adequado.
   9324 @c Or "find it better than worrying about implementing
   9325 @c nicely integrated reserved checkouts" or ...?
   9326 @c <en>It also may be possible to use the watches
   9327 @c <en>features described below, together with suitable
   9328 @c <en>procedures (not enforced by software), to avoid having
   9329 @c <en>two people edit at the same time.
   9330 Tambm  possvel usar a habilidade de trabalhar com
   9331 descrita a seguir, junto com alguns procedimentos
   9332 adequados (que o sotware no obriga), para evitar que
   9333 duas pessoas editem o mesmo arquivo ao mesmo tempo.
   9334 
   9335 @c Our unreserved checkout model might not
   9336 @c be quite the same as others.  For example, I
   9337 @c think that some systems will tend to create a branch
   9338 @c in the case where CVS prints "up-to-date check failed".
   9339 @c It isn't clear to me whether we should try to
   9340 @c explore these subtleties; it could easily just
   9341 @c confuse people.
   9342 @c <en>The default model with @sc{cvs} is known as
   9343 @c <en>@dfn{unreserved checkouts}.  In this model, developers
   9344 @c <en>can edit their own @dfn{working copy} of a file
   9345 @c <en>simultaneously.  The first person that commits his
   9346 @c <en>changes has no automatic way of knowing that another
   9347 @c <en>has started to edit it.  Others will get an error
   9348 @c <en>message when they try to commit the file.  They must
   9349 @c <en>then use @sc{cvs} commands to bring their working copy
   9350 @c <en>up to date with the repository revision.  This process
   9351 @c <en>is almost automatic.
   9352 O modelo padro no @sc{cvs}  conhecido como
   9353 @dfn{???checkouts??? no-reservados}.  Neste modelo, os
   9354 desenvolvedores podem editar sua prpria @dfn{cpia de
   9355 trabalho} de um arquivo simultaneamente.  A primeira
   9356 pessoa que ???commits??? suas mudanas no tem uma
   9357 forma automtica de saber que outra pessoa comeou a
   9358 editar o mesmo arquivo.  Os outros vo receber uma
   9359 mensagem de erro quando tentarem ???commit??? o
   9360 arquivo.  Eles ento tero que usar comandos do
   9361 @sc{cvs} para tornar sua cpia local atualizada em
   9362 relao  reviso no repositrio.  Este processo 
   9363 quase automtico.
   9364 
   9365 @c FIXME? should probably use the word "watch" here, to
   9366 @c tie this into the text below and above.
   9367 @c <en>@sc{cvs} also supports mechanisms which facilitate
   9368 @c <en>various kinds of communication, without actually
   9369 @c <en>enforcing rules like reserved checkouts do.
   9370 O @sc{cvs} tambm d suporte a mecanismos que facilitam
   9371 vrias formas de comunicao, sem regras realmente
   9372 obrigatrias como acontece com os ???checkouts??? reservados.
   9373 
   9374 @c <en>The rest of this chapter describes how these various
   9375 @c <en>models work, and some of the issues involved in
   9376 @c <en>choosing between them.
   9377 O restante deste captulo descreve como estes vrios
   9378 modelos funcionam, e alguns dos aspectos envolvidos na
   9379 hora de escolher entre eles.
   9380 
   9381 @ignore
   9382 @c <en>Here is a draft reserved checkout design or discussion
   9383 @c <en>of the issues.  This seems like as good a place as any
   9384 @c <en>for this.
   9385 Here is a draft reserved checkout design or discussion
   9386 of the issues.  This seems like as good a place as any
   9387 for this.
   9388 
   9389 @c <en>Might want a cvs lock/cvs unlock--in which the names
   9390 @c <en>differ from edit/unedit because the network must be up
   9391 @c <en>for these to work.  unedit gives an error if there is a
   9392 @c <en>reserved checkout in place (so that people don't
   9393 @c <en>accidentally leave locks around); unlock gives an error
   9394 @c <en>if one is not in place (this is more arguable; perhaps
   9395 @c <en>it should act like unedit in that case).
   9396 Might want a cvs lock/cvs unlock--in which the names
   9397 differ from edit/unedit because the network must be up
   9398 for these to work.  unedit gives an error if there is a
   9399 reserved checkout in place (so that people don't
   9400 accidentally leave locks around); unlock gives an error
   9401 if one is not in place (this is more arguable; perhaps
   9402 it should act like unedit in that case).
   9403 
   9404 @c <en>On the other hand, might want it so that emacs,
   9405 @c <en>scripts, etc., can get ready to edit a file without
   9406 @c <en>having to know which model is in use.  In that case we
   9407 @c <en>would have a "cvs watch lock" (or .cvsrc?) (that is,
   9408 @c <en>three settings, "on", "off", and "lock").  Having cvs
   9409 @c <en>watch lock set would cause a get to record in the CVS
   9410 @c <en>directory which model is in use, and cause "cvs edit"
   9411 @c <en>to change behaviors.  We'd want a way to query which
   9412 @c <en>setting is in effect (this would be handy even if it is
   9413 @c <en>only "on" or "off" as presently).  If lock is in
   9414 @c <en>effect, then commit would require a lock before
   9415 @c <en>allowing a checkin; chmod wouldn't suffice (might be
   9416 @c <en>debatable--see chmod comment below, in watches--but it
   9417 @c <en>is the way people expect RCS to work and I can't think
   9418 @c <en>of any significant downside.  On the other hand, maybe
   9419 @c <en>it isn't worth bothering, because people who are used
   9420 @c <en>to RCS wouldn't think to use chmod anyway).
   9421 On the other hand, might want it so that emacs,
   9422 scripts, etc., can get ready to edit a file without
   9423 having to know which model is in use.  In that case we
   9424 would have a "cvs watch lock" (or .cvsrc?) (that is,
   9425 three settings, "on", "off", and "lock").  Having cvs
   9426 watch lock set would cause a get to record in the CVS
   9427 directory which model is in use, and cause "cvs edit"
   9428 to change behaviors.  We'd want a way to query which
   9429 setting is in effect (this would be handy even if it is
   9430 only "on" or "off" as presently).  If lock is in
   9431 effect, then commit would require a lock before
   9432 allowing a checkin; chmod wouldn't suffice (might be
   9433 debatable--see chmod comment below, in watches--but it
   9434 is the way people expect RCS to work and I can't think
   9435 of any significant downside.  On the other hand, maybe
   9436 it isn't worth bothering, because people who are used
   9437 to RCS wouldn't think to use chmod anyway).
   9438 
   9439 @c <en>Implementation: use file attributes or use RCS
   9440 @c <en>locking.  The former avoids more dependence on RCS
   9441 @c <en>behaviors we will need to reimplement as we librarify
   9442 @c <en>RCS, and makes it easier to import/export RCS files (in
   9443 @c <en>that context, want to ignore the locker field).  But
   9444 @c <en>note that RCS locks are per-branch, which is the
   9445 @c <en>correct behavior (this is also an issue for the "watch
   9446 @c <en>on" features; they should be per-branch too).
   9447 Implementation: use file attributes or use RCS
   9448 locking.  The former avoids more dependence on RCS
   9449 behaviors we will need to reimplement as we librarify
   9450 RCS, and makes it easier to import/export RCS files (in
   9451 that context, want to ignore the locker field).  But
   9452 note that RCS locks are per-branch, which is the
   9453 correct behavior (this is also an issue for the "watch
   9454 on" features; they should be per-branch too).
   9455 
   9456 @c <en>Here are a few more random notes about implementation
   9457 @c <en>details, assuming "cvs watch lock" and
   9458 Here are a few more random notes about implementation
   9459 details, assuming "cvs watch lock" and
   9460 
   9461 @c <en>CVS/Watched file?  Or try to fit this into CVS/Entries somehow?
   9462 @c <en>Cases: (1) file is checked out (unreserved or with watch on) by old
   9463 @c <en>version of @sc{cvs}, now we do something with new one, (2) file is checked
   9464 @c <en>out by new version, now we do something with old one.
   9465 CVS/Watched file?  Or try to fit this into CVS/Entries somehow?
   9466 Cases: (1) file is checked out (no-reservado or with watch on) by old
   9467 version of @sc{cvs}, now we do something with new one, (2) file is checked
   9468 out by new version, now we do something with old one.
   9469 
   9470 @c <en>Remote protocol would have a "Watched" analogous to "Mode".  Of course
   9471 @c <en>it would apply to all Updated-like requests.  How do we keep this
   9472 @c <en>setting up to date?  I guess that there wants to be a Watched request,
   9473 @c <en>and the server would send a new one if it isn't up to date? (Ugh--hard
   9474 @c <en>to implement and slows down "cvs -q update"--is there an easier way?)
   9475 Remote protocol would have a "Watched" analogous to "Mode".  Of course
   9476 it would apply to all Updated-like requests.  How do we keep this
   9477 setting up to date?  I guess that there wants to be a Watched request,
   9478 and the server would send a new one if it isn't up to date? (Ugh--hard
   9479 to implement and slows down "cvs -q update"--is there an easier way?)
   9480 
   9481 @c <en>"cvs edit"--checks CVS/Watched, and if watch lock, then sends
   9482 @c <en>"edit-lock" request.  Which comes back with a Checked-in with
   9483 @c <en>appropriate Watched (off, on, lock, locked, or some such?), or error
   9484 @c <en>message if already locked.
   9485 "cvs edit"--checks CVS/Watched, and if watch lock, then sends
   9486 "edit-lock" request.  Which comes back with a Checked-in with
   9487 appropriate Watched (off, on, lock, locked, or some such?), or error
   9488 message if already locked.
   9489 
   9490 @c <en>"cvs commit"--only will commit if off/on/locked.  lock is not OK.
   9491 "cvs commit"--only will commit if off/on/locked.  lock is not OK.
   9492 
   9493 @c <en>Doc:
   9494 @c <en>note that "cvs edit" must be connected to network if watch lock is in
   9495 @c <en>effect.
   9496 Doc:
   9497 note that "cvs edit" must be connected to network if watch lock is in
   9498 effect.
   9499 
   9500 @c <en>Talk about what to do if someone has locked a file and you want to
   9501 @c <en>edit that file.  (breaking locks, or lack thereof).
   9502 Talk about what to do if someone has locked a file and you want to
   9503 edit that file.  (breaking locks, or lack thereof).
   9504 
   9505 
   9506 @c <en>One other idea (which could work along with the
   9507 @c <en>existing "cvs admin -l" reserved checkouts, as well as
   9508 @c <en>the above):
   9509 One other idea (which could work along with the
   9510 existing "cvs admin -l" reserved checkouts, as well as
   9511 the above):
   9512 
   9513 @c <en>"cvs editors" could show who has the file locked, if
   9514 @c <en>someone does.
   9515 "cvs editors" could show who has the file locked, if
   9516 someone does.
   9517 
   9518 @end ignore
   9519 
   9520 @menu
   9521 @c <en>* File status::                 A file can be in several states
   9522 * Estado de arquivo::           Um arquivo pode ter vrios estados
   9523 @c <en>* Updating a file::             Bringing a file up-to-date
   9524 * Atualizando um arquivo::      Deixando um arquivo atualizado
   9525 @c <en>* Conflicts example::           An informative example
   9526 * Exemplo de conflitos::        Um exemplo informativo
   9527 @c <en>* Informing others::            To cooperate you must inform
   9528 * Informando os outros::        Para cooperar voc deve informar
   9529 @c <en>* Concurrency::                 Simultaneous repository access
   9530 * Concorrncia::                Acesso simultneo ao repositrio
   9531 @c <en>* Watches::                     Mechanisms to track who is editing files
   9532 * ???Watches???::               Mecanismos para rastrear quem est editando arquivos
   9533 @c <en>* Choosing a model::            Reserved or unreserved checkouts?
   9534 * Escolhendo um modelo::        ???checkout??? reservado ou no-reservado?
   9535 @end menu
   9536 
   9537 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   9538 @c <en>@node File status
   9539 @node Estado de arquivo
   9540 @c <en>@section File status
   9541 @section Estado de arquivo
   9542 @c <en>@cindex File status
   9543 @cindex Estado de arquivo
   9544 @c <en>@cindex Status of a file
   9545 @cindex Estado de um arquivo
   9546 
   9547 @c Shouldn't this start with an example or something,
   9548 @c introducing the unreserved checkout model?  Before we
   9549 @c dive into listing states?
   9550 @c <en>Based on what operations you have performed on a
   9551 @c <en>checked out file, and what operations others have
   9552 @c <en>performed to that file in the repository, one can
   9553 @c <en>classify a file in a number of states.  The states, as
   9554 @c <en>reported by the @code{status} command, are:
   9555 Baseado em quais operaes voc realizou num arquivo
   9556 ???checked out???, e quais operaes outros realizaram
   9557 neste arquivo no repositrio, podemos classificar o
   9558 arquivo em vrios estados.  Os estados, como so
   9559 mostrados pelo comando @code{status}, so:
   9560 
   9561 @c The order of items is chosen to group logically
   9562 @c similar outputs together.
   9563 @c People who want alphabetical can use the index...
   9564 @table @asis
   9565 @c <en>@cindex Up-to-date
   9566 @cindex Up-to-date (Atualizado)
   9567 @c <en>@item Up-to-date
   9568 @item Up-to-date (Atualizado)
   9569 @c <en>The file is identical with the latest revision in the
   9570 @c <en>repository for the branch in use.
   9571 O arquivo  identico  ltima reviso no repositrio,
   9572 para o ramo em questo.
   9573 @c FIXME: should we clarify "in use"?  The answer is
   9574 @c sticky tags, and trying to distinguish branch sticky
   9575 @c tags from non-branch sticky tags seems rather awkward
   9576 @c here.
   9577 @c FIXME: What happens with non-branch sticky tags?  Is
   9578 @c a stuck file "Up-to-date" or "Needs checkout" or what?
   9579 
   9580 @c <en>@item Locally Modified
   9581 @item Locally Modified (Modificado localmente)
   9582 @c <en>@cindex Locally Modified
   9583 @cindex Locally Modified (Modificado localmente)
   9584 @c <en>You have edited the file, and not yet committed your changes.
   9585 Voc alterou o arquivo, e ainda no ???committed???
   9586 suas mudanas.
   9587 
   9588 @c <en>@item Locally Added
   9589 @item Locally Added (Adicionado localmente)
   9590 @c <en>@cindex Locally Added
   9591 @cindex Locally Added (Adicionado localmente)
   9592 @c <en>You have added the file with @code{add}, and not yet
   9593 @c <en>committed your changes.
   9594 Voc adicionou o arquivo com @code{add}, e ainda no
   9595 ???committed??? suas mudanas.
   9596 @c There are many cases involving the file being
   9597 @c added/removed/modified in the working directory, and
   9598 @c added/removed/modified in the repository, which we
   9599 @c don't try to describe here.  I'm not sure that "cvs
   9600 @c status" produces a non-confusing output in most of
   9601 @c those cases.
   9602 
   9603 @c <en>@item Locally Removed
   9604 @item Locally Removed (Removido localmente)
   9605 @c <en>@cindex Locally Removed
   9606 @cindex Locally Removed (Removido localmente)
   9607 @c <en>You have removed the file with @code{remove}, and not yet
   9608 @c <en>committed your changes.
   9609 Voc removeu o arquivo com @code{remove}, e ainda no
   9610 ???committed??? suas mudanas.
   9611 
   9612 @c <en>@item Needs Checkout
   9613 @item Needs Checkout (Precisa de ???checkout???)
   9614 @c <en>@cindex Needs Checkout
   9615 @cindex Needs Checkout (Precisa de ???checkout???)
   9616 @c <en>Someone else has committed a newer revision to the
   9617 @c <en>repository.  The name is slightly misleading; you will
   9618 @c <en>ordinarily use @code{update} rather than
   9619 @c <en>@code{checkout} to get that newer revision.
   9620 Algum ???committed??? uma reviso nova no repositrio.
   9621 O nome est um pouco confuso; voc normalmente vai usar
   9622 @code{update} ao invs de @code{checkout} para obter a
   9623 nova reviso.
   9624 
   9625 @c <en>@item Needs Patch
   9626 @item Needs Patch (Precisa de ???patch???)
   9627 @c <en>@cindex Needs Patch
   9628 @cindex Needs Patch (Precisa de ???patch???)
   9629 @c See also newb-123j0 in sanity.sh (although that case
   9630 @c should probably be changed rather than documented).
   9631 @c <en>Like Needs Checkout, but the @sc{cvs} server will send
   9632 @c <en>a patch rather than the entire file.  Sending a patch or
   9633 @c <en>sending an entire file accomplishes the same thing.
   9634 Igual a 'Needs Checkout', mas o servidor do @sc{cvs}
   9635 vai mandar um ???patch??? ao invs de um arquivo
   9636 inteiro.  Mandar um ???patch??? ou um arquivo inteiro
   9637 d no mesmo.
   9638 
   9639 @c <en>@item Needs Merge
   9640 @item Needs Merge (Precisa mesclar)
   9641 @c <en>@cindex Needs Merge
   9642 @cindex Needs Merge (Precisa mesclar)
   9643 @c <en>Someone else has committed a newer revision to the repository, and you
   9644 @c <en>have also made modifications to the file.
   9645 Outra pessoa ???committed??? uma nova reviso no
   9646 repositrio, e voc fez modificaes no arquivo.
   9647 
   9648 @c <en>@item Unresolved Conflict
   9649 @item Unresolved Conflict (Conflito no-solucionado)
   9650 @c <en>@cindex Unresolved Conflict
   9651 @cindex Unresolved Conflict (Conflito no-solucionado)
   9652 @c FIXCVS - This file status needs to be changed to some more informative
   9653 @c text that distinguishes it more clearly from each of the Locally Added,
   9654 @c File had conflicts on merge, and Unknown status types, but an exact and
   9655 @c succinct wording escapes me at the moment.
   9656 @c <en>A file with the same name as this new file has been added to the repository
   9657 @c <en>from a second workspace.  This file will need to be moved out of the way
   9658 @c <en>to allow an @code{update} to complete.
   9659 Um arquivo com o mesmo nome deste arquivo novo foi
   9660 adicionado ao repositrio a partir de outra rea de
   9661 trabalho.  Este arquivo vai ter que ser movido para que
   9662 no atrapalhe um @code{update} de completar.
   9663 
   9664 @c <en>@item File had conflicts on merge
   9665 @item File had conflicts on merge (Arquivo teve conflitos na mescla)
   9666 @c <en>@cindex File had conflicts on merge
   9667 @cindex File had conflicts on merge (Arquivo teve conflitos na mescla)
   9668 @c is it worth saying that this message was "Unresolved
   9669 @c Conflict" in CVS 1.9 and earlier?  I'm inclined to
   9670 @c think that is unnecessarily confusing to new users.
   9671 @c <en>This is like Locally Modified, except that a previous
   9672 @c <en>@code{update} command gave a conflict.  If you have not
   9673 @c <en>already done so, you need to
   9674 @c <en>resolve the conflict as described in @ref{Conflicts example}.
   9675 Isto  parecido com 'Locally Modified', com a diferena que o comando
   9676 @code{update} anterior produziu um conflito.  Se voc
   9677 ainda no o fez, precisa resolver o conflito, como 
   9678 descrito em @ref{Exemplo de conflitos}.
   9679 
   9680 @c <en>@item Unknown
   9681 @item Unknown (Desconhecido)
   9682 @c <en>@cindex Unknown
   9683 @cindex Unknown (Desconhecido)
   9684 @c <en>@sc{cvs} doesn't know anything about this file.  For
   9685 @c <en>example, you have created a new file and have not run
   9686 @c <en>@code{add}.
   9687 O @sc{cvs} no sabe nada a respeito deste arquivo.  Por
   9688 exemplo, voc criou um novo arquivo e no rodou um
   9689 @code{add}.
   9690 @c
   9691 @c "Entry Invalid" and "Classify Error" are also in the
   9692 @c status.c.  The latter definitely indicates a CVS bug
   9693 @c (should it be worded more like "internal error" so
   9694 @c people submit bug reports if they see it?).  The former
   9695 @c I'm not as sure; I haven't tracked down whether/when it
   9696 @c appears in "cvs status" output.
   9697 
   9698 @end table
   9699 
   9700 @c <en>To help clarify the file status, @code{status} also
   9701 @c <en>reports the @code{Working revision} which is the
   9702 @c <en>revision that the file in the working directory derives
   9703 @c <en>from, and the @code{Repository revision} which is the
   9704 @c <en>latest revision in the repository for the branch in
   9705 @c <en>use.
   9706 Para facilitar o entendimento do estado do arquivo, o
   9707 comando @code{status} tambm relata a @code{reviso de
   9708 trabalho}, que  a reviso da qual o arquivo no
   9709 diretrio de trabalho deriva, e a @code{Reviso de
   9710 repositrio} que  a mais recente reviso no
   9711 repositrio, para o ramo em uso.
   9712 @c FIXME: should we clarify "in use"?  The answer is
   9713 @c sticky tags, and trying to distinguish branch sticky
   9714 @c tags from non-branch sticky tags seems rather awkward
   9715 @c here.
   9716 @c FIXME: What happens with non-branch sticky tags?
   9717 @c What is the Repository Revision there?  See the
   9718 @c comment at vn_rcs in cvs.h, which is kind of
   9719 @c confused--we really need to document better what this
   9720 @c field contains.
   9721 @c Q: Should we document "New file!" and other such
   9722 @c outputs or are they self-explanatory?
   9723 @c FIXME: what about the date to the right of "Working
   9724 @c revision"?  It doesn't appear with client/server and
   9725 @c seems unnecessary (redundant with "ls -l") so
   9726 @c perhaps it should be removed for non-client/server too?
   9727 @c FIXME: Need some examples.
   9728 @c FIXME: Working revision can also be something like
   9729 @c "-1.3" for a locally removed file.  Not at all
   9730 @c self-explanatory (and it is possible that CVS should
   9731 @c be changed rather than documenting this).
   9732 
   9733 @c Would be nice to have an @example showing output
   9734 @c from cvs status, with comments showing the xref
   9735 @c where each part of the output is described.  This
   9736 @c might fit in nicely if it is desirable to split this
   9737 @c node in two; one to introduce "cvs status" and one
   9738 @c to list each of the states.
   9739 @c <en>The options to @code{status} are listed in
   9740 @c <en>@ref{Invoking CVS}.  For information on its @code{Sticky tag}
   9741 @c <en>and @code{Sticky date} output, see @ref{Sticky tags}.
   9742 @c <en>For information on its @code{Sticky options} output,
   9743 @c <en>see the @samp{-k} option in @ref{update options}.
   9744 As opes para o comando @code{status} so listadas em
   9745 @ref{Chamando o CVS}.  Para informaes sobre suas
   9746 sadas @code{Sticky tag (Etiqueta adesiva)} e
   9747 @code{Sticky date (data adesiva)} veja em
   9748 @ref{Etiquetas adesivas}. Para informaes na sada
   9749 @code{Sticky options (Opes adesivas)}, veja a
   9750 opo @samp{-k} em @ref{update options}.
   9751 
   9752 @c <en>You can think of the @code{status} and @code{update}
   9753 @c <en>commands as somewhat complementary.  You use
   9754 @c <en>@code{update} to bring your files up to date, and you
   9755 @c <en>can use @code{status} to give you some idea of what an
   9756 @c <en>@code{update} would do (of course, the state of the
   9757 @c <en>repository might change before you actually run
   9758 @c <en>@code{update}).  In fact, if you want a command to
   9759 @c <en>display file status in a more brief format than is
   9760 @c <en>displayed by the @code{status} command, you can invoke
   9761 Voc pode pensar nos comandos @code{status} e
   9762 @code{update} como complementares.  Voc usa o
   9763 @code{update} para atualizar seus arquivos, e voc pode
   9764 usar o @code{status} para ter idia do que um
   9765 @code{update} deve fazer (obviamente, o estado do
   9766 repositrio pode mudar depois que voc rodar o
   9767 @code{update}).  De fato, se voc quiser um comando
   9768 para mostrar o estado de arquivos num formato mais
   9769 conciso do que o comando @code{status} mostra, voc
   9770 pode invocar
   9771 
   9772 @c <en>@cindex update, to display file status
   9773 @cindex update, para mostrar o estado dos arquivos
   9774 @example
   9775 $ cvs -n -q update
   9776 @end example
   9777 
   9778 @c <en>The @samp{-n} option means to not actually do the
   9779 @c <en>update, but merely to display statuses; the @samp{-q}
   9780 @c <en>option avoids printing the name of each directory.  For
   9781 @c <en>more information on the @code{update} command, and
   9782 @c <en>these options, see @ref{Invoking CVS}.
   9783 A opo @samp{-n} significa fingir que faz a
   9784 atualizao, mas simplesmente mostrar o estado; a opo
   9785 @samp{-q} suprime a exibio do nome de cada
   9786 diretrio.  Para mais informaes sobre o comando
   9787 @code{update}, e opes, veja em @ref{Chamando o CVS}.
   9788 
   9789 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   9790 @c <en>@node Updating a file
   9791 @node Atualizando um arquivo
   9792 @c <en>@section Bringing a file up to date
   9793 @section Deixando um arquivo atualizado
   9794 @c <en>@cindex Bringing a file up to date
   9795 @cindex Deixando um arquivo atualizado
   9796 @c <en>@cindex Updating a file
   9797 @cindex Atualizando um arquivo
   9798 @c <en>@cindex Merging a file
   9799 @cindex Mesclando um arquivo
   9800 @c <en>@cindex Update, introduction
   9801 @cindex Update, introduo
   9802 
   9803 @c <en>When you want to update or merge a file, use the @code{update}
   9804 @c <en>command.  For files that are not up to date this is roughly equivalent
   9805 @c <en>to a @code{checkout} command: the newest revision of the file is
   9806 @c <en>extracted from the repository and put in your working directory.
   9807 Quando voc quiser atualizar ou mesclar um arquivo, use o
   9808 comando @code{update}.  Para arquivos que no esto
   9809 atualizados isto  mais ou menos equivalente ao comando
   9810 @code{checkout}: a reviso mais nova do arquivo 
   9811 extrada do repositrio e posta no diretrio de trabalho.
   9812 
   9813 @c <en>Your modifications to a file are never lost when you
   9814 @c <en>use @code{update}.  If no newer revision exists,
   9815 @c <en>running @code{update} has no effect.  If you have
   9816 @c <en>edited the file, and a newer revision is available,
   9817 @c <en>@sc{cvs} will merge all changes into your working copy.
   9818 Suas modificaes num arquivo nunca so perdidas quando
   9819 voc usa @code{update}.  Se no existe uma reviso mais
   9820 nova, o @code{update} no faz nada.  Se voc
   9821 editou o arquivo, e uma nova reviso est disponvel, o
   9822 @sc{cvs} vai mesclar todas as alteraes na sua cpia
   9823 de trabalho.
   9824 
   9825 @c <en>For instance, imagine that you checked out revision 1.4 and started
   9826 @c <en>editing it.  In the meantime someone else committed revision 1.5, and
   9827 @c <en>shortly after that revision 1.6.  If you run @code{update} on the file
   9828 @c <en>now, @sc{cvs} will incorporate all changes between revision 1.4 and 1.6 into
   9829 @c <en>your file.
   9830 Por exemplo, imagine que voc ???checked out??? a
   9831 reviso 1.4 e comeou a edit-la.  Enquanto isto, outra
   9832 pessoa ???committed??? a reviso 1.5, e logo depois a
   9833 reviso 1.6.  Se voc rodar @code{update} no arquivo
   9834 agora, o @sc{cvs} vai incorporar todas as mudanas
   9835 entre a reviso 1.4 e 1.6 no seu arquivo.
   9836 
   9837 @c <en>@cindex Overlap
   9838 @cindex Sobreposio
   9839 @c <en>If any of the changes between 1.4 and 1.6 were made too
   9840 @c <en>close to any of the changes you have made, an
   9841 @c <en>@dfn{overlap} occurs.  In such cases a warning is
   9842 @c <en>printed, and the resulting file includes both
   9843 @c <en>versions of the lines that overlap, delimited by
   9844 @c <en>special markers.
   9845 @c <en>@xref{update}, for a complete description of the
   9846 @c <en>@code{update} command.
   9847 Se quaisquer das mudanas entre 1.4 e 1.6 ocorreram
   9848 suficientemente prximas de quaisquer das suas
   9849 mudanas, uma @dfn{sobreposio} ocorre.  Nestes casos
   9850 um aviso  mostrado, e o arquivo resultante contm
   9851 ambas as verses das linhas que se sobrepuseram,
   9852 delimitadas por marcadores especiais. @xref{update},
   9853 para uma descrio completa do comando @code{update}.
   9854 
   9855 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   9856 @c <en>@node Conflicts example
   9857 @node Exemplo de conflitos
   9858 @c <en>@section Conflicts example
   9859 @section Exemplo de conflitos
   9860 @c <en>@cindex Merge, an example
   9861 @cindex Merge, an example
   9862 @c <en>@cindex Example of merge
   9863 @cindex Example of merge
   9864 @c <en>@cindex driver.c (merge example)
   9865 @cindex driver.c (merge example)
   9866 
   9867 @c <en>Suppose revision 1.4 of @file{driver.c} contains this:
   9868 Suponha que a reviso 1.4 de @file{driver.c} contm isto:
   9869 
   9870 @example
   9871 #include <stdio.h>
   9872 
   9873 void main()
   9874 @{
   9875     parse();
   9876     if (nerr == 0)
   9877         gencode();
   9878     else
   9879         fprintf(stderr, "No code generated.\n");
   9880     exit(nerr == 0 ? 0 : 1);
   9881 @}
   9882 @end example
   9883 
   9884 @noindent
   9885 @c <en>Revision 1.6 of @file{driver.c} contains this:
   9886 A reviso 1.6 de @file{driver.c} contm isto:
   9887 
   9888 @example
   9889 #include <stdio.h>
   9890 
   9891 int main(int argc,
   9892          char **argv)
   9893 @{
   9894     parse();
   9895     if (argc != 1)
   9896     @{
   9897         fprintf(stderr, "tc: No args expected.\n");
   9898         exit(1);
   9899     @}
   9900     if (nerr == 0)
   9901         gencode();
   9902     else
   9903         fprintf(stderr, "No code generated.\n");
   9904     exit(!!nerr);
   9905 @}
   9906 @end example
   9907 
   9908 @noindent
   9909 @c <en>Your working copy of @file{driver.c}, based on revision
   9910 @c <en>1.4, contains this before you run @samp{cvs update}:
   9911 @c <en>@c -- Really include "cvs"?
   9912 Sua cpia de trabalho de @file{driver.c}, baseada na
   9913 reviso 1.4, contm isto, antes de voc rodar um @samp{cvs update}:
   9914 @c -- Really include "cvs"?
   9915 
   9916 @example
   9917 #include <stdlib.h>
   9918 #include <stdio.h>
   9919 
   9920 void main()
   9921 @{
   9922     init_scanner();
   9923     parse();
   9924     if (nerr == 0)
   9925         gencode();
   9926     else
   9927         fprintf(stderr, "No code generated.\n");
   9928     exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
   9929 @}
   9930 @end example
   9931 
   9932 @noindent
   9933 @c <en>You run @samp{cvs update}:
   9934 @c <en>@c -- Really include "cvs"?
   9935 Ento voc roda o @samp{cvs update}:
   9936 @c -- Really include "cvs"?
   9937 
   9938 @example
   9939 $ cvs update driver.c
   9940 RCS file: /usr/local/cvsroot/yoyodyne/tc/driver.c,v
   9941 retrieving revision 1.4
   9942 retrieving revision 1.6
   9943 Merging differences between 1.4 and 1.6 into driver.c
   9944 rcsmerge warning: overlaps during merge
   9945 cvs update: conflicts found in driver.c
   9946 C driver.c
   9947 @end example
   9948 
   9949 @noindent
   9950 @c <en>@cindex Conflicts (merge example)
   9951 @cindex Conflitos (exemplo de mesclagem)
   9952 @c <en>@sc{cvs} tells you that there were some conflicts.
   9953 @c <en>Your original working file is saved unmodified in
   9954 @c <en>@file{.#driver.c.1.4}.  The new version of
   9955 @c <en>@file{driver.c} contains this:
   9956 O @sc{cvs} disse a voc que existem conflitos.
   9957 Seu arquivo de trabalho original  guardado sem
   9958 modificaes em @file{.#driver.c.1.4}.  A nova verso
   9959 de @file{driver.c} contm isto:
   9960 
   9961 @example
   9962 #include <stdlib.h>
   9963 #include <stdio.h>
   9964 
   9965 int main(int argc,
   9966          char **argv)
   9967 @{
   9968     init_scanner();
   9969     parse();
   9970     if (argc != 1)
   9971     @{
   9972         fprintf(stderr, "tc: No args expected.\n");
   9973         exit(1);
   9974     @}
   9975     if (nerr == 0)
   9976         gencode();
   9977     else
   9978         fprintf(stderr, "No code generated.\n");
   9979 @asis{}<<<<<<< driver.c
   9980     exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
   9981 @asis{}=======
   9982     exit(!!nerr);
   9983 @asis{}>>>>>>> 1.6
   9984 @}
   9985 @end example
   9986 
   9987 @noindent
   9988 @c <en>@cindex Markers, conflict
   9989 @cindex Marcadores, conflito
   9990 @c <en>@cindex Conflict markers
   9991 @cindex Marcadores de conflito
   9992 @c <en>@cindex <<<<<<<
   9993 @cindex <<<<<<<
   9994 @c <en>@cindex >>>>>>>
   9995 @cindex >>>>>>>
   9996 @c <en>@cindex =======
   9997 @cindex =======
   9998 
   9999 @c <en>Note how all non-overlapping modifications are incorporated in your working
   10000 @c <en>copy, and that the overlapping section is clearly marked with
   10001 @c <en>@samp{<<<<<<<}, @samp{=======} and @samp{>>>>>>>}.
   10002 Observe como todas as modificaes sem sobreposio
   10003 foram incorporadas na sua cpia de trabalho, e que as
   10004 sees com sobreposio so marcadas de forma clara com
   10005 @samp{<<<<<<<}, @samp{=======} e @samp{>>>>>>>}.
   10006 
   10007 @c <en>@cindex Resolving a conflict
   10008 @cindex Resolvendo um conflito
   10009 @c <en>@cindex Conflict resolution
   10010 @cindex Resoluo de conflitos
   10011 @c <en>You resolve the conflict by editing the file, removing the markers and
   10012 @c <en>the erroneous line.  Suppose you end up with this file:
   10013 @c <en>@c -- Add xref to the pcl-cvs manual when it talks
   10014 @c <en>@c -- about this.
   10015 Voc resolve o conflito editando o arquivo, removendo os
   10016 marcadores e as linhas erradas.  Suponha que voc ficou
   10017 com este arquivo:
   10018 @c -- Add xref to the pcl-cvs manual when it talks
   10019 @c -- about this.
   10020 @example
   10021 #include <stdlib.h>
   10022 #include <stdio.h>
   10023 
   10024 int main(int argc,
   10025          char **argv)
   10026 @{
   10027     init_scanner();
   10028     parse();
   10029     if (argc != 1)
   10030     @{
   10031         fprintf(stderr, "tc: No args expected.\n");
   10032         exit(1);
   10033     @}
   10034     if (nerr == 0)
   10035         gencode();
   10036     else
   10037         fprintf(stderr, "No code generated.\n");
   10038     exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
   10039 @}
   10040 @end example
   10041 
   10042 @noindent
   10043 @c <en>You can now go ahead and commit this as revision 1.7.
   10044 Voc agora pode seguir em frente e ???commit??? ele
   10045 como a reviso 1.7.
   10046 
   10047 @example
   10048 $ cvs commit -m "Initialize scanner. Use symbolic exit values." driver.c
   10049 Checking in driver.c;
   10050 /usr/local/cvsroot/yoyodyne/tc/driver.c,v  <--  driver.c
   10051 new revision: 1.7; previous revision: 1.6
   10052 done
   10053 @end example
   10054 
   10055 @c <en>For your protection, @sc{cvs} will refuse to check in a
   10056 @c <en>file if a conflict occurred and you have not resolved
   10057 @c <en>the conflict.  Currently to resolve a conflict, you
   10058 @c <en>must change the timestamp on the file.  In previous
   10059 @c <en>versions of @sc{cvs}, you also needed to
   10060 @c <en>insure that the file contains no conflict markers.
   10061 @c <en>Because
   10062 @c <en>your file may legitimately contain conflict markers (that
   10063 @c <en>is, occurrences of @samp{>>>>>>> } at the start of a
   10064 @c <en>line that don't mark a conflict), the current
   10065 @c <en>version of @sc{cvs} will print a warning and proceed to
   10066 @c <en>check in the file.
   10067 Para sua segurana, o @sc{cvs} no vai aceitar o check
   10068 in de um arquivo se um conflito ocorreu e voc no
   10069 resolveu o conflito.  Atualmente, para resolver um
   10070 conflito, voc deve mudar a data do arquivo.  Em
   10071 verses anteriores do @sc{cvs}, voc tambm precisava
   10072 ter certeza de que o arquivo no continha marcadores de
   10073 conflito.  J que seu arquivo pode conter marcadores de
   10074 conflito ???de forma legtima??? (isto , a ocorrncia
   10075 de @samp{>>>>>>> } no comeo de uma linha que no marca
   10076 um conflito), a verso atual do @sc{cvs} vai mostrar um
   10077 aviso e continuar a fazer o ???check in??? do arquivo.
   10078 @c The old behavior was really icky; the only way out
   10079 @c was to start hacking on
   10080 @c the @code{CVS/Entries} file or other such workarounds.
   10081 @c
   10082 @c If the timestamp thing isn't considered nice enough,
   10083 @c maybe there should be a "cvs resolved" command
   10084 @c which clears the conflict indication.  For a nice user
   10085 @c interface, this should be invoked by an interactive
   10086 @c merge tool like emerge rather than by the user
   10087 @c directly--such a tool can verify that the user has
   10088 @c really dealt with each conflict.
   10089 
   10090 @c <en>@cindex emerge
   10091 @cindex emerge
   10092 @c <en>If you use release 1.04 or later of pcl-cvs (a @sc{gnu}
   10093 @c <en>Emacs front-end for @sc{cvs}) you can use an Emacs
   10094 @c <en>package called emerge to help you resolve conflicts.
   10095 @c <en>See the documentation for pcl-cvs.
   10096 Se voc usa a release 1.04 ou posterior do pcl-cvs (uma
   10097 interface amigvel para o  @sc{cvs} de dentro do
   10098 @sc{gnu} Emacs) voc pode usar um pacote do Emacs
   10099 chamado emerge para te ajudar a resolver os
   10100 conflitos. Veja na documentao do pcl-cvs.
   10101 
   10102 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   10103 @c <en>@node Informing others
   10104 @node Informando os outros
   10105 @c <en>@section Informing others about commits
   10106 @section Informando os outros sobre ???commits???
   10107 @c <en>@cindex Informing others
   10108 @cindex Informando os outros
   10109 @c <en>@cindex Spreading information
   10110 @cindex Divulgando informao
   10111 @c <en>@cindex Mail, automatic mail on commit
   10112 @cindex e-mail, mensagens automticas no ???commit???
   10113 
   10114 @c <en>It is often useful to inform others when you commit a
   10115 @c <en>new revision of a file.  The @samp{-i} option of the
   10116 @c <en>@file{modules} file, or the @file{loginfo} file, can be
   10117 @c <en>used to automate this process.  @xref{modules}.
   10118 @c <en>@xref{loginfo}.  You can use these features of @sc{cvs}
   10119 @c <en>to, for instance, instruct @sc{cvs} to mail a
   10120 @c <en>message to all developers, or post a message to a local
   10121 @c <en>newsgroup.
   10122 s vezes  til informar os outros quando voc
   10123 ???commit??? uma nova reviso de um arquivo.  A opo
   10124 @samp{-i} do arquivo @file{modules}, ou do arquivo
   10125 @file{loginfo}, pode ser usada para automatizar este
   10126 processo.  @xref{modules}.  @xref{loginfo}.  Voc pode
   10127 usar estas funcionalidades do @sc{cvs} para, por
   10128 exemplo, instruir o @sc{cvs} a enviar uma mensagem a
   10129 todos os desenvolvedores, ou enviar uma mensagem para
   10130 um newsgroup local.
   10131 @c -- More text would be nice here.
   10132 
   10133 @c <en>@node Concurrency
   10134 @node Concorrncia
   10135 @c <en>@section Several developers simultaneously attempting to run CVS
   10136 @section Vrios desenvolvedores tentando rodar o CVS simultneamente
   10137 
   10138 @c <en>@cindex Locks, cvs, introduction
   10139 @cindex Locks, cvs, introduo
   10140 @c For a discussion of *why* CVS creates locks, see
   10141 @c the comment at the start of src/lock.c
   10142 @c <en>If several developers try to run @sc{cvs} at the same
   10143 @c <en>time, one may get the following message:
   10144 Se vrios desenvolvedores tentam rodar o @sc{cvs} no
   10145 mesmo momento, algum vai receber esta mensagem:
   10146 
   10147 @example
   10148 [11:43:23] waiting for bach's lock in /usr/local/cvsroot/foo
   10149 @end example
   10150 
   10151 @c <en>@cindex #cvs.rfl, removing
   10152 @cindex #cvs.rfl, removendo
   10153 @c <en>@cindex #cvs.wfl, removing
   10154 @cindex #cvs.wfl, removendo
   10155 @c <en>@cindex #cvs.lock, removing
   10156 @cindex #cvs.lock, removendo
   10157 @c <en>@sc{cvs} will try again every 30 seconds, and either
   10158 @c <en>continue with the operation or print the message again,
   10159 @c <en>if it still needs to wait.  If a lock seems to stick
   10160 @c <en>around for an undue amount of time, find the person
   10161 @c <en>holding the lock and ask them about the cvs command
   10162 @c <en>they are running.  If they aren't running a cvs
   10163 @c <en>command, look in the repository directory mentioned in
   10164 @c <en>the message and remove files which they own whose names
   10165 @c <en>start with @file{#cvs.rfl},
   10166 @c <en>@file{#cvs.wfl}, or @file{#cvs.lock}.
   10167 O @sc{cvs} vai tentar de novo a cada 30 segundos, e vai
   10168 ou continuar com a operao ou mostrar a mensagem de
   10169 novo, se ainda precisar esperar.  Se uma trava (lock)
   10170 permanece por muito tempo, procure a pessoa que  dona
   10171 da trava e pergunte que comando do cvs ele est
   10172 rodando.  Se ele/ela no estiver rodando um comando do
   10173 cvs, procure no diretrio do repositrio que est
   10174 referenciado na mensagem e remova os arquivos cujos
   10175 nomes comeam com @file{#cvs.rfl},
   10176 @file{#cvs.wfl}, or @file{#cvs.lock}.
   10177 
   10178 @c <en>Note that these locks are to protect @sc{cvs}'s
   10179 @c <en>internal data structures and have no relationship to
   10180 @c <en>the word @dfn{lock} in the sense used by
   10181 @c <en>@sc{rcs}---which refers to reserved checkouts
   10182 @c <en>(@pxref{Multiple developers}).
   10183 Observe que estas travas so feitas para proteger a
   10184 estrutura de dados interna do @sc{cvs} e no tem
   10185 relao com a palavra @dfn{lock (trava)} no sentido
   10186 usado pelo @sc{rcs}---que se refere a ???checkouts???
   10187 reservados (@pxref{Mltiplos desenvolvedores}).
   10188 
   10189 @c <en>Any number of people can be reading from a given
   10190 @c <en>repository at a time; only when someone is writing do
   10191 @c <en>the locks prevent other people from reading or writing.
   10192 Qualquer quantidade de pessoas pode ler de um
   10193 repositrio num determinado momento; apenas quando
   10194 algum est gravando  que as travas evitam que outras
   10195 pessoas leiam ou gravem.
   10196 
   10197 @c <en>@cindex Atomic transactions, lack of
   10198 @cindex Transaes atmicas, falta de
   10199 @c <en>@cindex Transactions, atomic, lack of
   10200 @cindex Atmicas, transaes, falta de
   10201 @c the following talks about what one might call commit/update
   10202 @c atomicity.
   10203 @c Probably also should say something about
   10204 @c commit/commit atomicity, that is, "An update will
   10205 @c not get partial versions of more than one commit".
   10206 @c CVS currently has this property and I guess we can
   10207 @c make it a documented feature.
   10208 @c For example one person commits
   10209 @c a/one.c and b/four.c and another commits a/two.c and
   10210 @c b/three.c.  Then an update cannot get the new a/one.c
   10211 @c and a/two.c and the old b/four.c and b/three.c.
   10212 @c <en>One might hope for the following property:
   10213 Espera-se que a seguinte propriedade valha:
   10214 
   10215 @quotation
   10216 @c <en>If someone commits some changes in one cvs command,
   10217 @c <en>then an update by someone else will either get all the
   10218 @c <en>changes, or none of them.
   10219 Se algum ???commits??? algumas mudanas com um comando
   10220 cvs, ento um ???update??? por outra pessoa vai obter
   10221 ou todas as mudanas, ou nenhuma.
   10222 @end quotation
   10223 
   10224 @noindent
   10225 @c <en>but @sc{cvs} does @emph{not} have this property.  For
   10226 @c <en>example, given the files
   10227 mas o @sc{cvs} @emph{no} tem esta propriedade.  Por
   10228 exemplo, dados os arquivos
   10229 
   10230 @example
   10231 a/one.c
   10232 a/two.c
   10233 b/three.c
   10234 b/four.c
   10235 @end example
   10236 
   10237 @noindent
   10238 @c <en>if someone runs
   10239 se algum rodar
   10240 
   10241 @example
   10242 cvs ci a/two.c b/three.c
   10243 @end example
   10244 
   10245 @noindent
   10246 @c <en>and someone else runs @code{cvs update} at the same
   10247 @c <en>time, the person running @code{update} might get only
   10248 @c <en>the change to @file{b/three.c} and not the change to
   10249 @c <en>@file{a/two.c}.
   10250 e outra pessoa rodar @code{cvs update} no mesmo
   10251 momento, a pessoa rodando @code{update} pode receber
   10252 apenas as alteraes feitas em @file{b/three.c} e no
   10253 receber as feitas em @file{a/two.c}.
   10254 
   10255 @c <en>@node Watches
   10256 @node ???Watches???
   10257 @c <en>@section Mechanisms to track who is editing files
   10258 @section Mechanisms to track who is editing files
   10259 @c <en>@cindex Watches
   10260 @cindex ???Watches???
   10261 
   10262 @c <en>For many groups, use of @sc{cvs} in its default mode is
   10263 @c <en>perfectly satisfactory.  Users may sometimes go to
   10264 @c <en>check in a modification only to find that another
   10265 @c <en>modification has intervened, but they deal with it and
   10266 @c <en>proceed with their check in.  Other groups prefer to be
   10267 @c <en>able to know who is editing what files, so that if two
   10268 @c <en>people try to edit the same file they can choose to
   10269 @c <en>talk about who is doing what when rather than be
   10270 @c <en>surprised at check in time.  The features in this
   10271 @c <en>section allow such coordination, while retaining the
   10272 @c <en>ability of two developers to edit the same file at the
   10273 @c <en>same time.
   10274 Para muitos grupos, o uso do @sc{cvs} em sua forma
   10275 padro  perfeitamente satisfatrio.  Os usurios vo
   10276 algumas vezes ???check in??? uma modificao e
   10277 descobrir que outras intervenes foram feitas, mas
   10278 eles tratam isto e seguem em frente com o ???check
   10279 in???.  Outros grupos preferem ser capazes de saber
   10280 quem est editando quais arquivos, de forma que se duas
   10281 pessoas tentam editar o mesmo arquivo elas podem
   10282 conversar sobre quem vai editar o que ao invs de serem
   10283 surpreendidos na hora do ???check in???.  As
   10284 funcionalidades nesta seo permitem tal nvel de
   10285 coordenao, sem abrir mo da possibilidade de que dois
   10286 desenvolvedores editem o mesmo arquivo ao mesmo tempo.
   10287 
   10288 @c Some people might ask why CVS does not enforce the
   10289 @c rule on chmod, by requiring a cvs edit before a cvs
   10290 @c commit.  The main reason is that it could always be
   10291 @c circumvented--one could edit the file, and
   10292 @c then when ready to check it in, do the cvs edit and put
   10293 @c in the new contents and do the cvs commit.  One
   10294 @c implementation note: if we _do_ want to have cvs commit
   10295 @c require a cvs edit, we should store the state on
   10296 @c whether the cvs edit has occurred in the working
   10297 @c directory, rather than having the server try to keep
   10298 @c track of what working directories exist.
   10299 @c FIXME: should the above discussion be part of the
   10300 @c manual proper, somewhere, not just in a comment?
   10301 @c <en>For maximum benefit developers should use @code{cvs
   10302 @c <en>edit} (not @code{chmod}) to make files read-write to
   10303 @c <en>edit them, and @code{cvs release} (not @code{rm}) to
   10304 @c <en>discard a working directory which is no longer in use,
   10305 @c <en>but @sc{cvs} is not able to enforce this behavior.
   10306 Para um mximo apreveitamento, os desenvolvedores devem
   10307 usar @code{cvs edit} (e no @code{chmod}) para tornar
   10308 os arquivos com permisso de leitura e escrita para
   10309 edit-los, e @code{cvs release} (no @code{rm}) para
   10310 descartar um diretrio de trabalho que no est mais em
   10311 uso, mas o @sc{cvs} no  capaz de obrigar tal
   10312 comportamento.
   10313 
   10314 @c I'm a little dissatisfied with this presentation,
   10315 @c because "watch on"/"edit"/"editors" are one set of
   10316 @c functionality, and "watch add"/"watchers" is another
   10317 @c which is somewhat orthogonal even though they interact in
   10318 @c various ways.  But I think it might be
   10319 @c confusing to describe them separately (e.g. "watch
   10320 @c add" with loginfo).  I don't know.
   10321 
   10322 @menu
   10323 @c <en>* Setting a watch::             Telling CVS to watch certain files
   10324 * Ajustando um ???watch???::    Dizendo ao CVS para ???watch??? certos arquivos
   10325 @c <en>* Getting Notified::            Telling CVS to notify you
   10326 * Recebendo Notificaes::      Dizendo ao CVS para te notificar
   10327 @c <en>* Editing files::               How to edit a file which is being watched
   10328 * Editando arquivos::           Como editar um arquivo que est sendo ???watched???
   10329 @c <en>* Watch information::           Information about who is watching and editing
   10330 * Informaes de ???Watch???::  Informaes a respeito de quem
   10331                                 est ???watching??? e quem est editando
   10332 @c <en>* Watches Compatibility::       Watches interact poorly with CVS 1.6 or earlier
   10333 * Compatibilidade de ???Watches???::   ???Watches??? interagem fracamente
   10334                                        com CVS 1.6 ou anteriores
   10335 @end menu
   10336 
   10337 @c <en>@node Setting a watch
   10338 @node Ajustando um ???watch???
   10339 @c <en>@subsection Telling CVS to watch certain files
   10340 @subsection Dizendo ao CVS para ???watch??? certos arquivos
   10341 
   10342 @c <en>To enable the watch features, you first specify that
   10343 @c <en>certain files are to be watched.
   10344 Para habilitar a funcionalidade de ???watch???, voc
   10345 deve primeiro especificar que certos arquivos devem ser
   10346 ???watched???.
   10347 
   10348 @c <en>@cindex watch on (subcommand)
   10349 @cindex watch on (subcomando)
   10350 @c <en>@deffn Command {cvs watch on} [@code{-lR}] [@var{files}]@dots{}
   10351 @deffn Comando {cvs watch on} [@code{-lR}] [@var{arquivos}]@dots{}
   10352 
   10353 @c <en>@cindex Read-only files, and watches
   10354 @cindex Arquivos somente leitura, e ???watches???
   10355 @c <en>Specify that developers should run @code{cvs edit}
   10356 @c <en>before editing @var{files}.  @sc{cvs} will create working
   10357 @c <en>copies of @var{files} read-only, to remind developers
   10358 @c <en>to run the @code{cvs edit} command before working on
   10359 @c <en>them.
   10360 Especifique que os desenvolvedores devem rodar o
   10361 @code{cvs edit} antes de editar arquivos
   10362 @var{arquivos}.  O @sc{cvs} vai criar cpias de
   10363 trabalho dos @var{arquivos} como somente-leitura, para
   10364 lembrar os desenvolvedores de rodarem o comando
   10365 @code{cvs edit} antes de trabalhar neles.
   10366 
   10367 @c <en>If @var{files} includes the name of a directory, @sc{cvs}
   10368 @c <en>arranges to watch all files added to the corresponding
   10369 @c <en>repository directory, and sets a default for files
   10370 @c <en>added in the future; this allows the user to set
   10371 @c <en>notification policies on a per-directory basis.  The
   10372 @c <en>contents of the directory are processed recursively,
   10373 @c <en>unless the @code{-l} option is given.
   10374 @c <en>The @code{-R} option can be used to force recursion if the @code{-l}
   10375 @c <en>option is set in @file{~/.cvsrc} (@pxref{~/.cvsrc}).
   10376 Se @var{arquivos} inclui o nome de uma diretrio, o
   10377 @sc{cvs} faz ???watch??? em todos os arquivos
   10378 adicionados ao diretrio correspondente do repositrio,
   10379 e ajusta um padro para arquivos adicionados no futuro;
   10380 isto permite que o usurio ajuste as polticas de
   10381 notificao baseada em diretrios.  O contedo do
   10382 diretrio  processado recursivamente, a menos que a
   10383 opo @code{-l} seja dada. A opo @code{-R} pode ser
   10384 usada para forar recurso se a opo @code{-l} est
   10385 ativada em @file{~/.cvsrc} (@pxref{~/.cvsrc}).
   10386 
   10387 @c <en>If @var{files} is omitted, it defaults to the current directory.
   10388 Se @var{arquivos}  omitido, o padro  o diretrio atual.
   10389 
   10390 @c <en>@cindex watch off (subcommand)
   10391 @cindex watch off (subcomando)
   10392 @end deffn
   10393 
   10394 @c <en>@deffn Command {cvs watch off} [@code{-lR}] [@var{files}]@dots{}
   10395 @deffn Comando {cvs watch off} [@code{-lR}] [@var{arquivos}]@dots{}
   10396 
   10397 @c <en>Do not create @var{files} read-only on checkout; thus,
   10398 @c <en>developers will not be reminded to use @code{cvs edit}
   10399 @c <en>and @code{cvs unedit}.
   10400 No cria @var{arquivos} somente-leitura no
   10401 ???checkout???; portanto, os desenvolvedores no sero
   10402 lembrados de usar @code{cvs edit} e @code{cvs unedit}.
   10403 @ignore
   10404 @sc{cvs} will check out @var{files}
   10405 read-write as usual, unless other permissions override
   10406 due to the @code{PreservePermissions} option being
   10407 enabled in the @file{config} administrative file
   10408 (@pxref{Special Files}, @pxref{config})
   10409 @end ignore
   10410 
   10411 @c <en>The @var{files} and options are processed as for @code{cvs
   10412 @c <en>watch on}.
   10413 Os @var{arquivos} e opes so processados como no
   10414 @code{cvs watch on}.
   10415 
   10416 @end deffn
   10417 
   10418 @c <en>@node Getting Notified
   10419 @node Recebendo Notificaes
   10420 @c <en>@subsection Telling CVS to notify you
   10421 @subsection Dizendo ao CVS para te notificar
   10422 
   10423 @c <en>You can tell @sc{cvs} that you want to receive
   10424 @c <en>notifications about various actions taken on a file.
   10425 @c <en>You can do this without using @code{cvs watch on} for
   10426 @c <en>the file, but generally you will want to use @code{cvs
   10427 @c <en>watch on}, to remind developers to use the @code{cvs edit}
   10428 @c <en>command.
   10429 Voc pode dizer ao @sc{cvs} que voc quer receber
   10430 notificaes sobre vrias aes tomadas em um
   10431 arquivo. Voc pode fazer isto sem usar o @code{cvs
   10432 watch on} para o arquivo, mas geralmente voc vai
   10433 querer usar @code{cvs watch on}, para lembrar os
   10434 desenvolvedores de usar o comando @code{cvs edit}.
   10435 
   10436 @c <en>@cindex watch add (subcommand)
   10437 @cindex watch add (subcomando)
   10438 @c <en>@deffn Command {cvs watch add} [@code{-lR}] [@code{-a} @var{action}]@dots{} [@var{files}]@dots{}
   10439 @deffn Comando {cvs watch add} [@code{-lR}] [@code{-a} @var{ao}]@dots{} [@var{arquivos}]@dots{}
   10440 
   10441 @c <en>Add the current user to the list of people to receive notification of
   10442 @c <en>work done on @var{files}.
   10443 Adiciona o usurio atual  lista de pessoas que recebem
   10444 notificaes sobre o trabalho feito em @var{arquivos}.
   10445 
   10446 @c <en>The @code{-a} option specifies what kinds of events @sc{cvs} should notify
   10447 @c <en>the user about.  @var{action} is one of the following:
   10448 A opo @code{-a} especifica quais tipos de eventos o
   10449 @sc{cvs} deve notificar o usurio.  @var{ao}  uma
   10450 das seguintes:
   10451 
   10452 @table @code
   10453 
   10454 @c <en>@item edit
   10455 @item edit
   10456 @c <en>Another user has applied the @code{cvs edit} command (described
   10457 @c <en>below) to a watched file.
   10458 Outro usurio executou o comando @code{cvs edit}
   10459 (descrito abaixo) para um arquivo ???watched???.
   10460 
   10461 @c <en>@item commit
   10462 @item commit
   10463 @c <en>Another user has committed changes to one of the named @var{files}.
   10464 Outro usurio fez ???commit??? em mudanas em um dos @var{arquivos}.
   10465 
   10466 @c <en>@item unedit
   10467 @item unedit
   10468 @c <en>Another user has abandoned editing a file (other than by committing changes).
   10469 @c <en>They can do this in several ways, by:
   10470 Outro usurio abandonou a edio de um arquivo (sem ser
   10471 por ???committing??? mudanas). Eles podem fazer isto
   10472 de vrias maneiras:
   10473 
   10474 @itemize @bullet
   10475 
   10476 @item
   10477 @c <en>applying the @code{cvs unedit} command (described below) to the file
   10478 rodando o comando @code{cvs unedit} (descrito abaixo)
   10479 no arquivo
   10480 
   10481 @item
   10482 @c <en>applying the @code{cvs release} command (@pxref{release}) to the file's parent directory
   10483 @c <en>(or recursively to a directory more than one level up)
   10484 rodando o comando @code{cvs release} (@pxref{release})
   10485 no diretrio pai do arquivo
   10486 (ou num diretrio mais acima recursivamente)
   10487 
   10488 @item
   10489 @c <en>deleting the file and allowing @code{cvs update} to recreate it
   10490 apagando o arquivo e permitindo que o @code{cvs update} o recrie
   10491 
   10492 @end itemize
   10493 
   10494 @c <en>@item all
   10495 @item all
   10496 @c <en>All of the above.
   10497 Todos acima.
   10498 
   10499 @c <en>@item none
   10500 @item none
   10501 @c <en>None of the above.  (This is useful with @code{cvs edit},
   10502 @c <en>described below.)
   10503 Nenhum dos acima.  (Isto  til com o @code{cvs edit},
   10504 descrito abaixo.)
   10505 
   10506 @end table
   10507 
   10508 @c <en>The @code{-a} option may appear more than once, or not at all.  If
   10509 @c <en>omitted, the action defaults to @code{all}.
   10510 A opo @code{-a} pode aparecer mais de uma vez, ou
   10511 nenhuma vez.  Se no aparecer, a ao padro  @code{all}.
   10512 
   10513 @c <en>The @var{files} and options are processed as for
   10514 @c <en>@code{cvs watch on}.
   10515 Os @var{arquivos} e opes so processados como no
   10516 @code{cvs watch on}.
   10517 
   10518 @end deffn
   10519 
   10520 
   10521 @c <en>@cindex watch remove (subcommand)
   10522 @cindex watch remove (subcomando)
   10523 @c <en>@deffn Command {cvs watch remove} [@code{-lR}] [@code{-a} @var{action}]@dots{} [@var{files}]@dots{}
   10524 @deffn Comando {cvs watch remove} [@code{-lR}] [@code{-a} @var{ao}]@dots{} [@var{arquivos}]@dots{}
   10525 
   10526 @c <en>Remove a notification request established using @code{cvs watch add};
   10527 @c <en>the arguments are the same.  If the @code{-a} option is present, only
   10528 @c <en>watches for the specified actions are removed.
   10529 Remove um pedido de notificao posto por um @code{cvs
   10530 watch add}; Os argumentos so os mesmos.  Se a opo
   10531 @code{-a} est presente, apenas os ???watches??? para as
   10532 aes especificadas so removidos.
   10533 
   10534 @end deffn
   10535 
   10536 @c <en>@cindex notify (admin file)
   10537 @cindex notify (arquivo administrativo)
   10538 @c <en>When the conditions exist for notification, @sc{cvs}
   10539 @c <en>calls the @file{notify} administrative file.  Edit
   10540 @c <en>@file{notify} as one edits the other administrative
   10541 @c <en>files (@pxref{Intro administrative files}).  This
   10542 @c <en>file follows the usual conventions for administrative
   10543 @c <en>files (@pxref{syntax}), where each line is a regular
   10544 @c <en>expression followed by a command to execute.  The
   10545 @c <en>command should contain a single occurrence of @samp{%s}
   10546 @c <en>which will be replaced by the user to notify; the rest
   10547 @c <en>of the information regarding the notification will be
   10548 @c <en>supplied to the command on standard input.  The
   10549 @c <en>standard thing to put in the @code{notify} file is the
   10550 @c <en>single line:
   10551 Quando as condies existem para a notificao, o
   10552 @sc{cvs} chama o arquivo administrativo @file{notify}.
   10553 Edite o @file{notify} da mesma forma que se edita os
   10554 outros arquivos administrativos (@pxref{Intro aos
   10555 arquivos administrativos}).  Este arquivo segue as
   10556 convenes usuais para arquivos administrativos
   10557 (@pxref{syntax}), onde cada linha  uma expresso
   10558 regular seguida de um comando para executar.  O comando
   10559 pode conter uma nica ocorrncia de @samp{%s} que 
   10560 substituda pelo usurio a ser notificado; o resto da
   10561 informao a respeito  da notificao vai ser fornecida
   10562 ao comando na entrada padro.  O padro para botar no
   10563 arquivo @code{notify}  esta nica linha:
   10564 
   10565 @example
   10566 ALL mail %s -s "CVS notification"
   10567 @end example
   10568 
   10569 @noindent
   10570 @c <en>This causes users to be notified by electronic mail.
   10571 Isto faz com que os usurios sejam avisados por correio
   10572 eletrnico.
   10573 @c FIXME: should it be this hard to set up this
   10574 @c behavior (and the result when one fails to do so,
   10575 @c silent failure to notify, so non-obvious)?  Should
   10576 @c CVS give a warning if no line in notify matches (and
   10577 @c document the use of "DEFAULT :" for the case where
   10578 @c skipping the notification is indeed desired)?
   10579 
   10580 @c <en>@cindex users (admin file)
   10581 @cindex users (arquivo administrativo)
   10582 @c <en>Note that if you set this up in the straightforward
   10583 @c <en>way, users receive notifications on the server machine.
   10584 @c <en>One could of course write a @file{notify} script which
   10585 @c <en>directed notifications elsewhere, but to make this
   10586 @c <en>easy, @sc{cvs} allows you to associate a notification
   10587 @c <en>address for each user.  To do so create a file
   10588 @c <en>@file{users} in @file{CVSROOT} with a line for each
   10589 @c <en>user in the format @var{user}:@var{value}.  Then
   10590 @c <en>instead of passing the name of the user to be notified
   10591 @c <en>to @file{notify}, @sc{cvs} will pass the @var{value}
   10592 @c <en>(normally an email address on some other machine).
   10593 Observe que se voc ajusta isto na forma que est, os
   10594 usurios vo receber as notificaes na mquina
   10595 servidora.  Algum pode escrever um script
   10596 @file{notify} que direcione notificaes para outro
   10597 lugar, mas para tornar isto fcil, o @sc{cvs} permite
   10598 associar um endereo de notificao para cada usurio.
   10599 Para isto crie um arquivo @file{users} em
   10600 @file{CVSROOT} com uma linha para cada usurio no
   10601 formato @var{usurio}:@var{valor}.  Ento, ao invs de
   10602 passar o nome do usurio a ser notificado para
   10603 @file{notify}, o @sc{cvs} vai passar @var{valor}
   10604 (normalmente um endereo de email em alguma outra mquina).
   10605 
   10606 @c <en>@sc{cvs} does not notify you for your own changes.
   10607 @c <en>Currently this check is done based on whether the user
   10608 @c <en>name of the person taking the action which triggers
   10609 @c <en>notification matches the user name of the person
   10610 @c <en>getting notification.  In fact, in general, the watches
   10611 @c <en>features only track one edit by each user.  It probably
   10612 @c <en>would be more useful if watches tracked each working
   10613 @c <en>directory separately, so this behavior might be worth
   10614 @c <en>changing.
   10615 O @sc{cvs} no notifica voc de suas prprias
   10616 mudanas.  Atualmente esta checagem  feita baseada
   10617 comparando o nome de usurio da pessoa que executou a
   10618 ao que disparou a notificao com o nome de usurio
   10619 da pessoa sendo notificada.  De fato, em geral, as
   10620 funcionalidades de ???watches??? ???only track one
   10621 edit??? para cada usurio.  Seria provavelmente mais
   10622 til se ???watches??? ???tracked??? cada diretrio de
   10623 trabalho separadamente, logo este comportamento ???might be worth
   10624 changing???.
   10625 @c "behavior might be worth changing" is an effort to
   10626 @c point to future directions while also not promising
   10627 @c that "they" (as in "why don't they fix CVS to....")
   10628 @c will do this.
   10629 @c one implementation issue is identifying whether a
   10630 @c working directory is same or different.  Comparing
   10631 @c pathnames/hostnames is hopeless, but having the server
   10632 @c supply a serial number which the client stores in the
   10633 @c CVS directory as a magic cookie should work.
   10634 
   10635 @c <en>@node Editing files
   10636 @node Editando arquivos
   10637 @c <en>@subsection How to edit a file which is being watched
   10638 @subsection Como editar um arquivo que est sendo ???watched???
   10639 
   10640 @c <en>@cindex Checkout, as term for getting ready to edit
   10641 @cindex Checkout, as term for getting ready to edit
   10642 @c <en>Since a file which is being watched is checked out
   10643 @c <en>read-only, you cannot simply edit it.  To make it
   10644 @c <en>read-write, and inform others that you are planning to
   10645 @c <en>edit it, use the @code{cvs edit} command.  Some systems
   10646 @c <en>call this a @dfn{checkout}, but @sc{cvs} uses that term
   10647 @c <en>for obtaining a copy of the sources (@pxref{Getting the
   10648 @c <en>source}), an operation which those systems call a
   10649 @c <en>@dfn{get} or a @dfn{fetch}.
   10650 J que um arquivo que est sendo ???watched??? 
   10651 ???checked out??? somente-leitura, voc no pode
   10652 simplesmente edit-lo.  Para torn-lo leitura-escrita,
   10653 e informaar outros que voc est planejando edit-lo,
   10654 use o comando @code{cvs edit}.  Alguns sistemas chamam
   10655 isto de @dfn{checkout}, mas o @sc{cvs} usa este termo
   10656 para obter uma cpia dos fontes (@pxref{Obtendo os
   10657 fontes}), uma operao que estes sistemas chamam de
   10658 @dfn{get} ou @dfn{fetch}.
   10659 @c Issue to think about: should we transition CVS
   10660 @c towards the "get" terminology?  "cvs get" is already a
   10661 @c synonym for "cvs checkout" and that section of the
   10662 @c manual refers to "Getting the source".  If this is
   10663 @c done, needs to be done gingerly (for example, we should
   10664 @c still accept "checkout" in .cvsrc files indefinitely
   10665 @c even if the CVS's messages are changed from "cvs checkout: "
   10666 @c to "cvs get: ").
   10667 @c There is a concern about whether "get" is not as
   10668 @c good for novices because it is a more general term
   10669 @c than "checkout" (and thus arguably harder to assign
   10670 @c a technical meaning for).
   10671 
   10672 @c <en>@cindex edit (subcommand)
   10673 @cindex edit (subcomando)
   10674 @c <en>@deffn Command {cvs edit} [@code{-lR}] [@code{-a} @var{action}]@dots{} [@var{files}]@dots{}
   10675 @deffn Comando {cvs edit} [@code{-lR}] [@code{-a} @var{ao}]@dots{} [@var{arquivos}]@dots{}
   10676 
   10677 @c <en>Prepare to edit the working files @var{files}.  @sc{cvs} makes the
   10678 @c <en>@var{files} read-write, and notifies users who have requested
   10679 @c <en>@code{edit} notification for any of @var{files}.
   10680 Prepara para serem editados os @var{files} do diretrio
   10681 de trabalho.  O @sc{cvs} faz os @var{arquivos}
   10682 leitura-escrita, e notifica os usurios que pediram
   10683 notificao de @code{edit} para quaisquer dos @var{arquivos}.
   10684 
   10685 @c <en>The @code{cvs edit} command accepts the same options as the
   10686 @c <en>@code{cvs watch add} command, and establishes a temporary watch for the
   10687 @c <en>user on @var{files}; @sc{cvs} will remove the watch when @var{files} are
   10688 @c <en>@code{unedit}ed or @code{commit}ted.  If the user does not wish to
   10689 @c <en>receive notifications, she should specify @code{-a none}.
   10690 O comando @code{cvs edit} acita as mesmas opes que o
   10691 comando @code{cvs watch add}, e estabelece um
   10692 ???watch??? temporrio para o usurio nos
   10693 @var{arquivos}; @sc{cvs} vai remover o ???watch??? quando @var{arquivos} forem
   10694 @code{unedit}ados ou @code{commit}ados (argh!!!,
   10695 ''commitados''  horrvel).  Se o usurio no deseja
   10696 receber notificaes, deve especificar @code{-a none}.
   10697 
   10698 @c <en>The @var{files} and the options are processed as for the @code{cvs
   10699 @c <en>watch} commands.
   10700 Os @var{arquivos} e as opes so processadas como nos comandos @code{cvs
   10701 watch}.
   10702 
   10703 @ignore
   10704 @strong{Caution: If the @code{PreservePermissions}
   10705 option is enabled in the repository (@pxref{config}),
   10706 @sc{cvs} will not change the permissions on any of the
   10707 @var{files}.  The reason for this change is to ensure
   10708 that using @samp{cvs edit} does not interfere with the
   10709 ability to store file permissions in the @sc{cvs}
   10710 repository.}
   10711 @end ignore
   10712 
   10713 @end deffn
   10714 
   10715 @c <en>Normally when you are done with a set of changes, you
   10716 @c <en>use the @code{cvs commit} command, which checks in your
   10717 @c <en>changes and returns the watched files to their usual
   10718 @c <en>read-only state.  But if you instead decide to abandon
   10719 @c <en>your changes, or not to make any changes, you can use
   10720 @c <en>the @code{cvs unedit} command.
   10721 Normalmente quando voc termina com um conjunto de
   10722 mudanas, voc usa o comando @code{cvs commit}, que
   10723 ???checks in??? suas mudanas e retorna os arquivos
   10724 ???watched??? a seus estados usuais de somente-leitura.
   10725 Mas se voc ao invs disto decide abandonar suas
   10726 mudanas, ou no fazer nenhuma mudana, voc pode usar
   10727 o comando @code{cvs unedit}.
   10728 
   10729 @c <en>@cindex unedit (subcommand)
   10730 @cindex unedit (subcomando)
   10731 @c <en>@cindex Abandoning work
   10732 @cindex Abandonando o trabalho
   10733 @c <en>@cindex Reverting to repository version
   10734 @cindex Revertendo para a verso do repositrio
   10735 @c <en>@deffn Command {cvs unedit} [@code{-lR}] [@var{files}]@dots{}
   10736 @deffn Comando {cvs unedit} [@code{-lR}] [@var{arquivos}]@dots{}
   10737 
   10738 @c <en>Abandon work on the working files @var{files}, and revert them to the
   10739 @c <en>repository versions on which they are based.  @sc{cvs} makes those
   10740 @c <en>@var{files} read-only for which users have requested notification using
   10741 @c <en>@code{cvs watch on}.  @sc{cvs} notifies users who have requested @code{unedit}
   10742 @c <en>notification for any of @var{files}.
   10743 Abandona o trabalho nos @var{arquivos} no diretrio de
   10744 tabalho, e reverte eles s verses do repositrio nas
   10745 quais eles foram baseados.  O @sc{cvs} faz estes
   10746 @var{arquivos} somente-leitura ???for which users have
   10747 requested notification??? usando @code{cvs watch on}.
   10748 @sc{cvs} notifica os usurios que pediram notificaes
   10749 do tipo @code{unedit} para quaisquer dos @var{arquivos}.
   10750 
   10751 @c <en>The @var{files} and options are processed as for the
   10752 @c <en>@code{cvs watch} commands.
   10753 Os @var{arquivos} e opes so processados como nos comandos
   10754 @code{cvs watch}.
   10755 
   10756 @c <en>If watches are not in use, the @code{unedit} command
   10757 @c <en>probably does not work, and the way to revert to the
   10758 @c <en>repository version is with the command @code{cvs update -C file}
   10759 @c <en>(@pxref{update}).
   10760 @c <en>The meaning is
   10761 @c <en>not precisely the same; the latter may also
   10762 @c <en>bring in some changes which have been made in the
   10763 @c <en>repository since the last time you updated.
   10764 Se ???watches??? no esto em uso, o comando
   10765 @code{unedit} provavelmente no vai fazer nada, e a
   10766 forma de reverter  verso do repositrio  com o
   10767 comando @code{cvs update -C arquivo} (@pxref{update}).
   10768 O significado no  exatamente o mesmo; a ltima forma
   10769 pode tambm trazer algumas mudanas que foram feitas no
   10770 repositrio desde a ltima vez que voc atualizou (fez
   10771 update).
   10772 @c It would be a useful enhancement to CVS to make
   10773 @c unedit work in the non-watch case as well.
   10774 @end deffn
   10775 
   10776 @c <en>When using client/server @sc{cvs}, you can use the
   10777 @c <en>@code{cvs edit} and @code{cvs unedit} commands even if
   10778 @c <en>@sc{cvs} is unable to successfully communicate with the
   10779 @c <en>server; the notifications will be sent upon the next
   10780 @c <en>successful @sc{cvs} command.
   10781 Quando usando o @sc{cvs} como cliente/servidor, voc
   10782 pode usar os comandos @code{cvs edit} e @code{cvs
   10783 unedit} mesmo se o @sc{cvs}  incapaz de estabelecer
   10784 comunicao com o servidor; as notificaes vo ser
   10785 mandadas junto com o prximo comando bem sucedido do
   10786 @sc{cvs}.
   10787 
   10788 @c <en>@node Watch information
   10789 @node Informaes de ???Watch???
   10790 @c <en>@subsection Information about who is watching and editing
   10791 @subsection Informaes sobre quem est ???watching??? e editando
   10792 
   10793 @c <en>@cindex watchers (subcommand)
   10794 @cindex watchers (subcomando)
   10795 @c <en>@deffn Command {cvs watchers} [@code{-lR}] [@var{files}]@dots{}
   10796 @deffn Comando {cvs watchers} [@code{-lR}] [@var{arquivos}]@dots{}
   10797 
   10798 @c <en>List the users currently watching changes to @var{files}.  The report
   10799 @c <en>includes the files being watched, and the mail address of each watcher.
   10800 Lista os usurios que esto atualmente ???watching???
   10801 mudanas em @var{arquivos}.  O relatrio inclui os
   10802 arquivos sendo ???watched???, e o endereo de e-mail de
   10803 cada ???watcher???.
   10804 
   10805 @c <en>The @var{files} and options are processed as for the
   10806 @c <en>@code{cvs watch} commands.
   10807 Os @var{arquivos} e opes so processados como nos comandos
   10808 @code{cvs watch}.
   10809 
   10810 @end deffn
   10811 
   10812 
   10813 @c <en>@cindex editors (subcommand)
   10814 @cindex editors (subcommand)
   10815 @c <en>@deffn Command {cvs editors} [@code{-lR}] [@var{files}]@dots{}
   10816 @deffn Command {cvs editors} [@code{-lR}] [@var{files}]@dots{}
   10817 
   10818 @c <en>List the users currently working on @var{files}.  The report
   10819 @c <en>includes the mail address of each user, the time when the user began
   10820 @c <en>working with the file, and the host and path of the working directory
   10821 @c <en>containing the file.
   10822 Lista os usurios atualmente trabalhando em
   10823 @var{arquivos}.  O relatrio inclui o endereo de
   10824 e-mail de cada usurio, o momento no qual o usurio
   10825 comeou a trabalhar com o arquivo, e a mquina e
   10826 caminho do diretrio de trabalho contendo o arquivo.
   10827 
   10828 @c <en>The @var{files} and options are processed as for the
   10829 @c <en>@code{cvs watch} commands.
   10830 Os @var{arquivos} e opes so processados como nos comandos
   10831 @code{cvs watch}.
   10832 
   10833 @end deffn
   10834 
   10835 @c <en>@node Watches Compatibility
   10836 @node Compatibilidade de ???Watches???
   10837 @c <en>@subsection Using watches with old versions of CVS
   10838 @subsection Using watches with old versions of CVS
   10839 
   10840 @c <en>@cindex CVS 1.6, and watches
   10841 @cindex CVS 1.6, and watches
   10842 @c <en>If you use the watch features on a repository, it
   10843 @c <en>creates @file{CVS} directories in the repository and
   10844 @c <en>stores the information about watches in that directory.
   10845 @c <en>If you attempt to use @sc{cvs} 1.6 or earlier with the
   10846 @c <en>repository, you get an error message such as the
   10847 @c <en>following (all on one line):
   10848 If you use the watch features on a repository, it
   10849 creates @file{CVS} directories in the repository and
   10850 stores the information about watches in that directory.
   10851 If you attempt to use @sc{cvs} 1.6 or earlier with the
   10852 repository, you get an error message such as the
   10853 following (all on one line):
   10854 
   10855 @example
   10856 cvs update: cannot open CVS/Entries for reading:
   10857 No such file or directory
   10858 @end example
   10859 
   10860 @noindent
   10861 @c <en>and your operation will likely be aborted.  To use the
   10862 @c <en>watch features, you must upgrade all copies of @sc{cvs}
   10863 @c <en>which use that repository in local or server mode.  If
   10864 @c <en>you cannot upgrade, use the @code{watch off} and
   10865 @c <en>@code{watch remove} commands to remove all watches, and
   10866 @c <en>that will restore the repository to a state which
   10867 @c <en>@sc{cvs} 1.6 can cope with.
   10868 and your operation will likely be aborted.  To use the
   10869 watch features, you must upgrade all copies of @sc{cvs}
   10870 which use that repository in local or server mode.  If
   10871 you cannot upgrade, use the @code{watch off} and
   10872 @code{watch remove} commands to remove all watches, and
   10873 that will restore the repository to a state which
   10874 @sc{cvs} 1.6 can cope with.
   10875 
   10876 @c <en>@node Choosing a model
   10877 @node Escolhendo um modelo
   10878 @c <en>@section Choosing between reserved or unreserved checkouts
   10879 @section Escolhendo entre ???checkouts??? reservados ou no-reservados
   10880 @c <en>@cindex Choosing, reserved or unreserved checkouts
   10881 @cindex Escolhendo, ???checkouts??? reservados ou no-reservados
   10882 
   10883 @c <en>Reserved and unreserved checkouts each have pros and
   10884 @c <en>cons.  Let it be said that a lot of this is a matter of
   10885 @c <en>opinion or what works given different groups' working
   10886 @c <en>styles, but here is a brief description of some of the
   10887 @c <en>issues.  There are many ways to organize a team of
   10888 @c <en>developers.  @sc{cvs} does not try to enforce a certain
   10889 @c <en>organization.  It is a tool that can be used in several
   10890 @c <en>ways.
   10891 ???Checkouts??? reservados e no-reservados tem cada
   10892 um prs e contras.  Digamos que muito disto 
   10893 uma questo de opinio ou que funciona dependendo dos
   10894 diferentes estilos de trabalho em grupo, mas aqui est
   10895 uma breve descrio de alguns dos aspectos.  Existem
   10896 muitas formas de organizar um time de desenvolvedores.
   10897 O @sc{cvs} no tenta induzir uma determinada forma de se
   10898 organizar.  Ele  uma ferramenta que pode ser usada de
   10899 vrias maneiras.
   10900 
   10901 @c <en>Reserved checkouts can be very counter-productive.  If
   10902 @c <en>two persons want to edit different parts of a file,
   10903 @c <en>there may be no reason to prevent either of them from
   10904 @c <en>doing so.  Also, it is common for someone to take out a
   10905 @c <en>lock on a file, because they are planning to edit it,
   10906 @c <en>but then forget to release the lock.
   10907 Checkout reservado pode ser bastante improdutivo.  Se
   10908 duas pessoas quiserem editar diferentes partes de um
   10909 mesmo arquivo, no h motivos para proibir nenhuma
   10910 delas.  Alm disto,  normal algum travar um arquivo
   10911 por que planeja edit-lo, mas ento esquecer de destravar.
   10912 
   10913 @c "many groups"?  specifics?  cites to papers on this?
   10914 @c some way to weasel-word it a bit more so we don't
   10915 @c need facts :-)?
   10916 @c <en>People, especially people who are familiar with
   10917 @c <en>reserved checkouts, often wonder how often conflicts
   10918 @c <en>occur if unreserved checkouts are used, and how
   10919 @c <en>difficult they are to resolve.  The experience with
   10920 @c <en>many groups is that they occur rarely and usually are
   10921 @c <en>relatively straightforward to resolve.
   10922 As pessoas, especialmente aquelas acostumadas com
   10923 ???checkouts??? reservados, freqentemente pensam sobre
   10924 a freqencia com que conlitos acontecem quando
   10925 ???checkouts??? no-reservados esto em uso, e o quo
   10926 difceis eles so de resolver.  A experincia de muitos
   10927 grupos  que os conflitos ocorrem raramente e em geral
   10928 so relativamente fceis de resolver.
   10929 
   10930 @c <en>The rarity of serious conflicts may be surprising, until one realizes
   10931 @c <en>that they occur only when two developers disagree on the proper design
   10932 @c <en>for a given section of code; such a disagreement suggests that the
   10933 @c <en>team has not been communicating properly in the first place.  In order
   10934 @c <en>to collaborate under @emph{any} source management regimen, developers
   10935 @c <en>must agree on the general design of the system; given this agreement,
   10936 @c <en>overlapping changes are usually straightforward to merge.
   10937 A dificuldade para encontrar conflitos srios pode ser
   10938 surpreendente, at se perceber que eles ocorrem apenas
   10939 quando dois desenvolvedores discordam mesmo  no
   10940 projeto de uma dada seo do cdigo; tal desacordo
   10941 indica a princpio que a equipe no est se comunicando
   10942 direito.  Para colaborar em @emph{qualquer} regime de
   10943 gerenciamento de cdigo, os desenvolvedores devem
   10944 concordar com o projeto geral do sistema; com este
   10945 acordo, mudanas sobrepostas so em geral simples de
   10946 mesclar.
   10947 
   10948 @c <en>In some cases unreserved checkouts are clearly
   10949 @c <en>inappropriate.  If no merge tool exists for the kind of
   10950 @c <en>file you are managing (for example word processor files
   10951 @c <en>or files edited by Computer Aided Design programs), and
   10952 @c <en>it is not desirable to change to a program which uses a
   10953 @c <en>mergeable data format, then resolving conflicts is
   10954 @c <en>going to be unpleasant enough that you generally will
   10955 @c <en>be better off to simply avoid the conflicts instead, by
   10956 @c <en>using reserved checkouts.
   10957 Em alguns casos, ???checkouts??? no-reservados so
   10958 claramente inapropriados.  Se no existe uma ferramenta
   10959 de mescla para o tipo de arquivo que voc est lidando
   10960 (por exemplo, arquivos de processadores de texto ou
   10961 arquivos editados por programas de ???Computer Aided
   10962 Design???), e no  desejvel mudar para um programa
   10963 que usa um formato de dados que se possa mesclar, ento
   10964 resolver conflitos se torna to desagradvel que voc
   10965 vai estar melhor simplesmente evitando-os, com o uso de
   10966 ???checkouts??? no-reservados.
   10967 
   10968 @c <en>The watches features described above in @ref{Watches}
   10969 @c <en>can be considered to be an intermediate model between
   10970 @c <en>reserved checkouts and unreserved checkouts.  When you
   10971 @c <en>go to edit a file, it is possible to find out who else
   10972 @c <en>is editing it.  And rather than having the system
   10973 @c <en>simply forbid both people editing the file, it can tell
   10974 @c <en>you what the situation is and let you figure out
   10975 @c <en>whether it is a problem in that particular case or not.
   10976 @c <en>Therefore, for some groups it can be considered the
   10977 @c <en>best of both the reserved checkout and unreserved
   10978 @c <en>checkout worlds.
   10979 As funcionalidade de ???watches??? descritas acima em
   10980 @ref{???Watches???} podem ser consideradas um modelo
   10981 intermedirio entre ???checkouts??? reservados e
   10982 ???checkouts??? no-reservados.  Quando voc vai editar
   10983 um arquivo,  possvel descobrir quem o est editando.
   10984 E ao invs de simplesmente o sistema proibir os dois de
   10985 trabalhar, ele pode dizer como est a situao e deixar
   10986 voc decidir se isto  ou no  um problema neste caso
   10987 especfico. Portanto, para alguns grupos esta  o
   10988 melhor dos dois mundos de ???checkouts??? reservados e
   10989 ???checkouts??? no-reservados.
   10990 
   10991 @c ---------------------------------------------------------------------
   10992 @c <en>@node Revision management
   10993 @node Gerenciamento de revises
   10994 @c <en>@chapter Revision management
   10995 @chapter Gerenciamento de revises
   10996 @c <en>@cindex Revision management
   10997 @cindex Gerenciamento de revises
   10998 
   10999 @c -- This chapter could be expanded a lot.
   11000 @c -- Experiences are very welcome!
   11001 
   11002 @c <en>If you have read this far, you probably have a pretty
   11003 @c <en>good grasp on what @sc{cvs} can do for you.  This
   11004 @c <en>chapter talks a little about things that you still have
   11005 @c <en>to decide.
   11006 Se voc leu at este ponto, voc provavelmente tem uma
   11007 boa noo do que o @sc{cvs} pode fazer por voc.  Este
   11008 captulo fala um pouco sobre coisas que ainda cabe a
   11009 voc decidir.
   11010 
   11011 @c <en>If you are doing development on your own using @sc{cvs}
   11012 @c <en>you could probably skip this chapter.  The questions
   11013 @c <en>this chapter takes up become more important when more
   11014 @c <en>than one person is working in a repository.
   11015 Se voc est desenvolvendo sozinho com o @sc{cvs}, voc
   11016 provavelmente pode pular este captulo.  As questes
   11017 que este captulo levanta so mais importante quando
   11018 mais de uma pessoa est trabalhando num mesmo repositrio.
   11019 
   11020 @menu
   11021 @c <en>* When to commit::              Some discussion on the subject
   11022 * Quando ???commit???::        Alguma discusso sobre o assunto
   11023 @end menu
   11024 
   11025 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   11026 @c <en>@node When to commit
   11027 @node Quando ???commit???
   11028 @c <en>@section When to commit?
   11029 @section Quando ???commit??? ?
   11030 @c <en>@cindex When to commit
   11031 @cindex Quando ???commit???
   11032 @c <en>@cindex Committing, when to
   11033 @cindex ???Committing???, quando
   11034 @c <en>@cindex Policy
   11035 @cindex Poltica
   11036 
   11037 @c <en>Your group should decide which policy to use regarding
   11038 @c <en>commits.  Several policies are possible, and as your
   11039 @c <en>experience with @sc{cvs} grows you will probably find
   11040 @c <en>out what works for you.
   11041 Seu grupo deve decidir qual vai ser a poltica a
   11042 respeito de ???commits???.  Vrias polticas so
   11043 possveis, e  medida que sua experincia com o
   11044 @sc{cvs} crescer, voc provavelmente vai encontrar a
   11045 que funciona com voc.
   11046 
   11047 @c <en>If you commit files too quickly you might commit files
   11048 @c <en>that do not even compile.  If your partner updates his
   11049 @c <en>working sources to include your buggy file, he will be
   11050 @c <en>unable to compile the code.  On the other hand, other
   11051 @c <en>persons will not be able to benefit from the
   11052 @c <en>improvements you make to the code if you commit very
   11053 @c <en>seldom, and conflicts will probably be more common.
   11054 Se voc ???commit??? arquivos muito rapidamente
   11055 provavelmente voc vai ???commit??? arquivos que nem
   11056 mesmo compilam.  Se seu parceiro atualiza as cpias de
   11057 trabalho dele e inclui seu arquivo bichado, ele no vai
   11058 conseguir compilar o cdigo.  Por outro lado, as outras
   11059 pessoas no vo poder se beneficiar das melhorias que
   11060 voc fizer no cdigo se voc ???commit??? muito
   11061 raramente, e os conflitos provavelmente vo aumentar.
   11062 
   11063 @c <en>It is common to only commit files after making sure
   11064 @c <en>that they can be compiled.  Some sites require that the
   11065 @c <en>files pass a test suite.  Policies like this can be
   11066 @c <en>enforced using the commitinfo file
   11067 @c <en>(@pxref{commitinfo}), but you should think twice before
   11068 @c <en>you enforce such a convention.  By making the
   11069 @c <en>development environment too controlled it might become
   11070 @c <en>too regimented and thus counter-productive to the real
   11071 @c <en>goal, which is to get software written.
   11072  comum apenas ???commit??? arquivos depois de se
   11073 certificar que eles podem ser compilados.  Alguns
   11074 lugares exigem que os arquivos passem num conjunto de
   11075 testes.  Polticas deste tipo podem ser impostas usando
   11076 o arquivo commitinfo (@pxref{commitinfo}), mas voc
   11077 deve pensar duas vezes antes de impor tal conveno.
   11078 Tornando o ambiente de desenvolvimento muito controlado
   11079 ele se torna muito rgido e contraprodutivo para o
   11080 objetivo real, que  ter o software escrito.
   11081 
   11082 @c ---------------------------------------------------------------------
   11083 @c <en>@node Keyword substitution
   11084 @node Substituio de palavra-chave
   11085 @c <en>@chapter Keyword substitution
   11086 @chapter Substituio de palavra-chave
   11087 @c <en>@cindex Keyword substitution
   11088 @cindex Substituio de palavra-chave
   11089 @c <en>@cindex Keyword expansion
   11090 @cindex Expanso de palavra-chave
   11091 @c <en>@cindex Identifying files
   11092 @cindex Identificando arquivos
   11093 
   11094 @comment   Be careful when editing this chapter.
   11095 @comment   Remember that this file is kept under
   11096 @comment   version control, so we must not accidentally
   11097 @comment   include a valid keyword in the running text.
   11098 
   11099 @c <en>As long as you edit source files inside a working
   11100 @c <en>directory you can always find out the state of
   11101 @c <en>your files via @samp{cvs status} and @samp{cvs log}.
   11102 @c <en>But as soon as you export the files from your
   11103 @c <en>development environment it becomes harder to identify
   11104 @c <en>which revisions they are.
   11105  medida em que voc edita arquivos fonte dentro de um
   11106 diretrio de trabalho voc pode sempre obter o estado
   11107 de seus arquivos via @samp{cvs status} e @samp{cvs
   11108 log}.  Mas assim que voc exporta os arquivos de seu
   11109 ambiente de desenvolvimento se torna mais difcil dizer
   11110 de quais revises eles so.
   11111 
   11112 @c <en>@sc{cvs} can use a mechanism known as @dfn{keyword
   11113 @c <en>substitution} (or @dfn{keyword expansion}) to help
   11114 @c <en>identifying the files.  Embedded strings of the form
   11115 @c <en>@code{$@var{keyword}$} and
   11116 @c <en>@code{$@var{keyword}:@dots{}$} in a file are replaced
   11117 @c <en>with strings of the form
   11118 @c <en>@code{$@var{keyword}:@var{value}$} whenever you obtain
   11119 @c <en>a new revision of the file.
   11120 O @sc{cvs} pode usar um mecanismo chamado de
   11121 @dfn{substituio de palavra-chave} (ou @dfn{expanso
   11122 de palavra-chave}) para ajudar na identificao de
   11123 arquivos.  Strings embutidas na forma @code{$@var{keyword}$} e
   11124 @code{$@var{keyword}:@dots{}$} em um arquivo so
   11125 substitudas por strings da forma
   11126 @code{$@var{keyword}:@var{value}$} sempre que voc obtm
   11127 uma nova reviso do arquivo.
   11128 
   11129 @menu
   11130 @c <en>* Keyword list::                   Keywords
   11131 * Lista de palavras-chave::            Palavras-chave
   11132 @c <en>* Using keywords::                 Using keywords
   11133 * Usando palavras-chave::              Usando Palavras-chave
   11134 @c <en>* Avoiding substitution::          Avoiding substitution
   11135 * Evitando substituies::             Evitando substituies
   11136 @c <en>* Substitution modes::             Substitution modes
   11137 * Modos de substituio::              Modos de substituio
   11138 @c <en>* Configuring keyword expansion::  Configuring keyword expansion
   11139 * Configurando a expanso do teclado:: Configurando a expanso do teclado
   11140 @c <en>* Log keyword::                    Problems with the $@splitrcskeyword{}Log$ keyword.
   11141 * Log keyword::                    Problemas com a palavra-chave $@splitrcskeyword{}Log$.
   11142 @end menu
   11143 
   11144 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   11145 @c <en>@node Keyword list
   11146 @node Lista de palavras-chave
   11147 @c <en>@section Keyword List
   11148 @section Lista de Palavras-chave
   11149 @c <en>@cindex Keyword List
   11150 @cindex Lista de Palavras-chave
   11151 
   11152 @c FIXME: need some kind of example here I think,
   11153 @c perhaps in a
   11154 @c "Keyword intro" node.  The intro in the "Keyword
   11155 @c substitution" node itself seems OK, but to launch
   11156 @c into a list of the keywords somehow seems too abrupt.
   11157 
   11158 @c <en>This is a list of the keywords:
   11159 Esta  uma lista de palavras-chave:
   11160 
   11161 @table @code
   11162 @c <en>@cindex Author keyword
   11163 @cindex Palavra-chave Author (autor)
   11164 @c <en>@item $@splitrcskeyword{Author}$
   11165 @item $@splitrcskeyword{Author}$
   11166 @c <en>The login name of the user who checked in the revision.
   11167 O login do usurio que ???checked in??? a reviso.
   11168 
   11169 @c <en>@cindex CVSHeader keyword
   11170 @cindex Palavra-chave CVSHeader (cabealho CVS)
   11171 @c <en>@item $@splitrcskeyword{CVSHeader}
   11172 @item $@splitrcskeyword{CVSHeader}
   11173 @c <en>A standard header (similar to $@splitrcskeyword{Header}$, but with
   11174 @c <en>the CVS root stripped off). It contains the relative
   11175 @c <en>pathname of the @sc{rcs} file to the CVS root, the
   11176 @c <en>revision number, the date (UTC), the author, the state,
   11177 @c <en>and the locker (if locked). Files will normally never
   11178 @c <en>be locked when you use @sc{cvs}.
   11179 Um cabealho padro (similar ao
   11180 $@splitrcskeyword{Header}$, mas com a raz do CVS
   11181 retirada). Ele contm o caminho do arquivo
   11182 @sc{rcs} relativo  raz do CVS, o nmero da reviso, a
   11183 data (UTC), o autor, o estado, e o ???locker??? (se
   11184 estiver travado). Arquivos normalmente nunca so
   11185 travados quando voc usa @sc{cvs}.
   11186 
   11187 @c <en>Note that this keyword has only been recently
   11188 @c <en>introduced to @sc{cvs} and may cause problems with
   11189 @c <en>existing installations if $@splitrcskeyword{CVSHeader}$ is already
   11190 @c <en>in the files for a different purpose. This keyword may
   11191 @c <en>be excluded using the @code{KeywordExpansion=eCVSHeader}
   11192 @c <en>in the @file{CVSROOT/config} file. 
   11193 @c <en>See @ref{Configuring keyword expansion} for more details.
   11194 Observe que esta palavra-chave foi adicionada apenas
   11195 recentemente no @sc{cvs} e pode causar problemas com
   11196 instalaes existentes se $@splitrcskeyword{CVSHeader}$
   11197 j est nos arquivos por um motivo diferente. Esta
   11198 palavra-chave deve ser excluda usando o
   11199 @code{KeywordExpansion=eCVSHeader} no arquivo
   11200 @file{CVSROOT/config}. Veja em @ref{Configurando a
   11201 expanso do teclado} para maiores detalhes.
   11202 
   11203 @c <en>@cindex Date keyword
   11204 @cindex Palavra-chave Date (data)
   11205 @c <en>@item $@splitrcskeyword{Date}$
   11206 @item $@splitrcskeyword{Date}$
   11207 @c <en>The date and time (UTC) the revision was checked in.
   11208 A data e hora (UTC) na qual a reviso foi ???checked in???.
   11209 
   11210 @c <en>@cindex Header keyword
   11211 @cindex Palavra-chave Header (cabealho)
   11212 @c <en>@item $@splitrcskeyword{Header}$
   11213 @item $@splitrcskeyword{Header}$
   11214 @c <en>A standard header containing the full pathname of the
   11215 @c <en>@sc{rcs} file, the revision number, the date (UTC), the
   11216 @c <en>author, the state, and the locker (if locked).  Files
   11217 @c <en>will normally never be locked when you use @sc{cvs}.
   11218 Um cabealho padro contendo o caminho completo do arquivo
   11219 @sc{rcs}, o nmero da reviso, a data (UTC), o autor, o
   11220 estado, e o ???locker??? (se estiver travado).
   11221 Arquivos normalmente nunca so travados quando voc usa
   11222 @sc{cvs}.
   11223 
   11224 @c <en>@cindex Id keyword
   11225 @cindex Palavra-chave Id
   11226 @c <en>@item $@splitrcskeyword{Id}$
   11227 @item $@splitrcskeyword{Id}$
   11228 @c <en>Same as @code{$@splitrcskeyword{Header}$}, except that the @sc{rcs}
   11229 @c <en>filename is without a path.
   11230 Similar ao @code{$@splitrcskeyword{Header}$}, exceto
   11231 que o nome do arquivo @sc{rcs} no tem o caminho.
   11232 
   11233 @c <en>@cindex Name keyword
   11234 @cindex Palavra-chave Name (nome)
   11235 @c <en>@item $@splitrcskeyword{Name}$
   11236 @item $@splitrcskeyword{Name}$
   11237 @c <en>Tag name used to check out this file.  The keyword is
   11238 @c <en>expanded only if one checks out with an explicit tag
   11239 @c <en>name.  For example, when running the command @code{cvs
   11240 @c <en>co -r first}, the keyword expands to @samp{Name: first}.
   11241 Nome da etiqueta (tag) usada para ???check out??? este
   11242 arquivo.  A palavra-chave  expandida apenas se foi
   11243 ???check out??? com um nome de etiqueta explcito.  Por
   11244 exemplo, quando rodou o comando @code{cvs co -r
   11245 inicio}, a palavra-chave expande para @samp{Name: inicio}.
   11246 
   11247 @c <en>@cindex Locker keyword
   11248 @cindex Palavra-chave Locker (???locker???)
   11249 @c <en>@item $@splitrcskeyword{Locker}$
   11250 @item $@splitrcskeyword{Locker}$
   11251 @c <en>The login name of the user who locked the revision
   11252 @c <en>(empty if not locked, which is the normal case unless
   11253 @c <en>@code{cvs admin -l} is in use).
   11254 O login do usurio que travou a reviso (vazio se no
   11255 estiver travado, que  o normal a menos que @code{cvs
   11256 admin -l} esteja em uso).
   11257 
   11258 @c <en>@cindex Log keyword
   11259 @cindex Palvra-chave Log (registro)
   11260 @c <en>@cindex MaxCommentLeaderLength
   11261 @cindex MaxCommentLeaderLength
   11262 @c <en>@cindex UseArchiveCommentLeader
   11263 @cindex UseArchiveCommentLeader
   11264 @c <en>@cindex Log keyword, configuring substitution behavior
   11265 @cindex Palavra-chave Log, configurando o comportamento na substituio
   11266 @c <en>@item $@splitrcskeyword{Log}$
   11267 @item $@splitrcskeyword{Log}$
   11268 @c <en>The log message supplied during commit, preceded by a
   11269 @c <en>header containing the @sc{rcs} filename, the revision
   11270 @c <en>number, the author, and the date (UTC).  Existing log
   11271 @c <en>messages are @emph{not} replaced.  Instead, the new log
   11272 @c <en>message is inserted after @code{$@splitrcskeyword{Log:@dots{}}$}.
   11273 @c <en>Each new line is prefixed with the same string which
   11274 @c <en>precedes the @code{$Log} keyword.  For example, if the
   11275 @c <en>file contains:
   11276 A mensagem de log (registro) fornecida durante o
   11277 ???commit???, precedida por um cabealho contendo o
   11278 nome do arquivo @sc{rcs}, o nmero de reviso, o autor,
   11279 e a data (UTC).  Mensagens de log (registro) @emph{no}
   11280 so substitudas.  Ao invs disto, A nova mensagem de
   11281 log (registro)  inserida depois do
   11282 @code{$@splitrcskeyword{Log:@dots{}}$}. Cada nova linha
   11283  prefixada com a mesma string que precede a
   11284 palavra-chave @code{$Log}.  Por exemplo, se o arquivo contm:
   11285 
   11286 @example
   11287   /* Here is what people have been up to:
   11288    *
   11289    * $@splitrcskeyword{}Log: frob.c,v $
   11290    * Revision 1.1  1997/01/03 14:23:51  joe
   11291    * Add the superfrobnicate option
   11292    *
   11293    */
   11294 @end example
   11295 
   11296 @noindent
   11297 @c <en>then additional lines which are added when expanding
   11298 @c <en>the @code{$Log} keyword will be preceded by @samp{   * }.
   11299 @c <en>Unlike previous versions of @sc{cvs} and @sc{rcs}, the
   11300 @c <en>@dfn{comment leader} from the @sc{rcs} file is not used.
   11301 @c <en>The @code{$Log} keyword is useful for
   11302 @c <en>accumulating a complete change log in a source file,
   11303 @c <en>but for several reasons it can be problematic.
   11304 @c <en>@xref{Log keyword}.
   11305 Ento, linhas adicionais que so adicionadas quando a
   11306 palavra-chave @code{$Log}  expandida vo ser
   11307 precedidas por @samp{   * }. Ao contrrio de verses
   11308 prvias do @sc{cvs} e do @sc{rcs}, o @dfn{comment
   11309 leader} do arquivo @sc{rcs} no  usado. A
   11310 palavra-chave @code{$Log}  til para acumular um
   11311 ???change log??? completo num fonte, mas pode ser
   11312 problemtica por vrias razes. Veja em @ref{Log keyword}.
   11313 
   11314 @c <en>@cindex RCSfile keyword
   11315 @cindex Palavra-chave RCSfile (arquivo RCS)
   11316 @c <en>@item $@splitrcskeyword{RCSfile}$
   11317 @item $@splitrcskeyword{RCSfile}$
   11318 @c <en>The name of the RCS file without a path.
   11319 O nome do arquivo RCS sem o caminho.
   11320 
   11321 @c <en>@cindex Revision keyword
   11322 @cindex Palavra-chave Revision (reviso)
   11323 @c <en>@item $@splitrcskeyword{Revision}$
   11324 @item $@splitrcskeyword{Revision}$
   11325 @c <en>The revision number assigned to the revision.
   11326 O nmero de reviso atribudo  reviso.
   11327 
   11328 @c <en>@cindex Source keyword
   11329 @cindex Palavra-chave Source (fonte)
   11330 @c <en>@item $@splitrcskeyword{Source}$
   11331 @item $@splitrcskeyword{Source}$
   11332 @c <en>The full pathname of the RCS file.
   11333 O caminho completo do arquivo RCS.
   11334 
   11335 @c <en>@cindex State keyword
   11336 @cindex Palavra-chave State (estado)
   11337 @c <en>@item $@splitrcskeyword{State}$
   11338 @item $@splitrcskeyword{State}$
   11339 @c <en>The state assigned to the revision.  States can be
   11340 @c <en>assigned with @code{cvs admin -s}---see @ref{admin options}.
   11341 O estado atribudo  reviso.  Estados podem ser
   11342 atribudos com @code{cvs admin -s}---veja em @ref{admin options}.
   11343 
   11344 @c <en>@cindex Local keyword
   11345 @cindex Palavra-chave Local
   11346 @c <en>@item Local keyword
   11347 @item Palavra-chave Local
   11348 @c <en>The @code{LocalKeyword} option in the @file{CVSROOT/config} file
   11349 @c <en>may be used to specify a local keyword which is to be
   11350 @c <en>used as an alias for one of the keywords: $@splitrcskeyword{}Id$,
   11351 @c <en>$@splitrcskeyword{}Header$, or $@splitrcskeyword{}CVSHeader$. For
   11352 @c <en>example, if the @file{CVSROOT/config} file contains
   11353 @c <en>a line with @code{LocalKeyword=MYBSD=CVSHeader}, then a
   11354 @c <en>file with the local keyword $@splitrcskeyword{}MYBSD$ will be
   11355 @c <en>expanded as if it were a $@splitrcskeyword{}CVSHeader$ keyword. If
   11356 @c <en>the src/frob.c file contained this keyword, it might
   11357 @c <en>look something like this:
   11358 A opo @code{LocalKeyword} no arquivo
   11359 @file{CVSROOT/config} pode ser usada para especificar
   11360 uma palavra-chave que no  usada como um alias para
   11361 uma das seguintes palavras-chave: $@splitrcskeyword{}Id$,
   11362 $@splitrcskeyword{}Header$, ou $@splitrcskeyword{}CVSHeader$. Por
   11363 exemplo, se o arquivo @file{CVSROOT/config} contm uma
   11364 linha com @code{LocalKeyword=MYBSD=CVSHeader}, ento um
   11365 arquivo com a palavra-chave local
   11366 $@splitrcskeyword{}MYBSD$ vai ser expandido como se ele
   11367 fosse uma palavra-chave
   11368 $@splitrcskeyword{}CVSHeader$. Se o arquivo src/frob.c
   11369 contiver esta palavra-chave, ele pode parecer com algo assim:
   11370 
   11371 @example
   11372   /*
   11373    * $@splitrcskeyword{}MYBSD: src/frob.c,v 1.1 2003/05/04 09:27:45 john Exp $ 
   11374    */
   11375 @end example
   11376 
   11377 @c <en>Many repositories make use of a such a ``local
   11378 @c <en>keyword'' feature. An old patch to @sc{cvs} provided
   11379 @c <en>the @code{LocalKeyword} feature using a @code{tag=}
   11380 @c <en>option and called this the ``custom tag'' or ``local
   11381 @c <en>tag'' feature. It was used in conjunction with the
   11382 @c <en>what they called the @code{tagexpand=} option. In
   11383 @c <en>@sc{cvs} this other option is known as the
   11384 @c <en>@code{KeywordExpand} option. 
   11385 @c <en>See @ref{Configuring keyword expansion} for more
   11386 @c <en>details.
   11387 Muitos repositrios fazem uso de tal ``palavra-chave
   11388 local''. Uma ???patch??? antiga ao @sc{cvs} fornecia a
   11389 funcionalidade @code{LocalKeyword} usando uma opo
   11390 @code{tag=} e chamava esta funcionalidade de ``custom tag'' ou ``local
   11391 tag''. ela foi usada em conjunto com o que chamavam de
   11392 opo @code{tagexpand=}. No @sc{cvs} esta outra opo 
   11393 conhecida como a opo @code{KeywordExpand}. Veja em
   11394 @ref{Configurando a expanso do teclado} para maiores
   11395 detalhes.
   11396 
   11397 @c <en>Examples from popular projects include:
   11398 @c <en>$@splitrcskeyword{FreeBSD}$, $@splitrcskeyword{NetBSD}$,
   11399 @c <en>$@splitrcskeyword{OpenBSD}$, $@splitrcskeyword{XFree86}$,
   11400 @c <en>$@splitrcskeyword{Xorg}$.
   11401 Exemplos de projetos populares incluem:
   11402 $@splitrcskeyword{FreeBSD}$, $@splitrcskeyword{NetBSD}$,
   11403 $@splitrcskeyword{OpenBSD}$, $@splitrcskeyword{XFree86}$,
   11404 $@splitrcskeyword{Xorg}$.
   11405 
   11406 @c <en>The advantage of this is that you can include your
   11407 @c <en>local version information in a file using this local
   11408 @c <en>keyword without disrupting the upstream version
   11409 @c <en>information (which may be a different local keyword or
   11410 @c <en>a standard keyword). Allowing bug reports and the like
   11411 @c <en>to more properly identify the source of the original
   11412 @c <en>bug to the third-party and reducing the number of
   11413 @c <en>conflicts that arise during an import of a new version.
   11414 A vantagem disto  que voc pode incluir sua informao
   11415 de verso local num arquivo usando esta palavra-chave
   11416 local sem romper com a informao da verso principal
   11417 (que pode ser uma palavra-chave local diferente ou uma
   11418 palavra-chave padro). Permitir relatrio de bug (bug
   11419 report) e coisas do gnero para identificar mais
   11420 adequadamente a origem do bug original para o terceiro
   11421 e reduzir o nmero de conflitos que surgem durante uma
   11422 importao de uma nova verso.
   11423 
   11424 @c <en>All keyword expansion except the local keyword may be
   11425 @c <en>disabled using the @code{KeywordExpand} option in
   11426 @c <en>the @file{CVSROOT/config} file---see 
   11427 @c <en>@ref{Configuring keyword expansion} for more details.
   11428 Toda expanso de palavra-chave com exceo da
   11429 palavra-chave local deve ser disabilitada usando a
   11430 opo @code{KeywordExpand} no arquivo
   11431 @file{CVSROOT/config}---veja em @ref{Configurando a
   11432 expanso do teclado} para mais detalhes.
   11433 
   11434 @end table
   11435 
   11436 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   11437 @c <en>@node Using keywords
   11438 @node Usando palavras-chave
   11439 @c <en>@section Using keywords
   11440 @section Usando palavras-chave
   11441 
   11442 @c <en>To include a keyword string you simply include the
   11443 @c <en>relevant text string, such as @code{$@splitrcskeyword{Id}$}, inside the
   11444 @c <en>file, and commit the file.  @sc{cvs} will automatically (Or,
   11445 @c <en>more accurately, as part of the update run that
   11446 @c <en>automatically happens after a commit.)
   11447 @c <en>expand the string as part of the commit operation.
   11448 Para incluir uma string de palavra-chave voc deve
   11449 simplesmente incluir o a string de texto relevante,
   11450 como @code{$@splitrcskeyword{Id}$}, dentro do arquivo,
   11451 e ???commit??? o arquivo.  O @sc{cvs} vai automaticamente (Ou,
   11452 mais precisamente, como parte da execuo do
   11453 ???update??? que acontece automaticamente depois do
   11454 ???commit???.) expandir a string como parte da operao
   11455 de commit.
   11456 
   11457 @c <en>It is common to embed the @code{$@splitrcskeyword{}Id$} string in
   11458 @c <en>the source files so that it gets passed through to
   11459 @c <en>generated files.  For example, if you are managing
   11460 @c <en>computer program source code, you might include a
   11461 @c <en>variable which is initialized to contain that string.
   11462 @c <en>Or some C compilers may provide a @code{#pragma ident}
   11463 @c <en>directive.  Or a document management system might
   11464 @c <en>provide a way to pass a string through to generated
   11465 @c <en>files.
   11466  normal imergir a string @code{$@splitrcskeyword{}Id$}
   11467 nos arquivos fonte de forma que ela seja ignorada nos
   11468 arquivos gerados.  Por exemplo, se voc est
   11469 gerenciando cdigo fonte de programas de computador,
   11470 voc deve incluir uma varivel que  inicializada para
   11471 conter aquela string. Ou alguns compiladores C podem
   11472 fornecer uma diretiva @code{#pragma ident}.  Ou um
   11473 sistema de gerncia de documentos pode fornecer um
   11474 jeito de entregar a string diretamente ao arquivos
   11475 gerados.
   11476 
   11477 @c Would be nice to give an example, but doing this in
   11478 @c portable C is not possible and the problem with
   11479 @c picking any one language (VMS HELP files, Ada,
   11480 @c troff, whatever) is that people use CVS for all
   11481 @c kinds of files.
   11482 
   11483 @c <en>@cindex Ident (shell command)
   11484 @cindex Ident (shell command)
   11485 @c <en>The @code{ident} command (which is part of the @sc{rcs}
   11486 @c <en>package) can be used to extract keywords and their
   11487 @c <en>values from a file.  This can be handy for text files,
   11488 @c <en>but it is even more useful for extracting keywords from
   11489 @c <en>binary files.
   11490 O comando @code{ident} (que  parte do pacote @sc{rcs})
   11491 pode ser usado para extrair palavras-chave e seus
   11492 valores de um arquivo.  Isto pode ser til para
   11493 arquivos texto, mas  mais til para extrao de
   11494 palavras-chave de arquivos binrios.
   11495 
   11496 @example
   11497 $ ident samp.c
   11498 samp.c:
   11499      $@splitrcskeyword{}Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
   11500 $ gcc samp.c
   11501 $ ident a.out
   11502 a.out:
   11503      $@splitrcskeyword{}Id: samp.c,v 1.5 1993/10/19 14:57:32 ceder Exp $
   11504 @end example
   11505 
   11506 @c <en>@cindex What (shell command)
   11507 @cindex What (shell command)
   11508 @c <en>S@sc{ccs} is another popular revision control system.
   11509 @c <en>It has a command, @code{what}, which is very similar to
   11510 @c <en>@code{ident} and used for the same purpose.  Many sites
   11511 @c <en>without @sc{rcs} have @sc{sccs}.  Since @code{what}
   11512 @c <en>looks for the character sequence @code{@@(#)} it is
   11513 @c <en>easy to include keywords that are detected by either
   11514 @c <en>command.  Simply prefix the keyword with the
   11515 @c <en>magic @sc{sccs} phrase, like this:
   11516 S@sc{ccs}  outro sistema de controle de revises
   11517 popular. Ele tem um comando, @code{what} (o que, em
   11518 portugus), que  bastante similar ao @code{ident} e
   11519 usado para o mesmo propsito.  Muitos ???sites??? sem
   11520 @sc{rcs} tem @sc{sccs}.  Uma vez que o @code{what}
   11521 procura pela seqncia de caracteres @code{@@(#)} 
   11522 fcil incluir palavras-chave que so detectadas por
   11523 qualquer comando.  Simplesmente bote um prefixo na
   11524 palavra-chave com a frase mgica @sc{sccs}, como esta:
   11525 
   11526 @example
   11527 static char *id="@@(#) $@splitrcskeyword{}Id: ab.c,v 1.5 1993/10/19 14:57:32 ceder Exp $";
   11528 @end example
   11529 
   11530 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   11531 @c <en>@node Avoiding substitution
   11532 @node Evitando substituies
   11533 @c <en>@section Avoiding substitution
   11534 @section Evitando substituies
   11535 
   11536 @c <en>Keyword substitution has its disadvantages.  Sometimes
   11537 @c <en>you might want the literal text string
   11538 @c <en>@samp{$@splitrcskeyword{}Author$} to appear inside a file without
   11539 @c <en>@sc{cvs} interpreting it as a keyword and expanding it
   11540 @c <en>into something like @samp{$@splitrcskeyword{}Author: ceder $}.
   11541 Substituio de palavra-chave tem suas desvantagens.
   11542 Algumas vezes voc pode querer que a string de texto
   11543 literal @samp{$@splitrcskeyword{}Author$} aparea
   11544 dentro de um arquivo sem que o @sc{cvs} a interprete
   11545 como uma palavra-chave e a expanda em algo como
   11546 @samp{$@splitrcskeyword{}Author: ceder $}.
   11547 
   11548 @c <en>There is unfortunately no way to selectively turn off
   11549 @c <en>keyword substitution.  You can use @samp{-ko}
   11550 @c <en>(@pxref{Substitution modes}) to turn off keyword
   11551 @c <en>substitution entirely.
   11552 Infelizmente no h como desligar a substituio de
   11553 palavra-chave de forma seletiva.  Voc pode usar @samp{-ko}
   11554 (@pxref{Modos de substituio}) para desligar a
   11555 substituio de palavra-chave completamente.
   11556 
   11557 @c <en>In many cases you can avoid using keywords in
   11558 @c <en>the source, even though they appear in the final
   11559 @c <en>product.  For example, the source for this manual
   11560 @c <en>contains @samp{$@@asis@{@}Author$} whenever the text
   11561 @c <en>@samp{$@splitrcskeyword{}Author$} should appear.  In @code{nroff}
   11562 @c <en>and @code{troff} you can embed the null-character
   11563 @c <en>@code{\&} inside the keyword for a similar effect.
   11564 Em muitos casos voc pode evitar o uso de palavra-chave
   11565 nos fontes, mesmo que elas apaream no produto final.
   11566 Por exemplo, o cdigo-fonte deste manual contm
   11567 @samp{$@@asis@{@}Author$} sempre que o texto
   11568 @samp{$@splitrcskeyword{}Author$} deva aparecer.  Em
   11569 @code{nroff} e @code{troff} voc pode imergir o
   11570 caractere nulo @code{\&} dentro de uma palavra-chave
   11571 para obter um efeito similar.
   11572 
   11573 @c <en>It is also possible to specify an explicit list of
   11574 @c <en>keywords to include or exclude using the
   11575 @c <en>@code{KeywordExpand} option in the
   11576 @c <en>@file{CVSROOT/config} file--see @ref{Configuring keyword expansion}
   11577 @c <en>for more details. This feature is intended primarily
   11578 @c <en>for use with the @code{LocalKeyword} option--see
   11579 @c <en>@ref{Keyword list}.
   11580 Tambm  possvel especificar explicitamente uma lista
   11581 de palavras-chave para incluir ou excluir usando a
   11582 opo @code{KeywordExpand} no arquivo
   11583 @file{CVSROOT/config}--veja em @ref{Configurando a
   11584 expanso do teclado} para maiores detalhes. Esta
   11585 funcionalidade foi pensada para ser usada a princpio
   11586 com a opo @code{LocalKeyword}--veja @ref{Lista de
   11587 palavras-chave}.
   11588 
   11589 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   11590 @c <en>@node Substitution modes
   11591 @node Modos de substituio
   11592 @c <en>@section Substitution modes
   11593 @section Modos de substituio
   11594 @c <en>@cindex Keyword substitution, changing modes
   11595 @cindex Substituio de palavra-chave, mudando os modos
   11596 @c <en>@cindex -k (keyword substitution)
   11597 @cindex -k (substituio de palavra-chave)
   11598 @c <en>@cindex Kflag
   11599 @cindex Kflag
   11600 
   11601 @c FIXME: This could be made more coherent, by expanding it
   11602 @c with more examples or something.
   11603 @c <en>Each file has a stored default substitution mode, and
   11604 @c <en>each working directory copy of a file also has a
   11605 @c <en>substitution mode.  The former is set by the @samp{-k}
   11606 @c <en>option to @code{cvs add} and @code{cvs admin}; the
   11607 @c <en>latter is set by the @samp{-k} or @samp{-A} options to @code{cvs
   11608 @c <en>checkout} or @code{cvs update}.  @code{cvs diff} also
   11609 @c <en>has a @samp{-k} option.  For some examples,
   11610 @c <en>see @ref{Binary files}, and @ref{Merging and keywords}.
   11611 Cada arquivo tem um modo de substituio padro
   11612 armazenado, e cada cpia de um arquivo num diretrio de
   11613 trabalho tambm tem um modo de substituio.  O
   11614 primeiro  ajustado pela opo @samp{-k} no @code{cvs
   11615 add} e no @code{cvs admin}; o ltimo  ajustado pelas
   11616 opes @samp{-k} ou @samp{-A} do @code{cvs checkout} ou
   11617 do @code{cvs update}.  O @code{cvs diff} tambm tem uma
   11618 opo @samp{-k}.  Para alguns exemplos, veja em
   11619 @ref{Arquivos binrios}, e @ref{Mesclagem e
   11620 palavras-chave}.
   11621 @c The fact that -A is overloaded to mean both reset
   11622 @c sticky options and reset sticky tags/dates is
   11623 @c somewhat questionable.  Perhaps there should be
   11624 @c separate options to reset sticky options (e.g. -k
   11625 @c A") and tags/dates (someone suggested -r HEAD could
   11626 @c do this instead of setting a sticky tag of "HEAD"
   11627 @c as in the status quo but I haven't thought much
   11628 @c about that idea.  Of course -r .reset or something
   11629 @c could be coined if this needs to be a new option).
   11630 @c On the other hand, having -A mean "get things back
   11631 @c into the state after a fresh checkout" has a certain
   11632 @c appeal, and maybe there is no sufficient reason for
   11633 @c creeping featurism in this area.
   11634 
   11635 @c <en>The modes available are:
   11636 Os modos disponveis so:
   11637 
   11638 @table @samp
   11639 @c <en>@item -kkv
   11640 @item -kkv
   11641 @c <en>Generate keyword strings using the default form, e.g.
   11642 @c <en>@code{$@splitrcskeyword{}Revision: 5.7 $} for the @code{Revision}
   11643 @c <en>keyword.
   11644 Gera strings de palavras-chave usando a forma padro, e.g.
   11645 @code{$@splitrcskeyword{}Revision: 5.7 $} para a
   11646 palavra-chave @code{Revision}.
   11647 
   11648 @c <en>@item -kkvl
   11649 @item -kkvl
   11650 @c <en>Like @samp{-kkv}, except that a locker's name is always
   11651 @c <en>inserted if the given revision is currently locked.
   11652 @c <en>The locker's name is only relevant if @code{cvs admin
   11653 @c <en>-l} is in use.
   11654 Parecido com o @samp{-kkv}, exceto que um nome de
   11655 ???locker???  sempre inserido se a reviso dada
   11656 estiver atualmente ???locked???. O nome do ???locker???
   11657  relevante apenas se @code{cvs admin -l} estiver em uso.
   11658 
   11659 @c <en>@item -kk
   11660 @item -kk
   11661 @c <en>Generate only keyword names in keyword strings; omit
   11662 @c <en>their values.  For example, for the @code{Revision}
   11663 @c <en>keyword, generate the string @code{$@splitrcskeyword{}Revision$}
   11664 @c <en>instead of @code{$@splitrcskeyword{}Revision: 5.7 $}.  This option
   11665 @c <en>is useful to ignore differences due to keyword
   11666 @c <en>substitution when comparing different revisions of a
   11667 @c <en>file (@pxref{Merging and keywords}).
   11668 Gera nomes de palavras-chave apenas nas strings da palavras-chave; omite
   11669 seus valores.  Por exemplo, para a palavra-chave @code{Revision}
   11670 , gera a string @code{$@splitrcskeyword{}Revision$}
   11671 ao invs de @code{$@splitrcskeyword{}Revision: 5.7 $}.
   11672 Esta opo  til para ignorar diferenas devido a
   11673 substituio de palavras-chave quando comparando
   11674 revises diferentes de um mesmo arquivo
   11675 (@pxref{Mesclagem e palavras-chave}).
   11676 
   11677 @c <en>@item -ko
   11678 @item -ko
   11679 @c <en>Generate the old keyword string, present in the working
   11680 @c <en>file just before it was checked in.  For example, for
   11681 @c <en>the @code{Revision} keyword, generate the string
   11682 @c <en>@code{$@splitrcskeyword{}Revision: 1.1 $} instead of
   11683 @c <en>@code{$@splitrcskeyword{}Revision: 5.7 $} if that is how the
   11684 @c <en>string appeared when the file was checked in.
   11685 Gera a antiga string da palavra-chave, presente no
   11686 arquivo de trabalho antes dele ter sido ???checked
   11687 in???.  Por exemplo, para a palavra-chave
   11688 @code{Revision}, gera a string
   11689 @code{$@splitrcskeyword{}Revision: 1.1 $} ao invs de
   11690 @code{$@splitrcskeyword{}Revision: 5.7 $} se era assim
   11691 que a string aparecia quando o arquivo foi ???checked
   11692 in???.
   11693 
   11694 @c <en>@item -kb
   11695 @item -kb
   11696 @c <en>Like @samp{-ko}, but also inhibit conversion of line
   11697 @c <en>endings between the canonical form in which they are
   11698 @c <en>stored in the repository (linefeed only), and the form
   11699 @c <en>appropriate to the operating system in use on the
   11700 @c <en>client.  For systems, like unix, which use linefeed
   11701 @c <en>only to terminate lines, this is very similar to
   11702 @c <en>@samp{-ko}.  For more information on binary files, see
   11703 @c <en>@ref{Binary files}.  In @sc{cvs} version 1.12.2 and later
   11704 @c <en>@samp{-kb}, as set by @code{cvs add}, @code{cvs admin}, or
   11705 @c <en>@code{cvs import} may not be overridden by a @samp{-k} option
   11706 @c <en>specified on the command line.
   11707 Como o @samp{-ko}, mas tambm inibindo converso de
   11708 fim-de-linhas entre a forma cannica nas qual os
   11709 arquivo so arquivados no repositrio (apenas
   11710 linefeed), e a forma apropriada para o sistema
   11711 operacional em uso no cliente.  Para sistemas, como o
   11712 unix, que usam apenas o linefeed para terminar linhas,
   11713 isto  bastante similar ao @samp{-ko}.  Para mais
   11714 informaes sobre arquivos binrios, veja em
   11715 @ref{Arquivos binrios}.  No @sc{cvs} verso 1.12.2 ou
   11716 mais novas @samp{-kb}, ajustado por @code{cvs add}, @code{cvs admin}, ou
   11717 @code{cvs import} no vai ser sobreescrito pela opo
   11718 @samp{-k} especificada na linha de comando.
   11719 
   11720 @c <en>@item -kv
   11721 @item -kv
   11722 @c <en>Generate only keyword values for keyword strings.  For
   11723 @c <en>example, for the @code{Revision} keyword, generate the string
   11724 @c <en>@code{5.7} instead of @code{$@splitrcskeyword{}Revision: 5.7 $}.
   11725 @c <en>This can help generate files in programming languages
   11726 @c <en>where it is hard to strip keyword delimiters like
   11727 @c <en>@code{$@splitrcskeyword{}Revision: $} from a string.  However,
   11728 @c <en>further keyword substitution cannot be performed once
   11729 @c <en>the keyword names are removed, so this option should be
   11730 @c <en>used with care.
   11731 Gera apenas os valores das palavras-chaves para strings
   11732 de palavras-chave.  Por exemplo, para a palavra-chave
   11733 @code{Revision}, gera a string @code{5.7} ao invs de
   11734 @code{$@splitrcskeyword{}Revision: 5.7 $}. Isto pode
   11735 ajudar a gerar arquivos em linguagens de programao
   11736 onde  difcil ???strip??? delimitadores de
   11737 palavras-chave, como o
   11738 @code{$@splitrcskeyword{}Revision: $} para uma string.
   11739 Entretanto, outras substituies de palavras-chave no
   11740 poderam ser feitas, uma vez que os nomes de
   11741 palavras-chave foram removidos. Logo, esta opo deve
   11742 ser usada com cuidado.
   11743 
   11744 @c <en>One often would like to use @samp{-kv} with @code{cvs
   11745 @c <en>export}---@pxref{export}.  But be aware that doesn't
   11746 @c <en>handle an export containing binary files correctly.
   11747  comum querer usar o @samp{-kv} com @code{cvs
   11748 export}---@pxref{export}.  Mas lembre-se que isto no
   11749 trata um export contendo binrios direito.
   11750 
   11751 @end table
   11752 
   11753 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   11754 @c <en>@node Configuring keyword expansion
   11755 @node Configurando a expanso do teclado
   11756 @c <en>@section Configuring Keyword Expansion
   11757 @section Configurando a Expanso do Teclado
   11758 @c <en>@cindex Configuring keyword expansion
   11759 @cindex Configurando a Expanso do Teclado
   11760 
   11761 @c <en>In a repository that includes third-party software on
   11762 @c <en>vendor branches, it is sometimes helpful to configure
   11763 @c <en>CVS to use a local keyword instead of the standard
   11764 @c <en>$@splitrcskeyword{Id}$ or $@splitrcskeyword{Header}$ keywords. Examples from
   11765 @c <en>real projects includ, $@splitrcskeyword{Xorg}$, $@splitrcskeyword{XFree86}$,
   11766 @c <en>$@splitrcskeyword{FreeBSD}$, $@splitrcskeyword{NetBSD}$,
   11767 @c <en>$@splitrcskeyword{OpenBSD}$, and even $@splitrcskeyword{dotat}$.
   11768 @c <en>The advantage of this is that
   11769 @c <en>you can include your local version information in a
   11770 @c <en>file using this local keyword (sometimes called a
   11771 @c <en>``custom tag'' or a ``local tag'') without disrupting
   11772 @c <en>the upstream version information (which may be a
   11773 @c <en>different local keyword or a standard keyword). In
   11774 @c <en>these cases, it is typically desirable to disable the
   11775 @c <en>expansion of all keywords except the configured local
   11776 @c <en>keyword.
   11777 Num repositrio que inclua software de terceiros em
   11778 ramos de fornecedor, s vezes  til configurar o CVS
   11779 para usar uma palavra-chave local ao invs das
   11780 palavras-chave padro $@splitrcskeyword{Id}$ ou
   11781 $@splitrcskeyword{Header}$. Exemplos de projetos reais incluem, $@splitrcskeyword{Xorg}$, $@splitrcskeyword{XFree86}$,
   11782 $@splitrcskeyword{FreeBSD}$, $@splitrcskeyword{NetBSD}$,
   11783 $@splitrcskeyword{OpenBSD}$, e ainda
   11784 $@splitrcskeyword{dotat}$. A vantagem disto  que voc
   11785 pode incluir sua ???local version information??? num
   11786 arquivo usando esta palavra-chave local (algumas vezes
   11787 chamada de ``custom tag'' ou ``local tag'') sem romper
   11788 com a ???upstream version information??? (que pode ser
   11789 uma palavra-chave local diferente ou uma palavra-chave
   11790 padro). Nestes casos,  normalmente desejvel
   11791 desabilitar a expanso de todas as palavras-chave
   11792 exceto a palavra-chave local configurada.
   11793 
   11794 @c <en>The @code{KeywordExpansion} option in the
   11795 @c <en>@file{CVSROOT/config} file is intended to allow for the
   11796 @c <en>either the explicit exclusion of a keyword or list of
   11797 @c <en>keywords, or for the explicit inclusion of a keyword or
   11798 @c <en>a list of keywords. This list may include the
   11799 @c <en>@code{LocalKeyword} that has been configured.
   11800 The @code{KeywordExpansion} option in the
   11801 @file{CVSROOT/config} file is intended to allow for the
   11802 either the explicit exclusion of a keyword or list of
   11803 keywords, or for the explicit inclusion of a keyword or
   11804 a list of keywords. This list may include the
   11805 @code{LocalKeyword} that has been configured.
   11806 
   11807 @c <en>The @code{KeywordExpansion} option is followed by
   11808 @c <en>@code{=} and the next character may either be @code{i}
   11809 @c <en>to start an inclusion list or @code{e} to start an
   11810 @c <en>exclusion list. If the following lines were added to
   11811 @c <en>the @file{CVSROOT/config} file:
   11812 The @code{KeywordExpansion} option is followed by
   11813 @code{=} and the next character may either be @code{i}
   11814 to start an inclusion list or @code{e} to start an
   11815 exclusion list. If the following lines were added to
   11816 the @file{CVSROOT/config} file:
   11817 
   11818 @example
   11819         # Add a "MyBSD" keyword and restrict keyword
   11820         # expansion
   11821         LocalKeyword=MyBSD=CVSHeader
   11822         KeywordExpand=iMyBSD
   11823 @end example
   11824 
   11825 @c <en>then only the $@splitrcskeyword{MyBSD}$ keyword would be expanded.
   11826 @c <en>A list may be used. The this example:
   11827 then only the $@splitrcskeyword{MyBSD}$ keyword would be expanded.
   11828 A list may be used. The this example:
   11829 
   11830 @example
   11831         # Add a "MyBSD" keyword and restrict keyword
   11832         # expansion to the MyBSD, Name and Date keywords.
   11833         LocalKeyword=MyBSD=CVSHeader
   11834         KeywordExpand=iMyBSD,Name,Date
   11835 @end example
   11836 
   11837 @c <en>would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and
   11838 @c <en>$@splitrcskeyword{Date}$ to be expanded.
   11839 @c <en>would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and
   11840 @c <en>$@splitrcskeyword{Date}$ to be expanded.
   11841 would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and
   11842 $@splitrcskeyword{Date}$ to be expanded.
   11843 would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and
   11844 $@splitrcskeyword{Date}$ to be expanded.
   11845 
   11846 @c <en>It is also possible to configure an exclusion list
   11847 @c <en>using the following:
   11848 @c <en>It is also possible to configure an exclusion list
   11849 @c <en>using the following:
   11850 It is also possible to configure an exclusion list
   11851 using the following:
   11852 It is also possible to configure an exclusion list
   11853 using the following:
   11854 
   11855 @example
   11856         # Do not expand the non-RCS keyword CVSHeader
   11857         KeywordExpand=eCVSHeader
   11858 @end example
   11859 
   11860 @c <en>This allows @sc{cvs} to ignore the recently introduced
   11861 @c <en>$@splitrcskeyword{CVSHeader}$ keyword and retain all of the
   11862 @c <en>others. The exclusion entry could also contain the
   11863 @c <en>standard RCS keyword list, but this could be confusing
   11864 @c <en>to users that expect RCS keywords to be expanded, so
   11865 @c <en>ycare should be taken to properly set user expectations
   11866 @c <en>for a repository that is configured in that manner.
   11867 This allows @sc{cvs} to ignore the recently introduced
   11868 $@splitrcskeyword{CVSHeader}$ keyword and retain all of the
   11869 others. The exclusion entry could also contain the
   11870 standard RCS keyword list, but this could be confusing
   11871 to users that expect RCS keywords to be expanded, so
   11872 ycare should be taken to properly set user expectations
   11873 for a repository that is configured in that manner.
   11874 
   11875 @c <en>If there is a desire to not have any RCS keywords
   11876 @c <en>expanded and not use the @code{-ko} flags everywhere,
   11877 @c <en>an administrator may disable all keyword expansion
   11878 @c <en>using the @file{CVSROOT/config} line:
   11879 If there is a desire to not have any RCS keywords
   11880 expanded and not use the @code{-ko} flags everywhere,
   11881 an administrator may disable all keyword expansion
   11882 using the @file{CVSROOT/config} line:
   11883 
   11884 @example
   11885 	# Do not expand any RCS keywords
   11886 	KeywordExpand=i
   11887 @end example
   11888 
   11889 @c <en>this could be confusing to users that expect RCS
   11890 @c <en>keywords like $@splitrcskeyword{Id}$ to be expanded properly,
   11891 @c <en>so care should be taken to properly set user
   11892 @c <en>expectations for a repository so configured.
   11893 this could be confusing to users that expect RCS
   11894 keywords like $@splitrcskeyword{Id}$ to be expanded properly,
   11895 so care should be taken to properly set user
   11896 expectations for a repository so configured.
   11897 
   11898 @c <en>It should be noted that a patch to provide both the
   11899 @c <en>@code{KeywordExpand} and @code{LocalKeyword} features
   11900 @c <en>has been around a long time. However, that patch
   11901 @c <en>implemented these features using @code{tag=} and
   11902 @c <en>@code{tagexpand=} keywords and those keywords are NOT
   11903 @c <en>recognized.
   11904 It should be noted that a patch to provide both the
   11905 @code{KeywordExpand} and @code{LocalKeyword} features
   11906 has been around a long time. However, that patch
   11907 implemented these features using @code{tag=} and
   11908 @code{tagexpand=} keywords and those keywords are NOT
   11909 recognized.
   11910 
   11911 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   11912 @c <en>@node Log keyword
   11913 @node Log keyword
   11914 @c <en>@section Problems with the $@splitrcskeyword{}Log$ keyword.
   11915 @section Problems with the $@splitrcskeyword{}Log$ keyword.
   11916 
   11917 @c <en>The @code{$@splitrcskeyword{}Log$} keyword is somewhat
   11918 @c <en>controversial.  As long as you are working on your
   11919 @c <en>development system the information is easily accessible
   11920 @c <en>even if you do not use the @code{$@splitrcskeyword{}Log$}
   11921 @c <en>keyword---just do a @code{cvs log}.  Once you export
   11922 @c <en>the file the history information might be useless
   11923 @c <en>anyhow.
   11924 The @code{$@splitrcskeyword{}Log$} keyword is somewhat
   11925 controversial.  As long as you are working on your
   11926 development system the information is easily accessible
   11927 even if you do not use the @code{$@splitrcskeyword{}Log$}
   11928 keyword---just do a @code{cvs log}.  Once you export
   11929 the file the history information might be useless
   11930 anyhow.
   11931 
   11932 @c <en>A more serious concern is that @sc{cvs} is not good at
   11933 @c <en>handling @code{$@splitrcskeyword{}Log$} entries when a branch is
   11934 @c <en>merged onto the main trunk.  Conflicts often result
   11935 @c <en>from the merging operation.
   11936 A more serious concern is that @sc{cvs} is not good at
   11937 handling @code{$@splitrcskeyword{}Log$} entries when a branch is
   11938 merged onto the main trunk.  Conflicts often result
   11939 from the merging operation.
   11940 @c Might want to check whether the CVS implementation
   11941 @c of RCS_merge has this problem the same way rcsmerge
   11942 @c does.  I would assume so....
   11943 
   11944 @c <en>People also tend to "fix" the log entries in the file
   11945 @c <en>(correcting spelling mistakes and maybe even factual
   11946 @c <en>errors).  If that is done the information from
   11947 @c <en>@code{cvs log} will not be consistent with the
   11948 @c <en>information inside the file.  This may or may not be a
   11949 @c <en>problem in real life.
   11950 People also tend to "fix" the log entries in the file
   11951 (correcting spelling mistakes and maybe even factual
   11952 errors).  If that is done the information from
   11953 @code{cvs log} will not be consistent with the
   11954 information inside the file.  This may or may not be a
   11955 problem in real life.
   11956 
   11957 @c <en>It has been suggested that the @code{$@splitrcskeyword{}Log$}
   11958 @c <en>keyword should be inserted @emph{last} in the file, and
   11959 @c <en>not in the files header, if it is to be used at all.
   11960 @c <en>That way the long list of change messages will not
   11961 @c <en>interfere with everyday source file browsing.
   11962 It has been suggested that the @code{$@splitrcskeyword{}Log$}
   11963 keyword should be inserted @emph{last} in the file, and
   11964 not in the files header, if it is to be used at all.
   11965 That way the long list of change messages will not
   11966 interfere with everyday source file browsing.
   11967 
   11968 @c ---------------------------------------------------------------------
   11969 @c <en>@node Tracking sources
   11970 @node Acompanhando fontes
   11971 @c <en>@chapter Tracking third-party sources
   11972 @chapter Tracking third-party sources
   11973 @c <en>@cindex Third-party sources
   11974 @cindex Fontes de terceiros
   11975 @c <en>@cindex Tracking sources
   11976 @cindex Tracking sources
   11977 
   11978 @c FIXME: Need discussion of added and removed files.
   11979 @c FIXME: This doesn't really adequately introduce the
   11980 @c concepts of "vendor" and "you".  They don't *have*
   11981 @c to be separate organizations or separate people.
   11982 @c We want a description which is somewhat more based on
   11983 @c the technical issues of which sources go where, but
   11984 @c also with enough examples of how this relates to
   11985 @c relationships like customer-supplier, developer-QA,
   11986 @c maintainer-contributor, or whatever, to make it
   11987 @c seem concrete.
   11988 @c <en>If you modify a program to better fit your site, you
   11989 @c <en>probably want to include your modifications when the next
   11990 @c <en>release of the program arrives.  @sc{cvs} can help you with
   11991 @c <en>this task.
   11992 Se voc modificar um programa para se adequar melhor ao
   11993 seu ambiente, voc provavelmente vai querer incluir
   11994 suas modificaes quando a nova release do do programa
   11995 chegar.  O @sc{cvs} pode te ajudar nesta tarefa.
   11996 
   11997 @c <en>@cindex Vendor
   11998 @cindex Vendor
   11999 @cindex Vendor (fornecedor)
   12000 @c <en>@cindex Vendor branch
   12001 @cindex Vendor branch (ramo do forncedor)
   12002 @cindex Ramo do fornecedor
   12003 @c <en>@cindex Branch, vendor-
   12004 @cindex Branch, vendor-
   12005 @c <en>In the terminology used in @sc{cvs}, the supplier of the
   12006 @c <en>program is called a @dfn{vendor}.  The unmodified
   12007 @c <en>distribution from the vendor is checked in on its own
   12008 @c <en>branch, the @dfn{vendor branch}.  @sc{cvs} reserves branch
   12009 @c <en>1.1.1 for this use.
   12010 Na terminologia usada no @sc{cvs}, quem fornece um
   12011 programa  chamado de @dfn{vendor} (fornecedor, em
   12012 portugus).  A distribuio no modificada do
   12013 fornecedor  ???checked in??? no seu prprio ramo, o
   12014 @dfn{vendor branch} (ramo do fornecedor).  O @sc{cvs}
   12015 reserva o ramo 1.1.1 para isto.
   12016 
   12017 @c <en>When you modify the source and commit it, your revision
   12018 @c <en>will end up on the main trunk.  When a new release is
   12019 @c <en>made by the vendor, you commit it on the vendor branch
   12020 @c <en>and copy the modifications onto the main trunk.
   12021 Quando voc modifica a fonte e a ???commit???, sua
   12022 reviso vai terminar na ???main trunk???.  Quando uma
   12023 nova release  feita pelo fornecedor, voc ???commit???
   12024 ela no ramo do fornecedor e copia as modificaes no
   12025 ???main trunk???.
   12026 
   12027 @c <en>Use the @code{import} command to create and update
   12028 @c <en>the vendor branch.  When you import a new file,
   12029 @c <en>the vendor branch is made the `head' revision, so
   12030 @c <en>anyone that checks out a copy of the file gets that
   12031 @c <en>revision.  When a local modification is committed it is
   12032 @c <en>placed on the main trunk, and made the `head'
   12033 @c <en>revision.
   12034 Use o comando @code{import} para criar e atualizar o
   12035 ramo do fornecedor.  Quando voc importa um novo
   12036 arquivo, o ramo do fornecedor se torna a reviso
   12037 `head', logo qualquer um que ???checks out??? uma cpia
   12038 do arquivo pega esta reviso.  Quando uma modificao
   12039 local  ???committed???, ela  posta no ???main
   12040 trunk???, e se torna a reviso `head'.
   12041 
   12042 @menu
   12043 @c <en>* First import::                Importing for the first time
   12044 * Primeira importao::                 Importando pela primeira vez
   12045 @c <en>* Update imports::              Updating with the import command
   12046 * Importaes de atualizao::          Atualizando com o comando import
   12047 @c <en>* Reverting local changes::     Reverting to the latest vendor release
   12048 * Reverting local changes::             Reverting to the latest vendor release
   12049 @c <en>* Binary files in imports::     Binary files require special handling
   12050 * Arquivos binrios em importaes::    Arquivos binrios requerem tratamento especial
   12051 @c <en>* Keywords in imports::         Keyword substitution might be undesirable
   12052 * Palavras-chave em importaes::       Substituio de palavras-chave pode ser indesejvel
   12053 @c <en>* Multiple vendor branches::    What if you get sources from several places?
   12054 * Ramos de fornecedor mltiplos::       E se voc obtm fontes de vrios lugares?
   12055 @end menu
   12056 
   12057 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   12058 @c <en>@node First import
   12059 @node Primeira importao
   12060 @c <en>@section Importing for the first time
   12061 @section Importing for the first time
   12062 @c <en>@cindex Importing modules
   12063 @cindex Importing modules
   12064 
   12065 @c Should mention naming conventions for vendor tags,
   12066 @c release tags, and perhaps directory names.
   12067 @c <en>Use the @code{import} command to check in the sources
   12068 @c <en>for the first time.  When you use the @code{import}
   12069 @c <en>command to track third-party sources, the @dfn{vendor
   12070 @c <en>tag} and @dfn{release tags} are useful.  The
   12071 @c <en>@dfn{vendor tag} is a symbolic name for the branch
   12072 @c <en>(which is always 1.1.1, unless you use the @samp{-b
   12073 @c <en>@var{branch}} flag---see @ref{Multiple vendor branches}.).  The
   12074 @c <en>@dfn{release tags} are symbolic names for a particular
   12075 @c <en>release, such as @samp{FSF_0_04}.
   12076 Use the @code{import} command to check in the sources
   12077 for the first time.  When you use the @code{import}
   12078 command to track third-party sources, the @dfn{vendor
   12079 tag} and @dfn{release tags} are useful.  The
   12080 @dfn{vendor tag} is a symbolic name for the branch
   12081 (which is always 1.1.1, unless you use the @samp{-b
   12082 @var{branch}} flag---see @ref{Ramos de fornecedor mltiplos}.).  The
   12083 @dfn{release tags} are symbolic names for a particular
   12084 release, such as @samp{FSF_0_04}.
   12085 
   12086 @c I'm not completely sure this belongs here.  But
   12087 @c we need to say it _somewhere_ reasonably obvious; it
   12088 @c is a common misconception among people first learning CVS
   12089 @c <en>Note that @code{import} does @emph{not} change the
   12090 @c <en>directory in which you invoke it.  In particular, it
   12091 @c <en>does not set up that directory as a @sc{cvs} working
   12092 @c <en>directory; if you want to work with the sources import
   12093 @c <en>them first and then check them out into a different
   12094 @c <en>directory (@pxref{Getting the source}).
   12095 Note that @code{import} does @emph{not} change the
   12096 directory in which you invoke it.  In particular, it
   12097 does not set up that directory as a @sc{cvs} working
   12098 directory; if you want to work with the sources import
   12099 them first and then check them out into a different
   12100 directory (@pxref{Obtendo os fontes}).
   12101 
   12102 @c <en>@cindex wdiff (import example)
   12103 @cindex wdiff (import example)
   12104 @c <en>Suppose you have the sources to a program called
   12105 @c <en>@code{wdiff} in a directory @file{wdiff-0.04},
   12106 @c <en>and are going to make private modifications that you
   12107 @c <en>want to be able to use even when new releases are made
   12108 @c <en>in the future.  You start by importing the source to
   12109 @c <en>your repository:
   12110 Suppose you have the sources to a program called
   12111 @code{wdiff} in a directory @file{wdiff-0.04},
   12112 and are going to make private modifications that you
   12113 want to be able to use even when new releases are made
   12114 in the future.  You start by importing the source to
   12115 your repository:
   12116 
   12117 @example
   12118 $ cd wdiff-0.04
   12119 $ cvs import -m "Import of FSF v. 0.04" fsf/wdiff FSF_DIST WDIFF_0_04
   12120 @end example
   12121 
   12122 @c <en>The vendor tag is named @samp{FSF_DIST} in the above
   12123 @c <en>example, and the only release tag assigned is
   12124 @c <en>@samp{WDIFF_0_04}.
   12125 The vendor tag is named @samp{FSF_DIST} in the above
   12126 example, and the only release tag assigned is
   12127 @samp{WDIFF_0_04}.
   12128 @c FIXME: Need to say where fsf/wdiff comes from.
   12129 
   12130 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   12131 @c <en>@node Update imports
   12132 @node Importaes de atualizao
   12133 @c <en>@section Updating with the import command
   12134 @section Updating with the import command
   12135 
   12136 @c <en>When a new release of the source arrives, you import it into the
   12137 @c <en>repository with the same @code{import} command that you used to set up
   12138 @c <en>the repository in the first place.  The only difference is that you
   12139 @c <en>specify a different release tag this time:
   12140 When a new release of the source arrives, you import it into the
   12141 repository with the same @code{import} command that you used to set up
   12142 the repository in the first place.  The only difference is that you
   12143 specify a different release tag this time:
   12144 
   12145 @example
   12146 $ tar xfz wdiff-0.05.tar.gz
   12147 $ cd wdiff-0.05
   12148 $ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05
   12149 @end example
   12150 
   12151 @c <en>For files that have not been modified locally, the newly created
   12152 @c <en>revision becomes the head revision.  If you have made local
   12153 @c <en>changes, @code{import} will warn you that you must merge the changes
   12154 @c <en>into the main trunk, and tell you to use @samp{checkout -j} to do so:
   12155 For files that have not been modified locally, the newly created
   12156 revision becomes the head revision.  If you have made local
   12157 changes, @code{import} will warn you that you must merge the changes
   12158 into the main trunk, and tell you to use @samp{checkout -j} to do so:
   12159 
   12160 @c FIXME: why "wdiff" here and "fsf/wdiff" in the
   12161 @c "import"?  I think the assumption is that one has
   12162 @c "wdiff fsf/wdiff" or some such in modules, but it
   12163 @c would be better to not use modules in this example.
   12164 @example
   12165 $ cvs checkout -jFSF_DIST:yesterday -jFSF_DIST wdiff
   12166 @end example
   12167 
   12168 @noindent
   12169 @c <en>The above command will check out the latest revision of
   12170 @c <en>@samp{wdiff}, merging the changes made on the vendor branch @samp{FSF_DIST}
   12171 @c <en>since yesterday into the working copy.  If any conflicts arise during
   12172 @c <en>the merge they should be resolved in the normal way (@pxref{Conflicts
   12173 @c <en>example}).  Then, the modified files may be committed.
   12174 The above command will check out the latest revision of
   12175 @samp{wdiff}, merging the changes made on the vendor branch @samp{FSF_DIST}
   12176 since yesterday into the working copy.  If any conflicts arise during
   12177 the merge they should be resolved in the normal way
   12178 (@pxref{Exemplo de conflitos}).  Then, the modified files may be committed.
   12179 
   12180 @c <en>However, it is much better to use the two release tags rather than using
   12181 @c <en>a date on the branch as suggested above:
   12182 However, it is much better to use the two release tags rather than using
   12183 a date on the branch as suggested above:
   12184 
   12185 @example
   12186 $ cvs checkout -jWDIFF_0_04 -jWDIFF_0_05 wdiff
   12187 @end example
   12188 
   12189 @noindent
   12190 @c <en>The reason this is better is that
   12191 @c <en>using a date, as suggested above, assumes that you do
   12192 @c <en>not import more than one release of a product per day.
   12193 @c <en>More importantly, using the release tags allows @sc{cvs} to detect files
   12194 @c <en>that were removed between the two vendor releases and mark them for
   12195 @c <en>removal.  Since @code{import} has no way to detect removed files, you
   12196 @c <en>should do a merge like this even if @code{import} doesn't tell you to.
   12197 The reason this is better is that
   12198 using a date, as suggested above, assumes that you do
   12199 not import more than one release of a product per day.
   12200 More importantly, using the release tags allows @sc{cvs} to detect files
   12201 that were removed between the two vendor releases and mark them for
   12202 removal.  Since @code{import} has no way to detect removed files, you
   12203 should do a merge like this even if @code{import} doesn't tell you to.
   12204 
   12205 @c <en>@node Reverting local changes
   12206 @node Reverting local changes
   12207 @c <en>@section Reverting to the latest vendor release
   12208 @section Reverting to the latest vendor release
   12209 
   12210 @c <en>You can also revert local changes completely and return
   12211 @c <en>to the latest vendor release by changing the `head'
   12212 @c <en>revision back to the vendor branch on all files.  For
   12213 @c <en>example, if you have a checked-out copy of the sources
   12214 @c <en>in @file{~/work.d/wdiff}, and you want to revert to the
   12215 @c <en>vendor's version for all the files in that directory,
   12216 @c <en>you would type:
   12217 You can also revert local changes completely and return
   12218 to the latest vendor release by changing the `head'
   12219 revision back to the vendor branch on all files.  For
   12220 example, if you have a checked-out copy of the sources
   12221 in @file{~/work.d/wdiff}, and you want to revert to the
   12222 vendor's version for all the files in that directory,
   12223 you would type:
   12224 
   12225 @example
   12226 $ cd ~/work.d/wdiff
   12227 $ cvs admin -bFSF_DIST .
   12228 @end example
   12229 
   12230 @noindent
   12231 @c <en>You must specify the @samp{-bFSF_DIST} without any space
   12232 @c <en>after the @samp{-b}.  @xref{admin options}.
   12233 You must specify the @samp{-bFSF_DIST} without any space
   12234 after the @samp{-b}.  @xref{admin options}.
   12235 
   12236 @c <en>@node Binary files in imports
   12237 @node Arquivos binrios em importaes
   12238 @c <en>@section How to handle binary files with cvs import
   12239 @section How to handle binary files with cvs import
   12240 
   12241 @c <en>Use the @samp{-k} wrapper option to tell import which
   12242 @c <en>files are binary.  @xref{Wrappers}.
   12243 Use the @samp{-k} wrapper option to tell import which
   12244 files are binary.  @xref{Wrappers}.
   12245 
   12246 @c <en>@node Keywords in imports
   12247 @node Palavras-chave em importaes
   12248 @c <en>@section How to handle keyword substitution with cvs import
   12249 @section Como lidar com substituio de palavras-chave com o cvs import
   12250 
   12251 @c <en>The sources which you are importing may contain
   12252 @c <en>keywords (@pxref{Keyword substitution}).  For example,
   12253 @c <en>the vendor may use @sc{cvs} or some other system
   12254 @c <en>which uses similar keyword expansion syntax.  If you
   12255 @c <en>just import the files in the default fashion, then
   12256 @c <en>the keyword expansions supplied by the vendor will
   12257 @c <en>be replaced by keyword expansions supplied by your
   12258 @c <en>own copy of @sc{cvs}.  It may be more convenient to
   12259 @c <en>maintain the expansions supplied by the vendor, so
   12260 @c <en>that this information can supply information about
   12261 @c <en>the sources that you imported from the vendor.
   12262 The sources which you are importing may contain
   12263 keywords (@pxref{Substituio de palavra-chave}).  For example,
   12264 the vendor may use @sc{cvs} or some other system
   12265 which uses similar keyword expansion syntax.  If you
   12266 just import the files in the default fashion, then
   12267 the keyword expansions supplied by the vendor will
   12268 be replaced by keyword expansions supplied by your
   12269 own copy of @sc{cvs}.  It may be more convenient to
   12270 maintain the expansions supplied by the vendor, so
   12271 that this information can supply information about
   12272 the sources that you imported from the vendor.
   12273 
   12274 @c <en>To maintain the keyword expansions supplied by the
   12275 @c <en>vendor, supply the @samp{-ko} option to @code{cvs
   12276 @c <en>import} the first time you import the file.
   12277 @c <en>This will turn off keyword expansion
   12278 @c <en>for that file entirely, so if you want to be more
   12279 @c <en>selective you'll have to think about what you want
   12280 @c <en>and use the @samp{-k} option to @code{cvs update} or
   12281 @c <en>@code{cvs admin} as appropriate.
   12282 To maintain the keyword expansions supplied by the
   12283 vendor, supply the @samp{-ko} option to @code{cvs
   12284 import} the first time you import the file.
   12285 This will turn off keyword expansion
   12286 for that file entirely, so if you want to be more
   12287 selective you'll have to think about what you want
   12288 and use the @samp{-k} option to @code{cvs update} or
   12289 @code{cvs admin} as appropriate.
   12290 @c Supplying -ko to import if the file already existed
   12291 @c has no effect.  Not clear to me whether it should
   12292 @c or not.
   12293 
   12294 @c <en>@node Multiple vendor branches
   12295 @node Ramos de fornecedor mltiplos
   12296 @c <en>@section Multiple vendor branches
   12297 @section Ramos de fornecedor mltiplos
   12298 
   12299 @c <en>All the examples so far assume that there is only one
   12300 @c <en>vendor from which you are getting sources.  In some
   12301 @c <en>situations you might get sources from a variety of
   12302 @c <en>places.  For example, suppose that you are dealing with
   12303 @c <en>a project where many different people and teams are
   12304 @c <en>modifying the software.  There are a variety of ways to
   12305 @c <en>handle this, but in some cases you have a bunch of
   12306 @c <en>source trees lying around and what you want to do more
   12307 @c <en>than anything else is just to all put them in @sc{cvs} so
   12308 @c <en>that you at least have them in one place.
   12309 All the examples so far assume that there is only one
   12310 vendor from which you are getting sources.  In some
   12311 situations you might get sources from a variety of
   12312 places.  For example, suppose that you are dealing with
   12313 a project where many different people and teams are
   12314 modifying the software.  There are a variety of ways to
   12315 handle this, but in some cases you have a bunch of
   12316 source trees lying around and what you want to do more
   12317 than anything else is just to all put them in @sc{cvs} so
   12318 that you at least have them in one place.
   12319 
   12320 @c <en>For handling situations in which there may be more than
   12321 @c <en>one vendor, you may specify the @samp{-b} option to
   12322 @c <en>@code{cvs import}.  It takes as an argument the vendor
   12323 @c <en>branch to import to.  The default is @samp{-b 1.1.1}.
   12324 For handling situations in which there may be more than
   12325 one vendor, you may specify the @samp{-b} option to
   12326 @code{cvs import}.  It takes as an argument the vendor
   12327 branch to import to.  The default is @samp{-b 1.1.1}.
   12328 
   12329 @c <en>For example, suppose that there are two teams, the red
   12330 @c <en>team and the blue team, that are sending you sources.
   12331 @c <en>You want to import the red team's efforts to branch
   12332 @c <en>1.1.1 and use the vendor tag RED.  You want to import
   12333 @c <en>the blue team's efforts to branch 1.1.3 and use the
   12334 @c <en>vendor tag BLUE.  So the commands you might use are:
   12335 For example, suppose that there are two teams, the red
   12336 team and the blue team, that are sending you sources.
   12337 You want to import the red team's efforts to branch
   12338 1.1.1 and use the vendor tag RED.  You want to import
   12339 the blue team's efforts to branch 1.1.3 and use the
   12340 vendor tag BLUE.  So the commands you might use are:
   12341 
   12342 @example
   12343 $ cvs import dir RED RED_1-0
   12344 $ cvs import -b 1.1.3 dir BLUE BLUE_1-5
   12345 @end example
   12346 
   12347 Note that if your vendor tag does not match your
   12348 @samp{-b} option, @sc{cvs} will not detect this case!  For
   12349 example,
   12350 
   12351 @example
   12352 $ cvs import -b 1.1.3 dir RED RED_1-0
   12353 @end example
   12354 
   12355 @noindent
   12356 @c <en>Be careful; this kind of mismatch is sure to sow
   12357 @c <en>confusion or worse.  I can't think of a useful purpose
   12358 @c <en>for the ability to specify a mismatch here, but if you
   12359 @c <en>discover such a use, don't.  @sc{cvs} is likely to make this
   12360 @c <en>an error in some future release.
   12361 Be careful; this kind of mismatch is sure to sow
   12362 confusion or worse.  I can't think of a useful purpose
   12363 for the ability to specify a mismatch here, but if you
   12364 discover such a use, don't.  @sc{cvs} is likely to make this
   12365 an error in some future release.
   12366 
   12367 @c Probably should say more about the semantics of
   12368 @c multiple branches.  What about the default branch?
   12369 @c What about joining (perhaps not as useful with
   12370 @c multiple branches, or perhaps it is.  Either way
   12371 @c should be mentioned).
   12372 
   12373 @c I'm not sure about the best location for this.  In
   12374 @c one sense, it might belong right after we've introduced
   12375 @c CVS's basic version control model, because people need
   12376 @c to figure out builds right away.  The current location
   12377 @c is based on the theory that it kind of akin to the
   12378 @c "Revision management" section.
   12379 @c <en>@node Builds
   12380 @node Builds
   12381 @c <en>@chapter How your build system interacts with CVS
   12382 @chapter How your build system interacts with CVS
   12383 @c <en>@cindex Builds
   12384 @cindex Builds
   12385 @c <en>@cindex make
   12386 @cindex make
   12387 
   12388 @c <en>As mentioned in the introduction, @sc{cvs} does not
   12389 @c <en>contain software for building your software from source
   12390 @c <en>code.  This section describes how various aspects of
   12391 @c <en>your build system might interact with @sc{cvs}.
   12392 As mentioned in the introduction, @sc{cvs} does not
   12393 contain software for building your software from source
   12394 code.  This section describes how various aspects of
   12395 your build system might interact with @sc{cvs}.
   12396 
   12397 @c Is there a way to discuss this without reference to
   12398 @c tools other than CVS?  I'm not sure there is; I
   12399 @c wouldn't think that people who learn CVS first would
   12400 @c even have this concern.
   12401 @c <en>One common question, especially from people who are
   12402 @c <en>accustomed to @sc{rcs}, is how to make their build get
   12403 @c <en>an up to date copy of the sources.  The answer to this
   12404 @c <en>with @sc{cvs} is two-fold.  First of all, since
   12405 @c <en>@sc{cvs} itself can recurse through directories, there
   12406 @c <en>is no need to modify your @file{Makefile} (or whatever
   12407 @c <en>configuration file your build tool uses) to make sure
   12408 @c <en>each file is up to date.  Instead, just use two
   12409 @c <en>commands, first @code{cvs -q update} and then
   12410 @c <en>@code{make} or whatever the command is to invoke your
   12411 @c <en>build tool.  Secondly, you do not necessarily
   12412 @c <en>@emph{want} to get a copy of a change someone else made
   12413 @c <en>until you have finished your own work.  One suggested
   12414 @c <en>approach is to first update your sources, then
   12415 @c <en>implement, build and
   12416 @c <en>test the change you were thinking of, and then commit
   12417 @c <en>your sources (updating first if necessary).  By
   12418 @c <en>periodically (in between changes, using the approach
   12419 @c <en>xjust described) updating your entire tree, you ensure
   12420 @c <en>that your sources are sufficiently up to date.
   12421 One common question, especially from people who are
   12422 accustomed to @sc{rcs}, is how to make their build get
   12423 an up to date copy of the sources.  The answer to this
   12424 with @sc{cvs} is two-fold.  First of all, since
   12425 @sc{cvs} itself can recurse through directories, there
   12426 is no need to modify your @file{Makefile} (or whatever
   12427 configuration file your build tool uses) to make sure
   12428 each file is up to date.  Instead, just use two
   12429 commands, first @code{cvs -q update} and then
   12430 @code{make} or whatever the command is to invoke your
   12431 build tool.  Secondly, you do not necessarily
   12432 @emph{want} to get a copy of a change someone else made
   12433 until you have finished your own work.  One suggested
   12434 approach is to first update your sources, then
   12435 implement, build and
   12436 test the change you were thinking of, and then commit
   12437 your sources (updating first if necessary).  By
   12438 periodically (in between changes, using the approach
   12439 just described) updating your entire tree, you ensure
   12440 that your sources are sufficiently up to date.
   12441 
   12442 @c <en>@cindex Bill of materials
   12443 @cindex Bill of materials
   12444 @c <en>One common need is to record which versions of which
   12445 @c <en>source files went into a particular build.  This kind
   12446 @c <en>of functionality is sometimes called @dfn{bill of
   12447 @c <en>materials} or something similar.  The best way to do
   12448 @c <en>this with @sc{cvs} is to use the @code{tag} command to
   12449 @c <en>record which versions went into a given build
   12450 @c <en>(@pxref{Tags}).
   12451 One common need is to record which versions of which
   12452 source files went into a particular build.  This kind
   12453 of functionality is sometimes called @dfn{bill of
   12454 materials} or something similar.  The best way to do
   12455 this with @sc{cvs} is to use the @code{tag} command to
   12456 record which versions went into a given build
   12457 (@pxref{Etiquetas}).
   12458 
   12459 @c <en>Using @sc{cvs} in the most straightforward manner
   12460 @c <en>possible, each developer will have a copy of the entire
   12461 @c <en>source tree which is used in a particular build.  If
   12462 @c <en>the source tree is small, or if developers are
   12463 @c <en>geographically dispersed, this is the preferred
   12464 @c <en>solution.  In fact one approach for larger projects is
   12465 @c <en>to break a project down into smaller
   12466 Using @sc{cvs} in the most straightforward manner
   12467 possible, each developer will have a copy of the entire
   12468 source tree which is used in a particular build.  If
   12469 the source tree is small, or if developers are
   12470 geographically dispersed, this is the preferred
   12471 solution.  In fact one approach for larger projects is
   12472 to break a project down into smaller
   12473 @c I say subsystem instead of module because they may or
   12474 @c may not use the modules file.
   12475 @c <en>separately-compiled subsystems, and arrange a way of
   12476 @c <en>releasing them internally so that each developer need
   12477 @c <en>check out only those subsystems which they are
   12478 @c <en>actively working on.
   12479 separately-compiled subsystems, and arrange a way of
   12480 releasing them internally so that each developer need
   12481 check out only those subsystems which they are
   12482 actively working on.
   12483 
   12484 @c <en>Another approach is to set up a structure which allows
   12485 @c <en>developers to have their own copies of some files, and
   12486 @c <en>for other files to access source files from a central
   12487 @c <en>location.  Many people have come up with some such a
   12488 Another approach is to set up a structure which allows
   12489 developers to have their own copies of some files, and
   12490 for other files to access source files from a central
   12491 location.  Many people have come up with some such a
   12492 @c two such people are paul (a] sander.cupertino.ca.us (for
   12493 @c a previous employer)
   12494 @c and gtornblo (a] senet.abb.se (spicm and related tools),
   12495 @c but as far as I know
   12496 @c no one has nicely packaged or released such a system (or
   12497 @c instructions for constructing one).
   12498 @c <en>system using features such as the symbolic link feature
   12499 @c <en>found in many operating systems, or the @code{VPATH}
   12500 @c <en>feature found in many versions of @code{make}.  One build
   12501 @c <en>tool which is designed to help with this kind of thing
   12502 @c <en>is Odin (see
   12503 @c <en>@code{ftp://ftp.cs.colorado.edu/pub/distribs/odin}).
   12504 system using features such as the symbolic link feature
   12505 found in many operating systems, or the @code{VPATH}
   12506 feature found in many versions of @code{make}.  One build
   12507 tool which is designed to help with this kind of thing
   12508 is Odin (see
   12509 @code{ftp://ftp.cs.colorado.edu/pub/distribs/odin}).
   12510 @c Should we be saying more about Odin?  Or how you use
   12511 @c it with CVS?  Also, the Prime Time Freeware for Unix
   12512 @c disk (see http://www.ptf.com/) has Odin (with a nice
   12513 @c paragraph summarizing it on the web), so that might be a
   12514 @c semi-"official" place to point people.
   12515 @c
   12516 @c Of course, many non-CVS systems have this kind of
   12517 @c functionality, for example OSF's ODE
   12518 @c (http://www.osf.org/ode/) or mk
   12519 @c (http://www.grin.net/~pzi/mk-3.18.4.docs/mk_toc.html
   12520 @c He has changed providers in the past; a search engine search
   12521 @c for "Peter Ziobrzynski" probably won't get too many
   12522 @c spurious hits :-).  A more stable URL might be
   12523 @c ftp://ftp.uu.net/pub/cmvc/mk).  But I'm not sure
   12524 @c there is any point in mentioning them here unless they
   12525 @c can work with CVS.
   12526 
   12527 @c ---------------------------------------------------------------------
   12528 @c <en>@node Special Files
   12529 @node Arquivos especiais
   12530 @c <en>@chapter Special Files
   12531 @chapter Arquivos especiais
   12532 
   12533 @c <en>@cindex Special files
   12534 @cindex Arquivos especiais
   12535 @c <en>@cindex Device nodes
   12536 @cindex Device nodes
   12537 @c <en>@cindex Ownership, saving in CVS
   12538 @cindex Ownership, saving in CVS
   12539 @c <en>@cindex Permissions, saving in CVS
   12540 @cindex Permissions, saving in CVS
   12541 @c <en>@cindex Hard links
   12542 @cindex Hard links
   12543 @c <en>@cindex Symbolic links
   12544 @cindex Symbolic links
   12545 
   12546 @c <en>In normal circumstances, @sc{cvs} works only with regular
   12547 @c <en>files.  Every file in a project is assumed to be
   12548 @c <en>persistent; it must be possible to open, read and close
   12549 @c <en>them; and so on.  @sc{cvs} also ignores file permissions and
   12550 @c <en>ownerships, leaving such issues to be resolved by the
   12551 @c <en>developer at installation time.  In other words, it is
   12552 @c <en>not possible to "check in" a device into a repository;
   12553 @c <en>if the device file cannot be opened, @sc{cvs} will refuse to
   12554 @c <en>handle it.  Files also lose their ownerships and
   12555 @c <en>permissions during repository transactions.
   12556 In normal circumstances, @sc{cvs} works only with regular
   12557 files.  Every file in a project is assumed to be
   12558 persistent; it must be possible to open, read and close
   12559 them; and so on.  @sc{cvs} also ignores file permissions and
   12560 ownerships, leaving such issues to be resolved by the
   12561 developer at installation time.  In other words, it is
   12562 not possible to "check in" a device into a repository;
   12563 if the device file cannot be opened, @sc{cvs} will refuse to
   12564 handle it.  Files also lose their ownerships and
   12565 permissions during repository transactions.
   12566 
   12567 @ignore
   12568 If the configuration variable @code{PreservePermissions}
   12569 (@pxref{config}) is set in the repository, @sc{cvs} will
   12570 save the following file characteristics in the
   12571 repository:
   12572 
   12573 @itemize @bullet
   12574 @item user and group ownership
   12575 @item permissions
   12576 @item major and minor device numbers
   12577 @item symbolic links
   12578 @item hard link structure
   12579 @end itemize
   12580 
   12581 Using the @code{PreservePermissions} option affects the
   12582 behavior of @sc{cvs} in several ways.  First, some of the
   12583 new operations supported by @sc{cvs} are not accessible to
   12584 all users.  In particular, file ownership and special
   12585 file characteristics may only be changed by the
   12586 superuser.  When the @code{PreservePermissions}
   12587 configuration variable is set, therefore, users will
   12588 have to be `root' in order to perform @sc{cvs} operations.
   12589 
   12590 When @code{PreservePermissions} is in use, some @sc{cvs}
   12591 operations (such as @samp{cvs status}) will not
   12592 recognize a file's hard link structure, and so will
   12593 emit spurious warnings about mismatching hard links.
   12594 The reason is that @sc{cvs}'s internal structure does not
   12595 make it easy for these operations to collect all the
   12596 necessary data about hard links, so they check for file
   12597 conflicts with inaccurate data.
   12598 
   12599 A more subtle difference is that @sc{cvs} considers a file
   12600 to have changed only if its contents have changed
   12601 (specifically, if the modification time of the working
   12602 file does not match that of the repository's file).
   12603 Therefore, if only the permissions, ownership or hard
   12604 linkage have changed, or if a device's major or minor
   12605 numbers have changed, @sc{cvs} will not notice.  In order to
   12606 commit such a change to the repository, you must force
   12607 the commit with @samp{cvs commit -f}.  This also means
   12608 that if a file's permissions have changed and the
   12609 repository file is newer than the working copy,
   12610 performing @samp{cvs update} will silently change the
   12611 permissions on the working copy.
   12612 
   12613 Changing hard links in a @sc{cvs} repository is particularly
   12614 delicate.  Suppose that file @file{foo} is linked to
   12615 file @file{old}, but is later relinked to file
   12616 @file{new}.  You can wind up in the unusual situation
   12617 where, although @file{foo}, @file{old} and @file{new}
   12618 have all had their underlying link patterns changed,
   12619 only @file{foo} and @file{new} have been modified, so
   12620 @file{old} is not considered a candidate for checking
   12621 in.  It can be very easy to produce inconsistent
   12622 results this way.  Therefore, we recommend that when it
   12623 is important to save hard links in a repository, the
   12624 prudent course of action is to @code{touch} any file
   12625 whose linkage or status has changed since the last
   12626 checkin.  Indeed, it may be wise to @code{touch *}
   12627 before each commit in a directory with complex hard
   12628 link structures.
   12629 
   12630 It is worth noting that only regular files may
   12631 be merged, for reasons that hopefully are obvious.  If
   12632 @samp{cvs update} or @samp{cvs checkout -j} attempts to
   12633 merge a symbolic link with a regular file, or two
   12634 device files for different kinds of devices, @sc{cvs} will
   12635 report a conflict and refuse to perform the merge.  At
   12636 the same time, @samp{cvs diff} will not report any
   12637 differences between these files, since no meaningful
   12638 textual comparisons can be made on files which contain
   12639 no text.
   12640 
   12641 The @code{PreservePermissions} features do not work
   12642 with client/server @sc{cvs}.  Another limitation is
   12643 that hard links must be to other files within the same
   12644 directory; hard links across directories are not
   12645 supported.
   12646 @end ignore
   12647 
   12648 @c ---------------------------------------------------------------------
   12649 @c <en>@node Comandos do CVS
   12650 @node Comandos do CVS
   12651 @c <en>@appendix Guia dos comandos do CVS
   12652 @appendix Guia dos comandos do CVS
   12653 
   12654 @c <en>This appendix describes the overall structure of
   12655 @c <en>@sc{cvs} commands, and describes some commands in
   12656 @c <en>detail (others are described elsewhere; for a quick
   12657 @c <en>reference to @sc{cvs} commands, @pxref{Invoking CVS}).
   12658 Este apndice descreve a estrutura geral dos comandos
   12659 do @sc{cvs}, e descreve alguns comandos em detalhe
   12660 (outros so descritos em outra parte; para
   12661 uma referncia rpida dos comandos do @sc{cvs},
   12662 @pxref{Chamando o CVS}).
   12663 @c The idea is that we want to move the commands which
   12664 @c are described here into the main body of the manual,
   12665 @c in the process reorganizing the manual to be
   12666 @c organized around what the user wants to do, not
   12667 @c organized around CVS commands.
   12668 @c
   12669 @c Note that many users do expect a manual which is
   12670 @c organized by command.  At least some users do.
   12671 @c One good addition to the "organized by command"
   12672 @c section (if any) would be "see also" links.
   12673 @c The awk manual might be a good example; it has a
   12674 @c reference manual which is more verbose than Invoking
   12675 @c CVS but probably somewhat less verbose than CVS
   12676 @c Commands.
   12677 
   12678 @menu
   12679 @c <en>* Structure::                   Overall structure of CVS commands
   12680 * Estrutura::                   Estrutura geral dos comandos do CVS
   12681 @c <en>* Exit status::                 Indicating CVS's success or failure
   12682 * Estados de sada::            Indicando o sucesso ou falha do CVS
   12683 @c <en>* ~/.cvsrc::                    Default options with the ~/.cvsrc file
   12684 * ~/.cvsrc::                    Opes padro com o arquivo ~/.cvsrc
   12685 @c <en>* Global options::              Options you give to the left of cvs_command
   12686 * Opes globais::              Opes que voc bota a esquerda do comando_do_cvs
   12687 @c <en>* Common options::              Options you give to the right of cvs_command
   12688 * Opes comuns::              Opes que voc bota a direita do comando_do_cvs
   12689 @c <en>* admin::                       Administration
   12690 * admin::                       Administrao
   12691 @c <en>* checkout::                    Checkout sources for editing
   12692 * checkout::                    ???Checkout??? fontes para edio
   12693 @c <en>* commit::                      Check files into the repository
   12694 * commit::                      Colocar arquivos no repositrio
   12695 @c <en>* diff::                        Show differences between revisions
   12696 * diff::                        Mostrar diferenas entre revises
   12697 @c <en>* export::                      Export sources from CVS, similar to checkout
   12698 * export::                      Exportar fontes para fora do CVS, similar ao ???checkout???
   12699 @c <en>* history::                     Show status of files and users
   12700 * history::                     Mostrar estado de arquivos e usurios
   12701 @c <en>* import::                      Import sources into CVS, using vendor branches
   12702 * import::                      Importar fontes para dentro do CVS, usando ramos de fornecedor
   12703 @c <en>* log::                         Show log messages for files
   12704 * log::                         Mostrar mensagens de log para arquivos
   12705 @c <en>* rdiff::                       'patch' format diffs between releases
   12706 * rdiff::                       'patch' format diffs between releases
   12707 @c <en>* release::                     Indicate that a directory is no longer in use
   12708 * release::                     Avisar que um diretorio no est mais em uso
   12709 @c <en>* update::                      Bring work tree in sync with repository
   12710 * update::                      Deixar rvore de trabalho em sincronia com o repositrio
   12711 @end menu
   12712 
   12713 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   12714 @c <en>@node Structure
   12715 @node Estrutura
   12716 @c <en>@appendixsec Overall structure of CVS commands
   12717 @appendixsec Estrutura geral dos comandos do CVS
   12718 @c <en>@cindex Structure
   12719 @cindex Estrutura
   12720 @c <en>@cindex CVS command structure
   12721 @cindex Estrutura do comando CVS
   12722 @c <en>@cindex Command structure
   12723 @cindex Estrutura do comando
   12724 @c <en>@cindex Format of CVS commands
   12725 @cindex Formato dos comandos do CVS
   12726 
   12727 @c <en>The overall format of all @sc{cvs} commands is:
   12728 O formato geral de todos os comandos do @sc{cvs} :
   12729 
   12730 @example
   12731 cvs [ cvs_options ] cvs_command [ command_options ] [ command_args ]
   12732 @end example
   12733 
   12734 @table @code
   12735 @c <en>@item cvs
   12736 @item cvs
   12737 @c <en>The name of the @sc{cvs} program.
   12738 O nome do programa @sc{cvs}.
   12739 
   12740 @c <en>@item cvs_options
   12741 @item cvs_options
   12742 @c <en>Some options that affect all sub-commands of @sc{cvs}.  These are
   12743 @c <en>described below.
   12744 Algumas opes que afetam todos os sub-comandos do
   12745 @sc{cvs}.  Estes esto descritos abaixo.
   12746 
   12747 @c <en>@item cvs_command
   12748 @item cvs_command
   12749 @c <en>One of several different sub-commands.  Some of the commands have
   12750 @c <en>aliases that can be used instead; those aliases are noted in the
   12751 @c <en>reference manual for that command.  There are only two situations
   12752 @c <en>where you may omit @samp{cvs_command}: @samp{cvs -H} elicits a
   12753 @c <en>list of available commands, and @samp{cvs -v} displays version
   12754 @c <en>information on @sc{cvs} itself.
   12755 Um dos vrios sub-comandos.  Alguns dos comandos tm
   12756 ???aliases??? substitu-los; estes ???aliases??? so
   12757 listados no manual de referncia do comando.  Existem
   12758 apenas duas situaes onde voc pode omitir o
   12759 @samp{cvs_command}: @samp{cvs -H} retorna uma lista de
   12760 comandos disponveis, e @samp{cvs -v} mostra
   12761 informaes sobre a verso do prprio @sc{cvs}.
   12762 
   12763 @c <en>@item command_options
   12764 @item command_options
   12765 @c <en>Options that are specific for the command.
   12766 Opes que so especficas para o comando.
   12767 
   12768 @c <en>@item command_args
   12769 @item command_args
   12770 @c <en>Arguments to the commands.
   12771 Argumentos para os comandos.
   12772 @end table
   12773 
   12774 @c <en>There is unfortunately some confusion between
   12775 @c <en>@code{cvs_options} and @code{command_options}.
   12776 @c <en>@samp{-l}, when given as a @code{cvs_option}, only
   12777 @c <en>affects some of the commands.  When it is given as a
   12778 @c <en>@code{command_option} is has a different meaning, and
   12779 @c <en>is accepted by more commands.  In other words, do not
   12780 @c <en>take the above categorization too seriously.  Look at
   12781 @c <en>the documentation instead.
   12782 Infelizmente, existe alguma confuso entre
   12783 @code{cvs_options} e @code{command_options}. @samp{-l},
   12784 quando passado como @code{cvs_option}, afeta apenas
   12785 alguns dos comandos.  Quando  passado como um
   12786 @code{command_option} tem um significado diferente, e 
   12787 aceito por mais comandos.  Em outras palavras, no leve
   12788 a categorizao acima to a srio.  Olhe a
   12789 documentao, ao invs disto.
   12790 
   12791 @c <en>@node Exit status
   12792 @node Estados de sada
   12793 @c <en>@appendixsec CVS's exit status
   12794 @appendixsec estado de sada do CVS
   12795 @c <en>@cindex Exit status, of CVS
   12796 @cindex Estados de sada do CVS
   12797 
   12798 @c <en>@sc{cvs} can indicate to the calling environment whether it
   12799 @c <en>succeeded or failed by setting its @dfn{exit status}.
   12800 @c <en>The exact way of testing the exit status will vary from
   12801 @c <en>one operating system to another.  For example in a unix
   12802 @c <en>shell script the @samp{$?} variable will be 0 if the
   12803 @c <en>last command returned a successful exit status, or
   12804 @c <en>greater than 0 if the exit status indicated failure.
   12805 O @sc{cvs} pode indicar para o ambiente que o chamou se
   12806 ele foi bem-sucedido ou falhou ao ajustar seu
   12807 @dfn{estado de sada}.  A forma exata de testar o
   12808 estado de sada varia de um sistema operacional para
   12809 outro.  Por exemplo, num shell script do unix a
   12810 varivel @samp{$?} ser 0 se o ltimo comando retornar
   12811 um estado de sada bem-sucedido, ou maior que 0 se o
   12812 estado de sada indicar uma falha.
   12813 
   12814 @c <en>If @sc{cvs} is successful, it returns a successful status;
   12815 @c <en>if there is an error, it prints an error message and
   12816 @c <en>returns a failure status.  The one exception to this is
   12817 @c <en>the @code{cvs diff} command.  It will return a
   12818 @c <en>successful status if it found no differences, or a
   12819 @c <en>failure status if there were differences or if there
   12820 @c <en>was an error.  Because this behavior provides no good
   12821 @c <en>way to detect errors, in the future it is possible that
   12822 @c <en>@code{cvs diff} will be changed to behave like the
   12823 @c <en>other @sc{cvs} commands.
   12824 Se o @sc{cvs}  bem-sucedido, retorna um estado de sucesso;
   12825 se existe um erro, mostra uma mensagem de erro e
   12826 retorna um estado de falha.  A nica exceo para isto
   12827  o comando @code{cvs diff}.  Ele retornar um estado
   12828 de sucesso se no encontrar diferenas, ou um estado de
   12829 sucesso se existirem diferenas ou acontecer um erro.
   12830 J que este comportamento no fornece uma boa maneira
   12831 de detectar erros,  possvel que no futuro o @code{cvs
   12832 diff} seja mudado para se comportar como os outros
   12833 comandos do @sc{cvs}.
   12834 @c It might seem like checking whether cvs -q diff
   12835 @c produces empty or non-empty output can tell whether
   12836 @c there were differences or not.  But it seems like
   12837 @c there are cases with output but no differences
   12838 @c (testsuite basica-8b).  It is not clear to me how
   12839 @c useful it is for a script to be able to check
   12840 @c whether there were differences.
   12841 @c FIXCVS? In previous versions of CVS, cvs diff
   12842 @c returned 0 for no differences, 1 for differences, or
   12843 @c 2 for errors.  Is this behavior worth trying to
   12844 @c bring back (but what does it mean for VMS?)?
   12845 
   12846 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   12847 @c <en>@node ~/.cvsrc
   12848 @node ~/.cvsrc
   12849 @c <en>@appendixsec Default options and the ~/.cvsrc file
   12850 @appendixsec Opes padro e o arquivo ~/.cvsrc
   12851 @c <en>@cindex .cvsrc file
   12852 @cindex Arquivo .cvsrc
   12853 @c <en>@cindex Option defaults
   12854 @cindex Padro, opes
   12855 
   12856 @c <en>There are some @code{command_options} that are used so
   12857 @c <en>often that you might have set up an alias or some other
   12858 @c <en>means to make sure you always specify that option.  One
   12859 @c <en>example (the one that drove the implementation of the
   12860 @c <en>@file{.cvsrc} support, actually) is that many people find the
   12861 @c <en>default output of the @samp{diff} command to be very
   12862 @c <en>hard to read, and that either context diffs or unidiffs
   12863 @c <en>are much easier to understand.
   12864 Existem algumas @code{opes_de_comando} que so to
   12865 usadas que voc vai querer  preparar um atalho ou
   12866 alguma outra forma de ter certeza que tais opes
   12867 sempre vo ser especificadas.  Um exemplo (o que
   12868 motivou a implementao do suporte ao arquivo
   12869 @file{.cvsrc}, na verdade)  que muitas pessoas acham a
   12870 sada do comando @samp{diff} muito difcil de ler, e
   12871 que tanto diffs de contexto quanto unidiffs so muito
   12872 mais fceis de entender.
   12873 
   12874 @c <en>The @file{~/.cvsrc} file is a way that you can add
   12875 @c <en>default options to @code{cvs_commands} within cvs,
   12876 @c <en>instead of relying on aliases or other shell scripts.
   12877 O arquivo @file{~/.cvsrc}  uma forma de voc adicionar
   12878 opes padro aos @code{comandos_cvs} dentro do cvs, ao
   12879 invs de usar alias (apelidos) ou outros scripts de shell.
   12880 
   12881 @c <en>The format of the @file{~/.cvsrc} file is simple.  The
   12882 @c <en>file is searched for a line that begins with the same
   12883 @c <en>name as the @code{cvs_command} being executed.  If a
   12884 @c <en>match is found, then the remainder of the line is split
   12885 @c <en>up (at whitespace characters) into separate options and
   12886 @c <en>added to the command arguments @emph{before} any
   12887 @c <en>options from the command line.
   12888 O formato do arquivo @file{~/.cvsrc}  simples.  O
   12889 arquivo  varrido por uma linha que comece com o mesmo
   12890 nome do @code{comando_cvs} sendo executado.  Se
   12891 encontra, ento o restante da linha  dividido (pelos
   12892 espaos) em opes distintas e adicionadas aos
   12893 argumentos do comando @emph{antes} de quaisquer opes
   12894 da linha de comando.
   12895 
   12896 @c <en>If a command has two names (e.g., @code{checkout} and
   12897 @c <en>@code{co}), the official name, not necessarily the one
   12898 @c <en>used on the command line, will be used to match against
   12899 @c <en>the file.  So if this is the contents of the user's
   12900 @c <en>@file{~/.cvsrc} file:
   12901 Se um comando tem dois nomes (e.g., @code{checkout} e
   12902 @code{co}), o nome oficial, que no  necessariamente o
   12903 usado na linha de comando,  vai ser usado para fazer a
   12904 busca no arquivo.  Logo, se este  o contedo do
   12905 arquivo @file{~/.cvsrc} do usurio:
   12906 
   12907 @example
   12908 log -N
   12909 diff -uN
   12910 rdiff -u
   12911 update -Pd
   12912 checkout -P
   12913 release -d
   12914 @end example
   12915 
   12916 @noindent
   12917 @c <en>the command @samp{cvs checkout foo} would have the
   12918 @c <en>@samp{-P} option added to the arguments, as well as
   12919 @c <en>@samp{cvs co foo}.
   12920 o comando @samp{cvs checkout foo} vai ter a opo
   12921 @samp{-P} adicionada a seus argumentos, assim como
   12922 @samp{cvs co foo}.
   12923 
   12924 @c <en>With the example file above, the output from @samp{cvs
   12925 @c <en>diff foobar} will be in unidiff format.  @samp{cvs diff
   12926 @c <en>-c foobar} will provide context diffs, as usual.
   12927 @c <en>Getting "old" format diffs would be slightly more
   12928 @c <en>complicated, because @code{diff} doesn't have an option
   12929 @c <en>to specify use of the "old" format, so you would need
   12930 @c <en>@samp{cvs -f diff foobar}.
   12931 Com o arquivo de exemplo acima, a sada de @samp{cvs
   12932 diff foobar} vai ser no formato unidiff.  @samp{cvs
   12933 diff -c foobar} vai dar diffs de contexto, que  o normal.
   12934 Obter o diff no formato "velho" vai ser um pouco mais
   12935 complicado, j que o @code{diff} no tem uma opo para
   12936 especificar o uso do formato "velho", logo voc vai ter
   12937 que usar @samp{cvs -f diff foobar}.
   12938 
   12939 @c <en>In place of the command name you can use @code{cvs} to
   12940 @c <en>specify global options (@pxref{Global options}).  For
   12941 @c <en>example the following line in @file{.cvsrc}
   12942 Ao invs de no nome do comando voc pode usar o
   12943 @code{cvs} especificando opes globais (@pxref{Opes globais}).  Por
   12944 exemplo a seguinte linha em @file{.cvsrc}
   12945 
   12946 @example
   12947 cvs -z6
   12948 @end example
   12949 
   12950 @noindent
   12951 @c <en>causes @sc{cvs} to use compression level 6.
   12952 faz com que o @sc{cvs} use compresso de nvel 6.
   12953 
   12954 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   12955 @c <en>@node Global options
   12956 @node Opes globais
   12957 @c <en>@appendixsec Global options
   12958 @appendixsec Opes globais
   12959 @c <en>@cindex Options, global
   12960 @cindex Options, global
   12961 @c <en>@cindex Global options
   12962 @cindex Opes globais
   12963 @c <en>@cindex Left-hand options
   12964 @cindex Left-hand options
   12965 
   12966 The available @samp{cvs_options} (that are given to the
   12967 left of @samp{cvs_command}) are:
   12968 
   12969 @table @code
   12970 @c <en>@item --allow-root=@var{rootdir}
   12971 @item --allow-root=@var{rootdir}
   12972 @c <en>Specify legal @sc{cvsroot} directory.  See
   12973 @c <en>@ref{Password authentication server}.
   12974 Specify legal @sc{cvsroot} directory.  See
   12975 @ref{Servidor de autenticao por senha}.
   12976 
   12977 @c <en>@cindex Authentication, stream
   12978 @cindex Authentication, stream
   12979 @c <en>@cindex Stream authentication
   12980 @cindex Stream authentication
   12981 @c <en>@item -a
   12982 @item -a
   12983 @c <en>Authenticate all communication between the client and
   12984 @c <en>the server.  Only has an effect on the @sc{cvs} client.
   12985 @c <en>As of this writing, this is only implemented when using
   12986 @c <en>a GSSAPI connection (@pxref{GSSAPI authenticated}).
   12987 @c <en>Authentication prevents certain sorts of attacks
   12988 @c <en>involving hijacking the active @sc{tcp} connection.
   12989 @c <en>Enabling authentication does not enable encryption.
   12990 Authenticate all communication between the client and
   12991 the server.  Only has an effect on the @sc{cvs} client.
   12992 As of this writing, this is only implemented when using
   12993 a GSSAPI connection (@pxref{Autenticao GSSAPI}).
   12994 Authentication prevents certain sorts of attacks
   12995 involving hijacking the active @sc{tcp} connection.
   12996 Enabling authentication does not enable encryption.
   12997 
   12998 @cindex RCSBIN, overriding
   12999 @cindex Overriding RCSBIN
   13000 @item -b @var{bindir}
   13001 In @sc{cvs} 1.9.18 and older, this specified that
   13002 @sc{rcs} programs are in the @var{bindir} directory.
   13003 Current versions of @sc{cvs} do not run @sc{rcs}
   13004 programs; for compatibility this option is accepted,
   13005 but it does nothing.
   13006 
   13007 @cindex TMPDIR, overriding
   13008 @cindex Overriding TMPDIR
   13009 @item -T @var{tempdir}
   13010 Use @var{tempdir} as the directory where temporary files are
   13011 located.  Overrides the setting of the @code{$TMPDIR} environment
   13012 variable and any precompiled directory.  This parameter should be
   13013 specified as an absolute pathname.
   13014 (When running client/server, @samp{-T} affects only the local process;
   13015 specifying @samp{-T} for the client has no effect on the server and
   13016 vice versa.)
   13017 
   13018 @cindex CVSROOT, overriding
   13019 @cindex Overriding CVSROOT
   13020 @item -d @var{cvs_root_directory}
   13021 Use @var{cvs_root_directory} as the root directory
   13022 pathname of the repository.  Overrides the setting of
   13023 the @code{$CVSROOT} environment variable.  @xref{Repositrio}.
   13024 
   13025 @c <en>@cindex EDITOR, overriding
   13026 @cindex EDITOR, overriding
   13027 @c <en>@cindex Overriding EDITOR
   13028 @cindex Overriding EDITOR
   13029 @c <en>@item -e @var{editor}
   13030 @item -e @var{editor}
   13031 @c <en>Use @var{editor} to enter revision log information.  Overrides the
   13032 @c <en>setting of the @code{$CVSEDITOR} and @code{$EDITOR}
   13033 @c <en>environment variables.  For more information, see
   13034 @c <en>@ref{Committing your changes}.
   13035 Use @var{editor} to enter revision log information.  Overrides the
   13036 setting of the @code{$CVSEDITOR} and @code{$EDITOR}
   13037 environment variables.  For more information, see
   13038 @ref{Efetivando suas alteraes}.
   13039 
   13040 @item -f
   13041 Do not read the @file{~/.cvsrc} file.  This
   13042 option is most often used because of the
   13043 non-orthogonality of the @sc{cvs} option set.  For
   13044 example, the @samp{cvs log} option @samp{-N} (turn off
   13045 display of tag names) does not have a corresponding
   13046 option to turn the display on.  So if you have
   13047 @samp{-N} in the @file{~/.cvsrc} entry for @samp{log},
   13048 you may need to use @samp{-f} to show the tag names.
   13049 
   13050 @item -H
   13051 @itemx --help
   13052 Display usage information about the specified @samp{cvs_command}
   13053 (but do not actually execute the command).  If you don't specify
   13054 a command name, @samp{cvs -H} displays overall help for
   13055 @sc{cvs}, including a list of other help options.
   13056 @c It seems to me it is better to document it this way
   13057 @c rather than trying to update this documentation
   13058 @c every time that we add a --help-foo option.  But
   13059 @c perhaps that is confusing...
   13060 
   13061 @item -l
   13062 Do not log the @samp{cvs_command} in the command history (but execute it
   13063 anyway).  @xref{history}, for information on command history.
   13064 
   13065 @cindex Read-only repository mode
   13066 @item -R
   13067 Turns on read-only repository mode.  This allows one to check out from a
   13068 read-only repository, such as within an anoncvs server, or from a CDROM
   13069 repository.
   13070 
   13071 Same effect as if the @code{CVSREADONLYFS} environment
   13072 variable is set. Using @samp{-R} can also considerably
   13073 speed up checkout's over NFS.
   13074 
   13075 @cindex Read-only mode
   13076 @item -n
   13077 Do not change any files.  Attempt to execute the
   13078 @samp{cvs_command}, but only to issue reports; do not remove,
   13079 update, or merge any existing files, or create any new files.
   13080 
   13081 Note that @sc{cvs} will not necessarily produce exactly
   13082 the same output as without @samp{-n}.  In some cases
   13083 the output will be the same, but in other cases
   13084 @sc{cvs} will skip some of the processing that would
   13085 have been required to produce the exact same output.
   13086 
   13087 @item -Q
   13088 Cause the command to be really quiet; the command will only
   13089 generate output for serious problems.
   13090 
   13091 @item -q
   13092 Cause the command to be somewhat quiet; informational messages,
   13093 such as reports of recursion through subdirectories, are
   13094 suppressed.
   13095 
   13096 @c <en>@cindex Read-only files, and -r
   13097 @cindex Read-only files, and -r
   13098 @c <en>@item -r
   13099 @item -r
   13100 @c <en>Make new working files read-only.  Same effect
   13101 @c <en>as if the @code{$CVSREAD} environment variable is set
   13102 @c <en>(@pxref{Environment variables}).  The default is to
   13103 @c <en>make working files writable, unless watches are on
   13104 @c <en>(@pxref{Watches}).
   13105 Make new working files read-only.  Same effect
   13106 as if the @code{$CVSREAD} environment variable is set
   13107 (@pxref{Variveis de ambiente}).  The default is to
   13108 make working files writable, unless watches are on
   13109 (@pxref{???Watches???}).
   13110 
   13111 @item -s @var{variable}=@var{value}
   13112 Set a user variable (@pxref{Variables}).
   13113 
   13114 @cindex Trace
   13115 @item -t
   13116 Trace program execution; display messages showing the steps of
   13117 @sc{cvs} activity.  Particularly useful with @samp{-n} to explore the
   13118 potential impact of an unfamiliar command.
   13119 
   13120 @item -v
   13121 @item --version
   13122 Display version and copyright information for @sc{cvs}.
   13123 
   13124 @cindex CVSREAD, overriding
   13125 @cindex Overriding CVSREAD
   13126 @item -w
   13127 Make new working files read-write.  Overrides the
   13128 setting of the @code{$CVSREAD} environment variable.
   13129 Files are created read-write by default, unless @code{$CVSREAD} is
   13130 set or @samp{-r} is given.
   13131 @c Note that -w only overrides -r and CVSREAD; it has
   13132 @c no effect on files which are readonly because of
   13133 @c "cvs watch on".  My guess is that is the way it
   13134 @c should be (or should "cvs -w get" on a watched file
   13135 @c be the same as a get and a cvs edit?), but I'm not
   13136 @c completely sure whether to document it this way.
   13137 
   13138 @item -x
   13139 @c <en>@cindex Encryption
   13140 @cindex Encryption
   13141 @c <en>Encrypt all communication between the client and the
   13142 @c <en>server.  Only has an effect on the @sc{cvs} client.  As
   13143 @c <en>of this writing, this is only implemented when using a
   13144 @c <en>GSSAPI connection (@pxref{GSSAPI authenticated}) or a
   13145 @c <en>Kerberos connection (@pxref{Kerberos authenticated}).
   13146 @c <en>Enabling encryption implies that message traffic is
   13147 @c <en>also authenticated.  Encryption support is not
   13148 @c <en>available by default; it must be enabled using a
   13149 @c <en>special configure option, @file{--enable-encryption},
   13150 @c <en>when you build @sc{cvs}.
   13151 Encrypt all communication between the client and the
   13152 server.  Only has an effect on the @sc{cvs} client.  As
   13153 of this writing, this is only implemented when using a
   13154 GSSAPI connection (@pxref{Autenticao GSSAPI}) or a
   13155 Kerberos connection (@pxref{Autenticao kerberos}).
   13156 Enabling encryption implies that message traffic is
   13157 also authenticated.  Encryption support is not
   13158 available by default; it must be enabled using a
   13159 special configure option, @file{--enable-encryption},
   13160 when you build @sc{cvs}.
   13161 
   13162 @item -z @var{gzip-level}
   13163 @cindex Compression
   13164 @cindex Gzip
   13165 Set the compression level.
   13166 Valid levels are 1 (high speed, low compression) to
   13167 9 (low speed, high compression), or 0 to disable
   13168 compression (the default).
   13169 Only has an effect on the @sc{cvs} client.
   13170 
   13171 @end table
   13172 
   13173 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   13174 @c <en>@node Common options
   13175 @node Opes comuns
   13176 @c <en>@appendixsec Common command options
   13177 @appendixsec Common command options
   13178 @c <en>@cindex Common options
   13179 @cindex Opes comuns
   13180 @c <en>@cindex Right-hand options
   13181 @cindex Right-hand options
   13182 
   13183 This section describes the @samp{command_options} that
   13184 are available across several @sc{cvs} commands.  These
   13185 options are always given to the right of
   13186 @samp{cvs_command}. Not all
   13187 commands support all of these options; each option is
   13188 only supported for commands where it makes sense.
   13189 However, when a command has one of these options you
   13190 can almost always count on the same behavior of the
   13191 option as in other commands.  (Other command options,
   13192 which are listed with the individual commands, may have
   13193 different behavior from one @sc{cvs} command to the other).
   13194 
   13195 @strong{Note: the @samp{history} command is an exception; it supports
   13196 many options that conflict even with these standard options.}
   13197 
   13198 @table @code
   13199 @cindex Dates
   13200 @cindex Time
   13201 @cindex Specifying dates
   13202 @item -D @var{date_spec}
   13203 Use the most recent revision no later than @var{date_spec}.
   13204 @var{date_spec} is a single argument, a date description
   13205 specifying a date in the past.
   13206 
   13207 @c <en>The specification is @dfn{sticky} when you use it to make a
   13208 @c <en>private copy of a source file; that is, when you get a working
   13209 @c <en>file using @samp{-D}, @sc{cvs} records the date you specified, so that
   13210 @c <en>further updates in the same directory will use the same date
   13211 @c <en>(for more information on sticky tags/dates, @pxref{Sticky tags}).
   13212 The specification is @dfn{sticky} when you use it to make a
   13213 private copy of a source file; that is, when you get a working
   13214 file using @samp{-D}, @sc{cvs} records the date you specified, so that
   13215 further updates in the same directory will use the same date
   13216 (for more information on sticky tags/dates, @pxref{Etiquetas adesivas}).
   13217 
   13218 @samp{-D} is available with the @code{annotate}, @code{checkout},
   13219 @code{diff}, @code{export}, @code{history},
   13220 @code{rdiff}, @code{rtag}, @code{tag}, and @code{update} commands.
   13221 (The @code{history} command uses this option in a
   13222 slightly different way; @pxref{history options}).
   13223 
   13224 @c What other formats should we accept?  I don't want
   13225 @c to start accepting a whole mess of non-standard
   13226 @c new formats (there are a lot which are in wide use in
   13227 @c one context or another), but practicality does
   13228 @c dictate some level of flexibility.
   13229 @c * POSIX.2 (e.g. touch, ls output, date) and other
   13230 @c POSIX and/or de facto unix standards (e.g. at).  The
   13231 @c practice here is too inconsistent to be of any use.
   13232 @c * VMS dates.  This is not a formal standard, but
   13233 @c there is a published specification (see SYS$ASCTIM
   13234 @c and SYS$BINTIM in the _VMS System Services Reference
   13235 @c Manual_), it is implemented consistently in VMS
   13236 @c utilities, and VMS users will expect CVS running on
   13237 @c VMS to support this format (and if we're going to do
   13238 @c that, better to make CVS support it on all
   13239 @c platforms.  Maybe).
   13240 @c
   13241 @c NOTE: The tar manual has some documentation for
   13242 @c getdate.y (just for our info; we don't want to
   13243 @c attempt to document all the formats accepted by
   13244 @c getdate.y).
   13245 @c
   13246 @c One more note: In output, CVS should consistently
   13247 @c use one date format, and that format should be one that
   13248 @c it accepts in input as well.  The former isn't
   13249 @c really true (see survey below), and I'm not
   13250 @c sure that either of those formats is accepted in
   13251 @c input.
   13252 @c
   13253 @c cvs log
   13254 @c   current 1996/01/02 13:45:31
   13255 @c   Internet 02 Jan 1996 13:45:31 UT
   13256 @c   ISO 1996-01-02 13:45:31
   13257 @c cvs ann
   13258 @c   current 02-Jan-96
   13259 @c   Internet-like 02 Jan 96
   13260 @c   ISO 96-01-02
   13261 @c cvs status
   13262 @c   current Tue Jun 11 02:54:53 1996
   13263 @c   Internet [Tue,] 11 Jun 1996 02:54:53
   13264 @c   ISO 1996-06-11 02:54:53
   13265 @c   note: date possibly should be omitted entirely for
   13266 @c   other reasons.
   13267 @c cvs editors
   13268 @c   current Tue Jun 11 02:54:53 1996 GMT
   13269 @c cvs history
   13270 @c   current 06/11 02:54 +0000
   13271 @c any others?
   13272 @c There is a good chance the proper solution has to
   13273 @c involve at least some level of letting the user
   13274 @c decide which format (with the default being the
   13275 @c formats CVS has always used; changing these might be
   13276 @c _very_ disruptive since scripts may very well be
   13277 @c parsing them).
   13278 @c
   13279 @c Another random bit of prior art concerning dates is
   13280 @c the strptime function which takes templates such as
   13281 @c "%m/%d/%y", and apparent a variant of getdate()
   13282 @c which also honors them.  See
   13283 @c X/Open CAE Specification, System Interfaces and
   13284 @c Headers Issue 4, Version 2 (September 1994), in the
   13285 @c entry for getdate() on page 231
   13286 
   13287 @cindex Timezone, in input
   13288 @cindex Zone, time, in input
   13289 A wide variety of date formats are supported by
   13290 @sc{cvs}.  The most standard ones are ISO8601 (from the
   13291 International Standards Organization) and the Internet
   13292 e-mail standard (specified in RFC822 as amended by
   13293 RFC1123).
   13294 
   13295 @c Probably should be doing more to spell out just what
   13296 @c the rules are, rather than just giving examples.
   13297 @c But I want to keep this simple too.
   13298 @c So I don't know....
   13299 @c A few specific issues: (1) Maybe should reassure
   13300 @c people that years after 2000
   13301 @c work (they are in the testsuite, so they do indeed
   13302 @c work).  (2) What do two digit years
   13303 @c mean?  Where do we accept them?  (3) Local times can
   13304 @c be ambiguous or nonexistent if they fall during the
   13305 @c hour when daylight savings time goes into or out of
   13306 @c effect.  Pretty obscure, so I'm not at all sure we
   13307 @c should be documenting the behavior in that case.
   13308 ISO8601 dates have many variants but a few examples
   13309 are:
   13310 
   13311 @example
   13312 1972-09-24
   13313 1972-09-24 20:05
   13314 @end example
   13315 @c I doubt we really accept all ISO8601 format dates
   13316 @c (for example, decimal hours like 1972-09-24 20,2)
   13317 @c I'm not sure we should, many of them are pretty
   13318 @c bizarre and it has lots of gratuitous multiple ways
   13319 @c to specify the same thing.
   13320 
   13321 There are a lot more ISO8601 date formats, and @sc{cvs}
   13322 accepts many of them, but you probably don't want to
   13323 hear the @emph{whole} long story :-).
   13324 
   13325 @c Citing a URL here is kind of problematic given how
   13326 @c much they change and people who have old versions of
   13327 @c this manual, but in case we want to reinstate an
   13328 @c ISO8601 URL, a few are:
   13329 @c http://www.saqqara.demon.co.uk/datefmt.htm
   13330 @c http://www.cl.cam.ac.uk/~mgk25/iso-time.html
   13331 @c Citing some other ISO8601 source is probably even
   13332 @c worse :-).
   13333 
   13334 In addition to the dates allowed in Internet e-mail
   13335 itself, @sc{cvs} also allows some of the fields to be
   13336 omitted.  For example:
   13337 @c FIXME: Need to figure out better, and document,
   13338 @c what we want to allow the user to omit.
   13339 @c NOTE: "omit" does not imply "reorder".
   13340 @c FIXME: Need to cite a web page describing how to get
   13341 @c RFC's.
   13342 
   13343 @example
   13344 24 Sep 1972 20:05
   13345 24 Sep
   13346 @end example
   13347 
   13348 The date is interpreted as being in the
   13349 local timezone, unless a specific timezone is
   13350 specified.
   13351 
   13352 These two date formats are preferred.  However,
   13353 @sc{cvs} currently accepts a wide variety of other date
   13354 formats.  They are intentionally not documented here in
   13355 any detail, and future versions of @sc{cvs} might not
   13356 accept all of them.
   13357 @c We should document and testsuite "now" and
   13358 @c "yesterday".  "now" is mentioned in the FAQ and
   13359 @c "yesterday" is mentioned in this document (and the
   13360 @c message from "cvs import" suggesting a merge
   13361 @c command).  What else?  Probably some/all of the "3
   13362 @c weeks ago" family.
   13363 @c
   13364 @c Maybe at
   13365 @c some point have CVS start give warnings on "unofficial"
   13366 @c formats (many of which might be typos or user
   13367 @c misunderstandings, and/or formats people never/rarely
   13368 @c use to specify dates)?
   13369 
   13370 One such format is
   13371 @code{@var{month}/@var{day}/@var{year}}.  This may
   13372 confuse people who are accustomed to having the month
   13373 and day in the other order; @samp{1/4/96} is January 4,
   13374 not April 1.
   13375 
   13376 Remember to quote the argument to the @samp{-D}
   13377 flag so that your shell doesn't interpret spaces as
   13378 argument separators.  A command using the @samp{-D}
   13379 flag can look like this:
   13380 
   13381 @example
   13382 $ cvs diff -D "1 hour ago" cvs.texinfo
   13383 @end example
   13384 
   13385 @cindex Forcing a tag match
   13386 @item -f
   13387 When you specify a particular date or tag to @sc{cvs} commands, they
   13388 normally ignore files that do not contain the tag (or did not
   13389 exist prior to the date) that you specified.  Use the @samp{-f} option
   13390 if you want files retrieved even when there is no match for the
   13391 tag or date.  (The most recent revision of the file
   13392 will be used).
   13393 
   13394 Note that even with @samp{-f}, a tag that you specify
   13395 must exist (that is, in some file, not necessary in
   13396 every file).  This is so that @sc{cvs} will continue to
   13397 give an error if you mistype a tag name.
   13398 
   13399 @need 800
   13400 @samp{-f} is available with these commands:
   13401 @code{annotate}, @code{checkout}, @code{export},
   13402 @code{rdiff}, @code{rtag}, and @code{update}.
   13403 
   13404 @c <en>@strong{WARNING:  The @code{commit} and @code{remove}
   13405 @c <en>commands also have a
   13406 @c <en>@samp{-f} option, but it has a different behavior for
   13407 @c <en>those commands.  See @ref{commit options}, and
   13408 @c <en>@ref{Removing files}.}
   13409 @strong{WARNING:  The @code{commit} and @code{remove}
   13410 commands also have a
   13411 @samp{-f} option, but it has a different behavior for
   13412 those commands.  See @ref{commit options}, and
   13413 @ref{Removendo arquivos}.}
   13414 
   13415 @c <en>@item -k @var{kflag}
   13416 @item -k @var{kflag}
   13417 @c <en>Override the default processing of RCS keywords other than
   13418 @c <en>@samp{-kb}.  @xref{Keyword substitution}, for the meaning of
   13419 @c <en>@var{kflag}.  Used with the @code{checkout} and @code{update}
   13420 @c <en>commands, your @var{kflag} specification is
   13421 @c <en>@dfn{sticky}; that is, when you use this option
   13422 @c <en>with a @code{checkout} or @code{update} command,
   13423 @c <en>@sc{cvs} associates your selected @var{kflag} with any files
   13424 @c <en>it operates on, and continues to use that @var{kflag} with future
   13425 @c <en>commands on the same files until you specify otherwise.
   13426 Override the default processing of RCS keywords other than
   13427 @samp{-kb}.  @xref{Substituio de palavra-chave}, for the meaning of
   13428 @var{kflag}.  Used with the @code{checkout} and @code{update}
   13429 commands, your @var{kflag} specification is
   13430 @dfn{sticky}; that is, when you use this option
   13431 with a @code{checkout} or @code{update} command,
   13432 @sc{cvs} associates your selected @var{kflag} with any files
   13433 it operates on, and continues to use that @var{kflag} with future
   13434 commands on the same files until you specify otherwise.
   13435 
   13436 @c <en>The @samp{-k} option is available with the @code{add},
   13437 @c <en>@code{checkout}, @code{diff}, @code{export}, @code{import} and
   13438 @c <en>@code{update} commands.
   13439 The @samp{-k} option is available with the @code{add},
   13440 @code{checkout}, @code{diff}, @code{export}, @code{import} and
   13441 @code{update} commands.
   13442 
   13443 @c <en>@strong{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
   13444 @c <en>overrode the @samp{-kb} indication for a binary file.  This could
   13445 @c <en>sometimes corrupt binary files.  @xref{Merging and keywords}, for
   13446 @c <en>more.}
   13447 @strong{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
   13448 overrode the @samp{-kb} indication for a binary file.  This could
   13449 sometimes corrupt binary files.  @xref{Mesclagem e palavras-chave}, for
   13450 more.}
   13451 
   13452 @c <en>@item -l
   13453 @item -l
   13454 @c <en>Local; run only in current working directory, rather than
   13455 @c <en>recursing through subdirectories.
   13456 Local; run only in current working directory, rather than
   13457 recursing through subdirectories.
   13458 
   13459 @c <en>Available with the following commands: @code{annotate}, @code{checkout},
   13460 @c <en>@code{commit}, @code{diff}, @code{edit}, @code{editors}, @code{export},
   13461 @c <en>@code{log}, @code{rdiff}, @code{remove}, @code{rtag},
   13462 @c <en>@code{status}, @code{tag}, @code{unedit}, @code{update}, @code{watch},
   13463 @c <en>and @code{watchers}.
   13464 Available with the following commands: @code{annotate}, @code{checkout},
   13465 @code{commit}, @code{diff}, @code{edit}, @code{editors}, @code{export},
   13466 @code{log}, @code{rdiff}, @code{remove}, @code{rtag},
   13467 @code{status}, @code{tag}, @code{unedit}, @code{update}, @code{watch},
   13468 and @code{watchers}.
   13469 
   13470 @c <en>@cindex Editor, avoiding invocation of
   13471 @cindex Editor, avoiding invocation of
   13472 @c <en>@cindex Avoiding editor invocation
   13473 @cindex Avoiding editor invocation
   13474 @c <en>@item -m @var{message}
   13475 @item -m @var{message}
   13476 @c <en>Use @var{message} as log information, instead of
   13477 @c <en>invoking an editor.
   13478 Use @var{message} as log information, instead of
   13479 invoking an editor.
   13480 
   13481 @c <en>Available with the following commands: @code{add},
   13482 @c <en>@code{commit} and @code{import}.
   13483 Available with the following commands: @code{add},
   13484 @code{commit} and @code{import}.
   13485 
   13486 @c <en>@item -n
   13487 @item -n
   13488 @c <en>Do not run any tag program.  (A program can be
   13489 @c <en>specified to run in the modules
   13490 @c <en>database (@pxref{modules}); this option bypasses it).
   13491 Do not run any tag program.  (A program can be
   13492 specified to run in the modules
   13493 database (@pxref{modules}); this option bypasses it).
   13494 
   13495 @c <en>@strong{Note: this is not the same as the @samp{cvs -n}
   13496 @c <en>program option, which you can specify to the left of a cvs command!}
   13497 @strong{Note: this is not the same as the @samp{cvs -n}
   13498 program option, which you can specify to the left of a cvs command!}
   13499 
   13500 Available with the @code{checkout}, @code{commit}, @code{export},
   13501 and @code{rtag} commands.
   13502 
   13503 @item -P
   13504 @c <en>Prune empty directories.  See @ref{Removing directories}.
   13505 Prune empty directories.  See @ref{Removendo diretrios}.
   13506 
   13507 @item -p
   13508 Pipe the files retrieved from the repository to standard output,
   13509 rather than writing them in the current directory.  Available
   13510 with the @code{checkout} and @code{update} commands.
   13511 
   13512 @item -R
   13513 Process directories recursively.  This is on by default.
   13514 
   13515 Available with the following commands: @code{annotate}, @code{checkout},
   13516 @code{commit}, @code{diff}, @code{edit}, @code{editors}, @code{export},
   13517 @code{rdiff}, @code{remove}, @code{rtag},
   13518 @code{status}, @code{tag}, @code{unedit}, @code{update}, @code{watch},
   13519 and @code{watchers}.
   13520 
   13521 @item -r @var{tag}
   13522 @cindex HEAD, special tag
   13523 @cindex BASE, special tag
   13524 Use the revision specified by the @var{tag} argument instead of the
   13525 default @dfn{head} revision.  As well as arbitrary tags defined
   13526 with the @code{tag} or @code{rtag} command, two special tags are
   13527 always available: @samp{HEAD} refers to the most recent version
   13528 available in the repository, and @samp{BASE} refers to the
   13529 revision you last checked out into the current working directory.
   13530 
   13531 @c FIXME: What does HEAD really mean?  I believe that
   13532 @c the current answer is the head of the default branch
   13533 @c for all cvs commands except diff.  For diff, it
   13534 @c seems to be (a) the head of the trunk (or the default
   13535 @c branch?) if there is no sticky tag, (b) the head of the
   13536 @c branch for the sticky tag, if there is a sticky tag.
   13537 @c (b) is ugly as it differs
   13538 @c from what HEAD means for other commands, but people
   13539 @c and/or scripts are quite possibly used to it.
   13540 @c See "head" tests in sanity.sh.
   13541 @c Probably the best fix is to introduce two new
   13542 @c special tags, ".thead" for the head of the trunk,
   13543 @c and ".bhead" for the head of the current branch.
   13544 @c Then deprecate HEAD.  This has the advantage of
   13545 @c not surprising people with a change to HEAD, and a
   13546 @c side benefit of also phasing out the poorly-named
   13547 @c HEAD (see discussion of reserved tag names in node
   13548 @c "Tags").  Of course, .thead and .bhead should be
   13549 @c carefully implemented (with the implementation the
   13550 @c same for "diff" as for everyone else), test cases
   13551 @c written (similar to the ones in "head"), new tests
   13552 @c cases written for things like default branches, &c.
   13553 
   13554 @c <en>The tag specification is sticky when you use this
   13555 @c <en>@c option
   13556 @c <en>with @code{checkout} or @code{update} to make your own
   13557 @c <en>copy of a file: @sc{cvs} remembers the tag and continues to use it on
   13558 @c <en>future update commands, until you specify otherwise (for more information
   13559 @c <en>on sticky tags/dates, @pxref{Sticky tags}).
   13560 The tag specification is sticky when you use this
   13561 @c option
   13562 with @code{checkout} or @code{update} to make your own
   13563 copy of a file: @sc{cvs} remembers the tag and continues to use it on
   13564 future update commands, until you specify otherwise (for more information
   13565 on sticky tags/dates, @pxref{Etiquetas adesivas}).
   13566 
   13567 @c <en>The tag can be either a symbolic or numeric tag, as
   13568 @c <en>described in @ref{Tags}, or the name of a branch, as
   13569 @c <en>described in @ref{Branching and merging}.
   13570 The tag can be either a symbolic or numeric tag, as
   13571 described in @ref{Etiquetas}, or the name of a branch, as
   13572 described in @ref{Ramificando e mesclando}.
   13573 
   13574 Specifying the @samp{-q} global option along with the
   13575 @samp{-r} command option is often useful, to suppress
   13576 the warning messages when the @sc{rcs} file
   13577 does not contain the specified tag.
   13578 
   13579 @strong{Note: this is not the same as the overall @samp{cvs -r} option,
   13580 which you can specify to the left of a @sc{cvs} command!}
   13581 
   13582 @samp{-r} is available with the @code{annotate}, @code{checkout},
   13583 @code{commit}, @code{diff}, @code{history}, @code{export}, @code{rdiff},
   13584 @code{rtag}, and @code{update} commands.
   13585 
   13586 @item -W
   13587 Specify file names that should be filtered.  You can
   13588 use this option repeatedly.  The spec can be a file
   13589 name pattern of the same type that you can specify in
   13590 the @file{.cvswrappers} file.
   13591 Available with the following commands: @code{import},
   13592 and @code{update}.
   13593 
   13594 @end table
   13595 
   13596 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   13597 @node admin
   13598 @appendixsec admin---Administration
   13599 @cindex Admin (subcommand)
   13600 
   13601 @itemize @bullet
   13602 @item
   13603 Requires: repository, working directory.
   13604 @item
   13605 Changes: repository.
   13606 @item
   13607 Synonym: rcs
   13608 @end itemize
   13609 
   13610 This is the @sc{cvs} interface to assorted
   13611 administrative facilities.  Some of them have
   13612 questionable usefulness for @sc{cvs} but exist for
   13613 historical purposes.  Some of the questionable options
   13614 are likely to disappear in the future.  This command
   13615 @emph{does} work recursively, so extreme care should be
   13616 used.
   13617 
   13618 @cindex cvsadmin
   13619 @cindex UserAdminOptions, in CVSROOT/config
   13620 On unix, if there is a group named @code{cvsadmin},
   13621 only members of that group can run @code{cvs admin}
   13622 commands, except for those specified using the
   13623 @code{UserAdminOptions} configuration option in the
   13624 @file{CVSROOT/config} file.  Options specified using
   13625 @code{UserAdminOptions} can be run by any user.  See
   13626 @ref{config} for more on @code{UserAdminOptions}.
   13627 
   13628 The @code{cvsadmin} group should exist on the server,
   13629 or any system running the non-client/server @sc{cvs}.
   13630 To disallow @code{cvs admin} for all users, create a
   13631 group with no users in it.  On NT, the @code{cvsadmin}
   13632 feature does not exist and all users
   13633 can run @code{cvs admin}.
   13634 
   13635 @menu
   13636 * admin options::               admin options
   13637 @end menu
   13638 
   13639 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   13640 @node admin options
   13641 @appendixsubsec admin options
   13642 
   13643 Some of these options have questionable usefulness for
   13644 @sc{cvs} but exist for historical purposes.  Some even
   13645 make it impossible to use @sc{cvs} until you undo the
   13646 effect!
   13647 
   13648 @table @code
   13649 @item -A@var{oldfile}
   13650 Might not work together with @sc{cvs}.  Append the
   13651 access list of @var{oldfile} to the access list of the
   13652 @sc{rcs} file.
   13653 
   13654 @item -a@var{logins}
   13655 Might not work together with @sc{cvs}.  Append the
   13656 login names appearing in the comma-separated list
   13657 @var{logins} to the access list of the @sc{rcs} file.
   13658 
   13659 @c <en>@item -b[@var{rev}]
   13660 @item -b[@var{rev}]
   13661 @c <en>Set the default branch to @var{rev}.  In @sc{cvs}, you
   13662 @c <en>normally do not manipulate default branches; sticky
   13663 @c <en>tags (@pxref{Sticky tags}) are a better way to decide
   13664 @c <en>which branch you want to work on.  There is one reason
   13665 @c <en>to run @code{cvs admin -b}: to revert to the vendor's
   13666 @c <en>version when using vendor branches (@pxref{Reverting
   13667 @c <en>local changes}).
   13668 @c <en>There can be no space between @samp{-b} and its argument.
   13669 Set the default branch to @var{rev}.  In @sc{cvs}, you
   13670 normally do not manipulate default branches; sticky
   13671 tags (@pxref{Etiquetas adesivas}) are a better way to decide
   13672 which branch you want to work on.  There is one reason
   13673 to run @code{cvs admin -b}: to revert to the vendor's
   13674 version when using vendor branches (@pxref{Reverting
   13675 local changes}).
   13676 There can be no space between @samp{-b} and its argument.
   13677 @c Hmm, we don't document the usage where rev is
   13678 @c omitted.  Maybe that usage can/should be deprecated
   13679 @c (and replaced with -bHEAD or something?) (so we can toss
   13680 @c the optional argument).  Note that -bHEAD does not
   13681 @c work, as of 17 Sep 1997, but probably will once "cvs
   13682 @c admin" is internal to CVS.
   13683 
   13684 @c <en>@cindex Comment leader
   13685 @cindex Comment leader
   13686 @c <en>@item -c@var{string}
   13687 @item -c@var{string}
   13688 @c <en>Sets the comment leader to @var{string}.  The comment
   13689 @c <en>leader is not used by current versions of @sc{cvs} or
   13690 @c <en>@sc{rcs} 5.7.  Therefore, you can almost surely not
   13691 @c <en>worry about it.  @xref{Keyword substitution}.
   13692 Sets the comment leader to @var{string}.  The comment
   13693 leader is not used by current versions of @sc{cvs} or
   13694 @sc{rcs} 5.7.  Therefore, you can almost surely not
   13695 worry about it.  @xref{Substituio de palavra-chave}.
   13696 
   13697 @item -e[@var{logins}]
   13698 Might not work together with @sc{cvs}.  Erase the login
   13699 names appearing in the comma-separated list
   13700 @var{logins} from the access list of the RCS file.  If
   13701 @var{logins} is omitted, erase the entire access list.
   13702 There can be no space between @samp{-e} and its argument.
   13703 
   13704 @item -I
   13705 Run interactively, even if the standard input is not a
   13706 terminal.  This option does not work with the
   13707 client/server @sc{cvs} and is likely to disappear in
   13708 a future release of @sc{cvs}.
   13709 
   13710 @item -i
   13711 @c <en>Useless with @sc{cvs}.  This creates and initializes a
   13712 @c <en>new @sc{rcs} file, without depositing a revision.  With
   13713 @c <en>@sc{cvs}, add files with the @code{cvs add} command
   13714 @c <en>(@pxref{Adding files}).
   13715 Useless with @sc{cvs}.  This creates and initializes a
   13716 new @sc{rcs} file, without depositing a revision.  With
   13717 @sc{cvs}, add files with the @code{cvs add} command
   13718 (@pxref{Adicionando arquivos}).
   13719 
   13720 @c <en>@item -k@var{subst}
   13721 @item -k@var{subst}
   13722 @c <en>Set the default keyword
   13723 @c <en>substitution to @var{subst}.  @xref{Keyword
   13724 @c <en>substitution}.  Giving an explicit @samp{-k} option to
   13725 @c <en>@code{cvs update}, @code{cvs export}, or @code{cvs
   13726 @c <en>checkout} overrides this default.
   13727 Set the default keyword
   13728 substitution to @var{subst}.
   13729 @xref{Substituio de palavra-chave}.  Giving an explicit @samp{-k} option to
   13730 @code{cvs update}, @code{cvs export}, or @code{cvs
   13731 checkout} overrides this default.
   13732 
   13733 @item -l[@var{rev}]
   13734 Lock the revision with number @var{rev}.  If a branch
   13735 is given, lock the latest revision on that branch.  If
   13736 @var{rev} is omitted, lock the latest revision on the
   13737 default branch.  There can be no space between
   13738 @samp{-l} and its argument.
   13739 
   13740 This can be used in conjunction with the
   13741 @file{rcslock.pl} script in the @file{contrib}
   13742 directory of the @sc{cvs} source distribution to
   13743 provide reserved checkouts (where only one user can be
   13744 editing a given file at a time).  See the comments in
   13745 that file for details (and see the @file{README} file
   13746 in that directory for disclaimers about the unsupported
   13747 nature of contrib).  According to comments in that
   13748 file, locking must set to strict (which is the default).
   13749 
   13750 @item -L
   13751 Set locking to strict.  Strict locking means that the
   13752 owner of an RCS file is not exempt from locking for
   13753 checkin.  For use with @sc{cvs}, strict locking must be
   13754 set; see the discussion under the @samp{-l} option above.
   13755 
   13756 @cindex Changing a log message
   13757 @cindex Replacing a log message
   13758 @cindex Correcting a log message
   13759 @cindex Fixing a log message
   13760 @cindex Log message, correcting
   13761 @item -m@var{rev}:@var{msg}
   13762 Replace the log message of revision @var{rev} with
   13763 @var{msg}.
   13764 
   13765 @c The rcs -M option, to suppress sending mail, has never been
   13766 @c documented as a cvs admin option.
   13767 
   13768 @c <en>@item -N@var{name}[:[@var{rev}]]
   13769 @item -N@var{name}[:[@var{rev}]]
   13770 @c <en>Act like @samp{-n}, except override any previous
   13771 @c <en>assignment of @var{name}.  For use with magic branches,
   13772 @c <en>see @ref{Magic branch numbers}.
   13773 Act like @samp{-n}, except override any previous
   13774 assignment of @var{name}.  For use with magic branches,
   13775 see @ref{Nmeros de ramos mgicos}.
   13776 
   13777 @item -n@var{name}[:[@var{rev}]]
   13778 Associate the symbolic name @var{name} with the branch
   13779 or revision @var{rev}.  It is normally better to use
   13780 @samp{cvs tag} or @samp{cvs rtag} instead.  Delete the
   13781 symbolic name if both @samp{:} and @var{rev} are
   13782 omitted; otherwise, print an error message if
   13783 @var{name} is already associated with another number.
   13784 If @var{rev} is symbolic, it is expanded before
   13785 association.  A @var{rev} consisting of a branch number
   13786 followed by a @samp{.} stands for the current latest
   13787 revision in the branch.  A @samp{:} with an empty
   13788 @var{rev} stands for the current latest revision on the
   13789 default branch, normally the trunk.  For example,
   13790 @samp{cvs admin -n@var{name}:} associates @var{name} with the
   13791 current latest revision of all the RCS files;
   13792 this contrasts with @samp{cvs admin -n@var{name}:$} which
   13793 associates @var{name} with the revision numbers
   13794 extracted from keyword strings in the corresponding
   13795 working files.
   13796 
   13797 @cindex Deleting revisions
   13798 @cindex Outdating revisions
   13799 @cindex Saving space
   13800 @item -o@var{range}
   13801 Deletes (@dfn{outdates}) the revisions given by
   13802 @var{range}.
   13803 
   13804 Note that this command can be quite dangerous unless
   13805 you know @emph{exactly} what you are doing (for example
   13806 see the warnings below about how the
   13807 @var{rev1}:@var{rev2} syntax is confusing).
   13808 
   13809 If you are short on disc this option might help you.
   13810 But think twice before using it---there is no way short
   13811 of restoring the latest backup to undo this command!
   13812 If you delete different revisions than you planned,
   13813 either due to carelessness or (heaven forbid) a @sc{cvs}
   13814 bug, there is no opportunity to correct the error
   13815 before the revisions are deleted.  It probably would be
   13816 a good idea to experiment on a copy of the repository
   13817 first.
   13818 
   13819 Specify @var{range} in one of the following ways:
   13820 
   13821 @table @code
   13822 @item @var{rev1}::@var{rev2}
   13823 Collapse all revisions between rev1 and rev2, so that
   13824 @sc{cvs} only stores the differences associated with going
   13825 from rev1 to rev2, not intermediate steps.  For
   13826 example, after @samp{-o 1.3::1.5} one can retrieve
   13827 revision 1.3, revision 1.5, or the differences to get
   13828 from 1.3 to 1.5, but not the revision 1.4, or the
   13829 differences between 1.3 and 1.4.  Other examples:
   13830 @samp{-o 1.3::1.4} and @samp{-o 1.3::1.3} have no
   13831 effect, because there are no intermediate revisions to
   13832 remove.
   13833 
   13834 @item ::@var{rev}
   13835 Collapse revisions between the beginning of the branch
   13836 containing @var{rev} and @var{rev} itself.  The
   13837 branchpoint and @var{rev} are left intact.  For
   13838 example, @samp{-o ::1.3.2.6} deletes revision 1.3.2.1,
   13839 revision 1.3.2.5, and everything in between, but leaves
   13840 1.3 and 1.3.2.6 intact.
   13841 
   13842 @item @var{rev}::
   13843 Collapse revisions between @var{rev} and the end of the
   13844 branch containing @var{rev}.  Revision @var{rev} is
   13845 left intact but the head revision is deleted.
   13846 
   13847 @item @var{rev}
   13848 Delete the revision @var{rev}.  For example, @samp{-o
   13849 1.3} is equivalent to @samp{-o 1.2::1.4}.
   13850 
   13851 @c <en>@item @var{rev1}:@var{rev2}
   13852 @item @var{rev1}:@var{rev2}
   13853 @c <en>Delete the revisions from @var{rev1} to @var{rev2},
   13854 @c <en>inclusive, on the same branch.  One will not be able to
   13855 @c <en>retrieve @var{rev1} or @var{rev2} or any of the
   13856 @c <en>revisions in between.  For example, the command
   13857 @c <en>@samp{cvs admin -oR_1_01:R_1_02 .} is rarely useful.
   13858 @c <en>It means to delete revisions up to, and including, the
   13859 @c <en>tag R_1_02.  But beware!  If there are files that have not
   13860 @c <en>changed between R_1_02 and R_1_03 the file will have
   13861 @c <en>@emph{the same} numerical revision number assigned to
   13862 @c <en>the tags R_1_02 and R_1_03.  So not only will it be
   13863 @c <en>impossible to retrieve R_1_02; R_1_03 will also have to
   13864 @c <en>be restored from the tapes!  In most cases you want to
   13865 @c <en>specify @var{rev1}::@var{rev2} instead.
   13866 Delete the revisions from @var{rev1} to @var{rev2},
   13867 inclusive, on the same branch.  One will not be able to
   13868 retrieve @var{rev1} or @var{rev2} or any of the
   13869 revisions in between.  For example, the command
   13870 @samp{cvs admin -oR_1_01:R_1_02 .} is rarely useful.
   13871 It means to delete revisions up to, and including, the
   13872 tag R_1_02.  But beware!  If there are files that have not
   13873 changed between R_1_02 and R_1_03 the file will have
   13874 @emph{the same} numerical revision number assigned to
   13875 the tags R_1_02 and R_1_03.  So not only will it be
   13876 impossible to retrieve R_1_02; R_1_03 will also have to
   13877 be restored from the tapes!  In most cases you want to
   13878 specify @var{rev1}::@var{rev2} instead.
   13879 
   13880 @c <en>@item :@var{rev}
   13881 @item :@var{rev}
   13882 @c <en>Delete revisions from the beginning of the
   13883 @c <en>branch containing @var{rev} up to and including
   13884 @c <en>@var{rev}.
   13885 Delete revisions from the beginning of the
   13886 branch containing @var{rev} up to and including
   13887 @var{rev}.
   13888 
   13889 @c <en>@item @var{rev}:
   13890 @item @var{rev}:
   13891 @c <en>Delete revisions from revision @var{rev}, including
   13892 @c <en>@var{rev} itself, to the end of the branch containing
   13893 @c <en>@var{rev}.
   13894 Delete revisions from revision @var{rev}, including
   13895 @var{rev} itself, to the end of the branch containing
   13896 @var{rev}.
   13897 @end table
   13898 
   13899 @c <en>None of the revisions to be deleted may have
   13900 @c <en>branches or locks.
   13901 None of the revisions to be deleted may have
   13902 branches or locks.
   13903 
   13904 @c <en>If any of the revisions to be deleted have symbolic
   13905 @c <en>names, and one specifies one of the @samp{::} syntaxes,
   13906 @c <en>then @sc{cvs} will give an error and not delete any
   13907 @c <en>revisions.  If you really want to delete both the
   13908 @c <en>symbolic names and the revisions, first delete the
   13909 @c <en>symbolic names with @code{cvs tag -d}, then run
   13910 @c <en>@code{cvs admin -o}.  If one specifies the
   13911 @c <en>non-@samp{::} syntaxes, then @sc{cvs} will delete the
   13912 @c <en>revisions but leave the symbolic names pointing to
   13913 @c <en>nonexistent revisions.  This behavior is preserved for
   13914 @c <en>compatibility with previous versions of @sc{cvs}, but
   13915 @c <en>because it isn't very useful, in the future it may
   13916 @c <en>change to be like the @samp{::} case.
   13917 If any of the revisions to be deleted have symbolic
   13918 names, and one specifies one of the @samp{::} syntaxes,
   13919 then @sc{cvs} will give an error and not delete any
   13920 revisions.  If you really want to delete both the
   13921 symbolic names and the revisions, first delete the
   13922 symbolic names with @code{cvs tag -d}, then run
   13923 @code{cvs admin -o}.  If one specifies the
   13924 non-@samp{::} syntaxes, then @sc{cvs} will delete the
   13925 revisions but leave the symbolic names pointing to
   13926 nonexistent revisions.  This behavior is preserved for
   13927 compatibility with previous versions of @sc{cvs}, but
   13928 because it isn't very useful, in the future it may
   13929 change to be like the @samp{::} case.
   13930 
   13931 @c <en>Due to the way @sc{cvs} handles branches @var{rev}
   13932 @c <en>cannot be specified symbolically if it is a branch.
   13933 @c <en>@xref{Magic branch numbers}, for an explanation.
   13934 Due to the way @sc{cvs} handles branches @var{rev}
   13935 cannot be specified symbolically if it is a branch.
   13936 @xref{Nmeros de ramos mgicos}, for an explanation.
   13937 @c FIXME: is this still true?  I suspect not.
   13938 
   13939 @c <en>Make sure that no-one has checked out a copy of the
   13940 @c <en>revision you outdate.  Strange things will happen if he
   13941 @c <en>starts to edit it and tries to check it back in.  For
   13942 @c <en>this reason, this option is not a good way to take back
   13943 @c <en>a bogus commit; commit a new revision undoing the bogus
   13944 @c <en>change instead (@pxref{Merging two revisions}).
   13945 Make sure that no-one has checked out a copy of the
   13946 revision you outdate.  Strange things will happen if he
   13947 starts to edit it and tries to check it back in.  For
   13948 this reason, this option is not a good way to take back
   13949 a bogus commit; commit a new revision undoing the bogus
   13950 change instead (@pxref{Mesclando duas revises}).
   13951 
   13952 @item -q
   13953 @c <en>Run quietly; do not print diagnostics.
   13954 Run quietly; do not print diagnostics.
   13955 
   13956 @c <en>@item -s@var{state}[:@var{rev}]
   13957 @item -s@var{state}[:@var{rev}]
   13958 @c <en>Useful with @sc{cvs}.  Set the state attribute of the
   13959 @c <en>revision @var{rev} to @var{state}.  If @var{rev} is a
   13960 @c <en>branch number, assume the latest revision on that
   13961 @c <en>branch.  If @var{rev} is omitted, assume the latest
   13962 @c <en>revision on the default branch.  Any identifier is
   13963 @c <en>acceptable for @var{state}.  A useful set of states is
   13964 @c <en>@samp{Exp} (for experimental), @samp{Stab} (for
   13965 @c <en>stable), and @samp{Rel} (for released).  By default,
   13966 @c <en>the state of a new revision is set to @samp{Exp} when
   13967 @c <en>it is created.  The state is visible in the output from
   13968 @c <en>@var{cvs log} (@pxref{log}), and in the
   13969 @c <en>@samp{$@splitrcskeyword{}Log$} and @samp{$@splitrcskeyword{}State$} keywords
   13970 @c <en>(@pxref{Keyword substitution}).  Note that @sc{cvs}
   13971 @c <en>uses the @code{dead} state for its own purposes; to
   13972 @c <en>take a file to or from the @code{dead} state use
   13973 @c <en>commands like @code{cvs remove} and @code{cvs add}, not
   13974 @c <en>@code{cvs admin -s}.
   13975 Useful with @sc{cvs}.  Set the state attribute of the
   13976 revision @var{rev} to @var{state}.  If @var{rev} is a
   13977 branch number, assume the latest revision on that
   13978 branch.  If @var{rev} is omitted, assume the latest
   13979 revision on the default branch.  Any identifier is
   13980 acceptable for @var{state}.  A useful set of states is
   13981 @samp{Exp} (for experimental), @samp{Stab} (for
   13982 stable), and @samp{Rel} (for released).  By default,
   13983 the state of a new revision is set to @samp{Exp} when
   13984 it is created.  The state is visible in the output from
   13985 @var{cvs log} (@pxref{log}), and in the
   13986 @samp{$@splitrcskeyword{}Log$} and @samp{$@splitrcskeyword{}State$} keywords
   13987 (@pxref{Substituio de palavra-chave}).  Note that @sc{cvs}
   13988 uses the @code{dead} state for its own purposes; to
   13989 take a file to or from the @code{dead} state use
   13990 commands like @code{cvs remove} and @code{cvs add}, not
   13991 @code{cvs admin -s}.
   13992 
   13993 @item -t[@var{file}]
   13994 Useful with @sc{cvs}.  Write descriptive text from the
   13995 contents of the named @var{file} into the RCS file,
   13996 deleting the existing text.  The @var{file} pathname
   13997 may not begin with @samp{-}.  The descriptive text can be seen in the
   13998 output from @samp{cvs log} (@pxref{log}).
   13999 There can be no space between @samp{-t} and its argument.
   14000 
   14001 If @var{file} is omitted,
   14002 obtain the text from standard input, terminated by
   14003 end-of-file or by a line containing @samp{.} by itself.
   14004 Prompt for the text if interaction is possible; see
   14005 @samp{-I}.
   14006 
   14007 @item -t-@var{string}
   14008 Similar to @samp{-t@var{file}}. Write descriptive text
   14009 from the @var{string} into the @sc{rcs} file, deleting
   14010 the existing text.
   14011 There can be no space between @samp{-t} and its argument.
   14012 
   14013 @c The rcs -T option, do not update last-mod time for
   14014 @c minor changes, has never been documented as a
   14015 @c cvs admin option.
   14016 
   14017 @item -U
   14018 Set locking to non-strict.  Non-strict locking means
   14019 that the owner of a file need not lock a revision for
   14020 checkin.  For use with @sc{cvs}, strict locking must be
   14021 set; see the discussion under the @samp{-l} option
   14022 above.
   14023 
   14024 @c <en>@item -u[@var{rev}]
   14025 @item -u[@var{rev}]
   14026 @c <en>See the option @samp{-l} above, for a discussion of
   14027 @c <en>using this option with @sc{cvs}.  Unlock the revision
   14028 @c <en>with number @var{rev}.  If a branch is given, unlock
   14029 @c <en>the latest revision on that branch.  If @var{rev} is
   14030 @c <en>omitted, remove the latest lock held by the caller.
   14031 @c <en>Normally, only the locker of a revision may unlock it;
   14032 @c <en>somebody else unlocking a revision breaks the lock.
   14033 @c <en>This causes the original locker to be sent a @code{commit}
   14034 @c <en>notification (@pxref{Getting Notified}).
   14035 @c <en>There can be no space between @samp{-u} and its argument.
   14036 See the option @samp{-l} above, for a discussion of
   14037 using this option with @sc{cvs}.  Unlock the revision
   14038 with number @var{rev}.  If a branch is given, unlock
   14039 the latest revision on that branch.  If @var{rev} is
   14040 omitted, remove the latest lock held by the caller.
   14041 Normally, only the locker of a revision may unlock it;
   14042 somebody else unlocking a revision breaks the lock.
   14043 This causes the original locker to be sent a @code{commit}
   14044 notification (@pxref{Recebendo Notificaes}).
   14045 There can be no space between @samp{-u} and its argument.
   14046 
   14047 @item -V@var{n}
   14048 In previous versions of @sc{cvs}, this option meant to
   14049 write an @sc{rcs} file which would be acceptable to
   14050 @sc{rcs} version @var{n}, but it is now obsolete and
   14051 specifying it will produce an error.
   14052 @c Note that -V without an argument has never been
   14053 @c documented as a cvs admin option.
   14054 
   14055 @item -x@var{suffixes}
   14056 In previous versions of @sc{cvs}, this was documented
   14057 as a way of specifying the names of the @sc{rcs}
   14058 files.  However, @sc{cvs} has always required that the
   14059 @sc{rcs} files used by @sc{cvs} end in @samp{,v}, so
   14060 this option has never done anything useful.
   14061 
   14062 @c The rcs -z option, to specify the timezone, has
   14063 @c never been documented as a cvs admin option.
   14064 @end table
   14065 
   14066 
   14067 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   14068 @node checkout
   14069 @appendixsec checkout---Check out sources for editing
   14070 @cindex checkout (subcommand)
   14071 @cindex co (subcommand)
   14072 
   14073 @itemize @bullet
   14074 @item
   14075 Synopsis: checkout [options] modules@dots{}
   14076 @item
   14077 Requires: repository.
   14078 @item
   14079 Changes: working directory.
   14080 @item
   14081 Synonyms: co, get
   14082 @end itemize
   14083 
   14084 Create or update a working directory containing copies of the
   14085 source files specified by @var{modules}.  You must execute
   14086 @code{checkout} before using most of the other @sc{cvs}
   14087 commands, since most of them operate on your working
   14088 directory.
   14089 
   14090 The @var{modules} are either
   14091 symbolic names for some
   14092 collection of source directories and files, or paths to
   14093 directories or files in the repository.  The symbolic
   14094 names are defined in the @samp{modules} file.
   14095 @xref{modules}.
   14096 @c Needs an example, particularly of the non-"modules"
   14097 @c case but probably of both.
   14098 
   14099 @c FIXME: this seems like a very odd place to introduce
   14100 @c people to how CVS works.  The bit about unreserved
   14101 @c checkouts is also misleading as it depends on how
   14102 @c things are set up.
   14103 Depending on the modules you specify, @code{checkout} may
   14104 recursively create directories and populate them with
   14105 the appropriate source files.  You can then edit these
   14106 source files at any time (regardless of whether other
   14107 software developers are editing their own copies of the
   14108 sources); update them to include new changes applied by
   14109 others to the source repository; or commit your work as
   14110 a permanent change to the source repository.
   14111 
   14112 Note that @code{checkout} is used to create
   14113 directories.  The top-level directory created is always
   14114 added to the directory where @code{checkout} is
   14115 invoked, and usually has the same name as the specified
   14116 module.  In the case of a module alias, the created
   14117 sub-directory may have a different name, but you can be
   14118 sure that it will be a sub-directory, and that
   14119 @code{checkout} will show the relative path leading to
   14120 each file as it is extracted into your private work
   14121 area (unless you specify the @samp{-Q} global option).
   14122 
   14123 @c <en>The files created by @code{checkout} are created
   14124 @c <en>read-write, unless the @samp{-r} option to @sc{cvs}
   14125 @c <en>(@pxref{Global options}) is specified, the
   14126 @c <en>@code{CVSREAD} environment variable is specified
   14127 @c <en>(@pxref{Environment variables}), or a watch is in
   14128 @c <en>effect for that file (@pxref{Watches}).
   14129 The files created by @code{checkout} are created
   14130 read-write, unless the @samp{-r} option to @sc{cvs}
   14131 (@pxref{Opes globais}) is specified, the
   14132 @code{CVSREAD} environment variable is specified
   14133 (@pxref{Variveis de ambiente}), or a watch is in
   14134 effect for that file (@pxref{???Watches???}).
   14135 
   14136 Note that running @code{checkout} on a directory that was already
   14137 built by a prior @code{checkout} is also permitted.
   14138 This is similar to specifying the @samp{-d} option
   14139 to the @code{update} command in the sense that new
   14140 directories that have been created in the repository
   14141 will appear in your work area.
   14142 However, @code{checkout} takes a module name whereas
   14143 @code{update} takes a directory name.  Also
   14144 to use @code{checkout} this way it must be run from the
   14145 top level directory (where you originally ran
   14146 @code{checkout} from), so before you run
   14147 @code{checkout} to update an existing directory, don't
   14148 forget to change your directory to the top level
   14149 directory.
   14150 
   14151 For the output produced by the @code{checkout} command
   14152 see @ref{update output}.
   14153 
   14154 @menu
   14155 * checkout options::            checkout options
   14156 * checkout examples::           checkout examples
   14157 @end menu
   14158 
   14159 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   14160 @node checkout options
   14161 @appendixsubsec checkout options
   14162 
   14163 @c <en>These standard options are supported by @code{checkout}
   14164 @c <en>(@pxref{Common options}, for a complete description of
   14165 @c <en>them):
   14166 These standard options are supported by @code{checkout}
   14167 (@pxref{Opes comuns}, for a complete description of
   14168 them):
   14169 
   14170 @table @code
   14171 @c <en>@item -D @var{date}
   14172 @item -D @var{date}
   14173 @c <en>Use the most recent revision no later than @var{date}.
   14174 @c <en>This option is sticky, and implies @samp{-P}.  See
   14175 @c <en>@ref{Sticky tags}, for more information on sticky tags/dates.
   14176 @c <en>Use the most recent revision no later than @var{date}.
   14177 @c <en>This option is sticky, and implies @samp{-P}.  See
   14178 @c <en>@ref{Sticky tags}, for more information on sticky tags/dates.
   14179 Use the most recent revision no later than @var{date}.
   14180 This option is sticky, and implies @samp{-P}.  See
   14181 @ref{Etiquetas adesivas}, for more information on sticky tags/dates.
   14182 Use the most recent revision no later than @var{date}.
   14183 This option is sticky, and implies @samp{-P}.  See
   14184 @ref{Etiquetas adesivas}, for more information on sticky tags/dates.
   14185 
   14186 @item -f
   14187 Only useful with the @samp{-D @var{date}} or @samp{-r
   14188 @var{tag}} flags.  If no matching revision is found,
   14189 retrieve the most recent revision (instead of ignoring
   14190 the file).
   14191 
   14192 @c <en>@item -k @var{kflag}
   14193 @item -k @var{kflag}
   14194 @c <en>Process keywords according to @var{kflag}.  See
   14195 @c <en>@ref{Keyword substitution}.
   14196 @c <en>This option is sticky; future updates of
   14197 @c <en>this file in this working directory will use the same
   14198 @c <en>@var{kflag}.  The @code{status} command can be viewed
   14199 @c <en>to see the sticky options.  See @ref{Invoking CVS}, for
   14200 @c <en>more information on the @code{status} command.
   14201 Process keywords according to @var{kflag}.  See
   14202 @ref{Substituio de palavra-chave}.
   14203 This option is sticky; future updates of
   14204 this file in this working directory will use the same
   14205 @var{kflag}.  The @code{status} command can be viewed
   14206 to see the sticky options.  See @ref{Chamando o CVS}, for
   14207 more information on the @code{status} command.
   14208 
   14209 @item -l
   14210 Local; run only in current working directory.
   14211 
   14212 @item -n
   14213 Do not run any checkout program (as specified
   14214 with the @samp{-o} option in the modules file;
   14215 @pxref{modules}).
   14216 
   14217 @item -P
   14218 @c <en>Prune empty directories.  See @ref{Moving directories}.
   14219 Prune empty directories.  See @ref{Movendo diretrios}.
   14220 
   14221 @item -p
   14222 Pipe files to the standard output.
   14223 
   14224 @item -R
   14225 Checkout directories recursively.  This option is on by default.
   14226 
   14227 @c <en>@item -r @var{tag}
   14228 @item -r @var{tag}
   14229 @c <en>Use revision @var{tag}.  This option is sticky, and implies @samp{-P}.
   14230 @c <en>See @ref{Sticky tags}, for more information on sticky tags/dates.
   14231 Use revision @var{tag}.  This option is sticky, and implies @samp{-P}.
   14232 See @ref{Etiquetas adesivas}, for more information on sticky tags/dates.
   14233 @end table
   14234 
   14235 In addition to those, you can use these special command
   14236 options with @code{checkout}:
   14237 
   14238 @table @code
   14239 @c <en>@item -A
   14240 @item -A
   14241 @c <en>Reset any sticky tags, dates, or @samp{-k} options.
   14242 @c <en>See @ref{Sticky tags}, for more information on sticky tags/dates.
   14243 Reset any sticky tags, dates, or @samp{-k} options.
   14244 See @ref{Etiquetas adesivas}, for more information on sticky tags/dates.
   14245 
   14246 @item -c
   14247 Copy the module file, sorted, to the standard output,
   14248 instead of creating or modifying any files or
   14249 directories in your working directory.
   14250 
   14251 @item -d @var{dir}
   14252 Create a directory called @var{dir} for the working
   14253 files, instead of using the module name.  In general,
   14254 using this flag is equivalent to using @samp{mkdir
   14255 @var{dir}; cd @var{dir}} followed by the checkout
   14256 command without the @samp{-d} flag.
   14257 
   14258 There is an important exception, however.  It is very
   14259 convenient when checking out a single item to have the
   14260 output appear in a directory that doesn't contain empty
   14261 intermediate directories.  In this case @emph{only},
   14262 @sc{cvs} tries to ``shorten'' pathnames to avoid those empty
   14263 directories.
   14264 
   14265 For example, given a module @samp{foo} that contains
   14266 the file @samp{bar.c}, the command @samp{cvs co -d dir
   14267 foo} will create directory @samp{dir} and place
   14268 @samp{bar.c} inside.  Similarly, given a module
   14269 @samp{bar} which has subdirectory @samp{baz} wherein
   14270 there is a file @samp{quux.c}, the command @samp{cvs co
   14271 -d dir bar/baz} will create directory @samp{dir} and
   14272 place @samp{quux.c} inside.
   14273 
   14274 Using the @samp{-N} flag will defeat this behavior.
   14275 Given the same module definitions above, @samp{cvs co
   14276 -N -d dir foo} will create directories @samp{dir/foo}
   14277 and place @samp{bar.c} inside, while @samp{cvs co -N -d
   14278 dir bar/baz} will create directories @samp{dir/bar/baz}
   14279 and place @samp{quux.c} inside.
   14280 
   14281 @item -j @var{tag}
   14282 With two @samp{-j} options, merge changes from the
   14283 revision specified with the first @samp{-j} option to
   14284 the revision specified with the second @samp{j} option,
   14285 into the working directory.
   14286 
   14287 With one @samp{-j} option, merge changes from the
   14288 ancestor revision to the revision specified with the
   14289 @samp{-j} option, into the working directory.  The
   14290 ancestor revision is the common ancestor of the
   14291 revision which the working directory is based on, and
   14292 the revision specified in the @samp{-j} option.
   14293 
   14294 In addition, each -j option can contain an optional
   14295 date specification which, when used with branches, can
   14296 limit the chosen revision to one within a specific
   14297 date.  An optional date is specified by adding a colon
   14298 (:) to the tag:
   14299 @samp{-j@var{Symbolic_Tag}:@var{Date_Specifier}}.
   14300 
   14301 @c <en>@xref{Branching and merging}.
   14302 @xref{Ramificando e mesclando}.
   14303 
   14304 @item -N
   14305 Only useful together with @samp{-d @var{dir}}.  With
   14306 this option, @sc{cvs} will not ``shorten'' module paths
   14307 in your working directory when you check out a single
   14308 module.  See the @samp{-d} flag for examples and a
   14309 discussion.
   14310 
   14311 @item -s
   14312 Like @samp{-c}, but include the status of all modules,
   14313 and sort it by the status string.  @xref{modules}, for
   14314 info about the @samp{-s} option that is used inside the
   14315 modules file to set the module status.
   14316 @end table
   14317 
   14318 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   14319 @node checkout examples
   14320 @appendixsubsec checkout examples
   14321 
   14322 Get a copy of the module @samp{tc}:
   14323 
   14324 @example
   14325 $ cvs checkout tc
   14326 @end example
   14327 
   14328 Get a copy of the module @samp{tc} as it looked one day
   14329 ago:
   14330 
   14331 @example
   14332 $ cvs checkout -D yesterday tc
   14333 @end example
   14334 
   14335 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   14336 @node commit
   14337 @appendixsec commit---Check files into the repository
   14338 @cindex commit (subcommand)
   14339 
   14340 @itemize @bullet
   14341 @item
   14342 Synopsis: commit [-lnRf] [-m 'log_message' |
   14343 -F file] [-r revision] [files@dots{}]
   14344 @item
   14345 Requires: working directory, repository.
   14346 @item
   14347 Changes: repository.
   14348 @item
   14349 Synonym: ci
   14350 @end itemize
   14351 
   14352 Use @code{commit} when you want to incorporate changes
   14353 from your working source files into the source
   14354 repository.
   14355 
   14356 If you don't specify particular files to commit, all of
   14357 the files in your working current directory are
   14358 examined.  @code{commit} is careful to change in the
   14359 repository only those files that you have really
   14360 changed.  By default (or if you explicitly specify the
   14361 @samp{-R} option), files in subdirectories are also
   14362 examined and committed if they have changed; you can
   14363 use the @samp{-l} option to limit @code{commit} to the
   14364 current directory only.
   14365 
   14366 @code{commit} verifies that the selected files are up
   14367 to date with the current revisions in the source
   14368 repository; it will notify you, and exit without
   14369 committing, if any of the specified files must be made
   14370 current first with @code{update} (@pxref{update}).
   14371 @code{commit} does not call the @code{update} command
   14372 for you, but rather leaves that for you to do when the
   14373 time is right.
   14374 
   14375 When all is well, an editor is invoked to allow you to
   14376 enter a log message that will be written to one or more
   14377 logging programs (@pxref{modules}, and @pxref{loginfo})
   14378 and placed in the @sc{rcs} file inside the
   14379 repository.  This log message can be retrieved with the
   14380 @code{log} command; see @ref{log}.  You can specify the
   14381 log message on the command line with the @samp{-m
   14382 @var{message}} option, and thus avoid the editor invocation,
   14383 or use the @samp{-F @var{file}} option to specify
   14384 that the argument file contains the log message.
   14385 
   14386 @menu
   14387 * commit options::              commit options
   14388 * commit examples::             commit examples
   14389 @end menu
   14390 
   14391 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   14392 @node commit options
   14393 @appendixsubsec commit options
   14394 
   14395 @c <en>These standard options are supported by @code{commit}
   14396 @c <en>(@pxref{Common options}, for a complete description of
   14397 @c <en>them):
   14398 These standard options are supported by @code{commit}
   14399 (@pxref{Opes comuns}, for a complete description of
   14400 them):
   14401 
   14402 @table @code
   14403 @item -l
   14404 Local; run only in current working directory.
   14405 
   14406 @item -R
   14407 Commit directories recursively.  This is on by default.
   14408 
   14409 @c <en>@item -r @var{revision}
   14410 @item -r @var{revision}
   14411 @c <en>Commit to @var{revision}.  @var{revision} must be
   14412 @c <en>either a branch, or a revision on the main trunk that
   14413 @c <en>is higher than any existing revision number
   14414 @c <en>(@pxref{Assigning revisions}).  You
   14415 @c <en>cannot commit to a specific revision on a branch.
   14416 Commit to @var{revision}.  @var{revision} must be
   14417 either a branch, or a revision on the main trunk that
   14418 is higher than any existing revision number
   14419 (@pxref{Atribuindo revises}).  You
   14420 cannot commit to a specific revision on a branch.
   14421 @c FIXME: Need xref for branch case.
   14422 @end table
   14423 
   14424 @code{commit} also supports these options:
   14425 
   14426 @table @code
   14427 @item -F @var{file}
   14428 Read the log message from @var{file}, instead
   14429 of invoking an editor.
   14430 
   14431 @c <en>@item -f
   14432 @item -f
   14433 @c <en>Note that this is not the standard behavior of
   14434 @c <en>the @samp{-f} option as defined in @ref{Common options}.
   14435 Note that this is not the standard behavior of
   14436 the @samp{-f} option as defined in @ref{Opes comuns}.
   14437 
   14438 Force @sc{cvs} to commit a new revision even if you haven't
   14439 made any changes to the file.  If the current revision
   14440 of @var{file} is 1.7, then the following two commands
   14441 are equivalent:
   14442 
   14443 @example
   14444 $ cvs commit -f @var{file}
   14445 $ cvs commit -r 1.8 @var{file}
   14446 @end example
   14447 
   14448 @c This is odd, but it's how CVS has worked for some
   14449 @c time.
   14450 The @samp{-f} option disables recursion (i.e., it
   14451 implies @samp{-l}).  To force @sc{cvs} to commit a new
   14452 revision for all files in all subdirectories, you must
   14453 use @samp{-f -R}.
   14454 
   14455 @item -m @var{message}
   14456 Use @var{message} as the log message, instead of
   14457 invoking an editor.
   14458 @end table
   14459 
   14460 @need 2000
   14461 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   14462 @node commit examples
   14463 @appendixsubsec commit examples
   14464 
   14465 @c FIXME: this material wants to be somewhere
   14466 @c in "Branching and merging".
   14467 
   14468 @appendixsubsubsec Committing to a branch
   14469 
   14470 @c <en>You can commit to a branch revision (one that has an
   14471 @c <en>even number of dots) with the @samp{-r} option.  To
   14472 @c <en>create a branch revision, use the @samp{-b} option
   14473 @c <en>of the @code{rtag} or @code{tag} commands
   14474 @c <en>(@pxref{Branching and merging}).  Then, either @code{checkout} or
   14475 @c <en>@code{update} can be used to base your sources on the
   14476 @c <en>newly created branch.  From that point on, all
   14477 @c <en>@code{commit} changes made within these working sources
   14478 @c <en>will be automatically added to a branch revision,
   14479 @c <en>thereby not disturbing main-line development in any
   14480 @c <en>way.  For example, if you had to create a patch to the
   14481 @c <en>1.2 version of the product, even though the 2.0 version
   14482 @c <en>is already under development, you might do:
   14483 You can commit to a branch revision (one that has an
   14484 even number of dots) with the @samp{-r} option.  To
   14485 create a branch revision, use the @samp{-b} option
   14486 of the @code{rtag} or @code{tag} commands
   14487 (@pxref{Ramificando e mesclando}).  Then, either @code{checkout} or
   14488 @code{update} can be used to base your sources on the
   14489 newly created branch.  From that point on, all
   14490 @code{commit} changes made within these working sources
   14491 will be automatically added to a branch revision,
   14492 thereby not disturbing main-line development in any
   14493 way.  For example, if you had to create a patch to the
   14494 1.2 version of the product, even though the 2.0 version
   14495 is already under development, you might do:
   14496 
   14497 @example
   14498 $ cvs rtag -b -r FCS1_2 FCS1_2_Patch product_module
   14499 $ cvs checkout -r FCS1_2_Patch product_module
   14500 $ cd product_module
   14501 [[ hack away ]]
   14502 $ cvs commit
   14503 @end example
   14504 
   14505 @noindent
   14506 This works automatically since the @samp{-r} option is
   14507 sticky.
   14508 
   14509 @appendixsubsubsec Creating the branch after editing
   14510 
   14511 Say you have been working on some extremely
   14512 experimental software, based on whatever revision you
   14513 happened to checkout last week.  If others in your
   14514 group would like to work on this software with you, but
   14515 without disturbing main-line development, you could
   14516 commit your change to a new branch.  Others can then
   14517 checkout your experimental stuff and utilize the full
   14518 benefit of @sc{cvs} conflict resolution.  The scenario might
   14519 look like:
   14520 
   14521 @c FIXME: Should we be recommending tagging the branchpoint?
   14522 @example
   14523 [[ hacked sources are present ]]
   14524 $ cvs tag -b EXPR1
   14525 $ cvs update -r EXPR1
   14526 $ cvs commit
   14527 @end example
   14528 
   14529 The @code{update} command will make the @samp{-r
   14530 EXPR1} option sticky on all files.  Note that your
   14531 changes to the files will never be removed by the
   14532 @code{update} command.  The @code{commit} will
   14533 automatically commit to the correct branch, because the
   14534 @samp{-r} is sticky.  You could also do like this:
   14535 
   14536 @c FIXME: Should we be recommending tagging the branchpoint?
   14537 @example
   14538 [[ hacked sources are present ]]
   14539 $ cvs tag -b EXPR1
   14540 $ cvs commit -r EXPR1
   14541 @end example
   14542 
   14543 @noindent
   14544 but then, only those files that were changed by you
   14545 will have the @samp{-r EXPR1} sticky flag.  If you hack
   14546 away, and commit without specifying the @samp{-r EXPR1}
   14547 flag, some files may accidentally end up on the main
   14548 trunk.
   14549 
   14550 To work with you on the experimental change, others
   14551 would simply do
   14552 
   14553 @example
   14554 $ cvs checkout -r EXPR1 whatever_module
   14555 @end example
   14556 
   14557 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   14558 @node diff
   14559 @appendixsec diff---Show differences between revisions
   14560 @cindex diff (subcommand)
   14561 
   14562 @itemize @bullet
   14563 @item
   14564 Synopsis: diff [-lR] [-k kflag] [format_options] [[-r rev1 | -D date1] [-r rev2 |  -D date2]] [files@dots{}]
   14565 @item
   14566 Requires: working directory, repository.
   14567 @item
   14568 Changes: nothing.
   14569 @end itemize
   14570 
   14571 The @code{diff} command is used to compare different
   14572 revisions of files.  The default action is to compare
   14573 your working files with the revisions they were based
   14574 on, and report any differences that are found.
   14575 
   14576 If any file names are given, only those files are
   14577 compared.  If any directories are given, all files
   14578 under them will be compared.
   14579 
   14580 @c <en>The exit status for diff is different than for other
   14581 @c <en>@sc{cvs} commands; for details @ref{Exit status}.
   14582 The exit status for diff is different than for other
   14583 @sc{cvs} commands; for details @ref{Estados de sada}.
   14584 
   14585 @menu
   14586 * diff options::                diff options
   14587 * diff examples::               diff examples
   14588 @end menu
   14589 
   14590 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   14591 @node diff options
   14592 @appendixsubsec diff options
   14593 
   14594 @c <en>These standard options are supported by @code{diff}
   14595 @c <en>(@pxref{Common options}, for a complete description of
   14596 @c <en>them):
   14597 These standard options are supported by @code{diff}
   14598 (@pxref{Opes comuns}, for a complete description of
   14599 them):
   14600 
   14601 @table @code
   14602 @item -D @var{date}
   14603 Use the most recent revision no later than @var{date}.
   14604 See @samp{-r} for how this affects the comparison.
   14605 
   14606 @c <en>@item -k @var{kflag}
   14607 @item -k @var{kflag}
   14608 @c <en>Process keywords according to @var{kflag}.  See
   14609 @c <en>@ref{Keyword substitution}.
   14610 Process keywords according to @var{kflag}.  See
   14611 @ref{Substituio de palavra-chave}.
   14612 
   14613 @item -l
   14614 Local; run only in current working directory.
   14615 
   14616 @item -R
   14617 Examine directories recursively.  This option is on by
   14618 default.
   14619 
   14620 @item -r @var{tag}
   14621 Compare with revision @var{tag}.  Zero, one or two
   14622 @samp{-r} options can be present.  With no @samp{-r}
   14623 option, the working file will be compared with the
   14624 revision it was based on.  With one @samp{-r}, that
   14625 revision will be compared to your current working file.
   14626 With two @samp{-r} options those two revisions will be
   14627 compared (and your working file will not affect the
   14628 outcome in any way).
   14629 @c We should be a lot more explicit, with examples,
   14630 @c about the difference between "cvs diff" and "cvs
   14631 @c diff -r HEAD".  This often confuses new users.
   14632 
   14633 One or both @samp{-r} options can be replaced by a
   14634 @samp{-D @var{date}} option, described above.
   14635 @end table
   14636 
   14637 @c Conceptually, this is a disaster.  There are 3
   14638 @c zillion diff formats that we support via the diff
   14639 @c library.  It is not obvious to me that we should
   14640 @c document them all.  Maybe just the most common ones
   14641 @c like -c and -u, and think about phasing out the
   14642 @c obscure ones.
   14643 @c FIXCVS: also should be a way to specify an external
   14644 @c diff program (which can be different for different
   14645 @c file types) and pass through
   14646 @c arbitrary options, so that the user can do
   14647 @c "--pass=-Z --pass=foo" or something even if CVS
   14648 @c doesn't know about the "-Z foo" option to diff.
   14649 @c This would fit nicely with deprecating/eliminating
   14650 @c the obscure options of the diff library, because it
   14651 @c would let people specify an external GNU diff if
   14652 @c they are into that sort of thing.
   14653 The following options specify the format of the
   14654 output.  They have the same meaning as in GNU diff.
   14655 Most options have two equivalent names, one of which is a single letter
   14656 preceded by @samp{-}, and the other of which is a long name preceded by
   14657 @samp{--}.
   14658 
   14659 @table @samp
   14660 @item -@var{lines}
   14661 Show @var{lines} (an integer) lines of context.  This option does not
   14662 specify an output format by itself; it has no effect unless it is
   14663 combined with @samp{-c} or @samp{-u}.  This option is obsolete.  For proper
   14664 operation, @code{patch} typically needs at least two lines of context.
   14665 
   14666 @item -a
   14667 Treat all files as text and compare them line-by-line, even if they
   14668 do not seem to be text.
   14669 
   14670 @item -b
   14671 Ignore trailing white space and consider all other sequences of one or
   14672 more white space characters to be equivalent.
   14673 
   14674 @item -B
   14675 Ignore changes that just insert or delete blank lines.
   14676 
   14677 @item --binary
   14678 Read and write data in binary mode.
   14679 
   14680 @item --brief
   14681 Report only whether the files differ, not the details of the
   14682 differences.
   14683 
   14684 @item -c
   14685 Use the context output format.
   14686 
   14687 @item -C @var{lines}
   14688 @itemx --context@r{[}=@var{lines}@r{]}
   14689 Use the context output format, showing @var{lines} (an integer) lines of
   14690 context, or three if @var{lines} is not given.
   14691 For proper operation, @code{patch} typically needs at least two lines of
   14692 context.
   14693 
   14694 @item --changed-group-format=@var{format}
   14695 Use @var{format} to output a line group containing differing lines from
   14696 both files in if-then-else format.  @xref{Line group formats}.
   14697 
   14698 @item -d
   14699 Change the algorithm to perhaps find a smaller set of changes.  This makes
   14700 @code{diff} slower (sometimes much slower).
   14701 
   14702 @item -e
   14703 @itemx --ed
   14704 Make output that is a valid @code{ed} script.
   14705 
   14706 @item --expand-tabs
   14707 Expand tabs to spaces in the output, to preserve the alignment of tabs
   14708 in the input files.
   14709 
   14710 @item -f
   14711 Make output that looks vaguely like an @code{ed} script but has changes
   14712 in the order they appear in the file.
   14713 
   14714 @item -F @var{regexp}
   14715 In context and unified format, for each hunk of differences, show some
   14716 of the last preceding line that matches @var{regexp}.
   14717 
   14718 @item --forward-ed
   14719 Make output that looks vaguely like an @code{ed} script but has changes
   14720 in the order they appear in the file.
   14721 
   14722 @item -H
   14723 Use heuristics to speed handling of large files that have numerous
   14724 scattered small changes.
   14725 
   14726 @item --horizon-lines=@var{lines}
   14727 Do not discard the last @var{lines} lines of the common prefix
   14728 and the first @var{lines} lines of the common suffix.
   14729 
   14730 @item -i
   14731 Ignore changes in case; consider upper- and lower-case letters
   14732 equivalent.
   14733 
   14734 @item -I @var{regexp}
   14735 Ignore changes that just insert or delete lines that match @var{regexp}.
   14736 
   14737 @item --ifdef=@var{name}
   14738 Make merged if-then-else output using @var{name}.
   14739 
   14740 @item --ignore-all-space
   14741 Ignore white space when comparing lines.
   14742 
   14743 @item --ignore-blank-lines
   14744 Ignore changes that just insert or delete blank lines.
   14745 
   14746 @item --ignore-case
   14747 Ignore changes in case; consider upper- and lower-case to be the same.
   14748 
   14749 @item --ignore-matching-lines=@var{regexp}
   14750 Ignore changes that just insert or delete lines that match @var{regexp}.
   14751 
   14752 @item --ignore-space-change
   14753 Ignore trailing white space and consider all other sequences of one or
   14754 more white space characters to be equivalent.
   14755 
   14756 @item --initial-tab
   14757 Output a tab rather than a space before the text of a line in normal or
   14758 context format.  This causes the alignment of tabs in the line to look
   14759 normal.
   14760 
   14761 @item -L @var{label}
   14762 Use @var{label} instead of the file name in the context format
   14763 and unified format headers.
   14764 
   14765 @item --label=@var{label}
   14766 Use @var{label} instead of the file name in the context format
   14767 and unified format headers.
   14768 
   14769 @item --left-column
   14770 Print only the left column of two common lines in side by side format.
   14771 
   14772 @item --line-format=@var{format}
   14773 Use @var{format} to output all input lines in if-then-else format.
   14774 @xref{Line formats}.
   14775 
   14776 @item --minimal
   14777 Change the algorithm to perhaps find a smaller set of changes.  This
   14778 makes @code{diff} slower (sometimes much slower).
   14779 
   14780 @item -n
   14781 Output RCS-format diffs; like @samp{-f} except that each command
   14782 specifies the number of lines affected.
   14783 
   14784 @item -N
   14785 @itemx --new-file
   14786 In directory comparison, if a file is found in only one directory,
   14787 treat it as present but empty in the other directory.
   14788 
   14789 @item --new-group-format=@var{format}
   14790 Use @var{format} to output a group of lines taken from just the second
   14791 file in if-then-else format.  @xref{Line group formats}.
   14792 
   14793 @item --new-line-format=@var{format}
   14794 Use @var{format} to output a line taken from just the second file in
   14795 if-then-else format.  @xref{Line formats}.
   14796 
   14797 @item --old-group-format=@var{format}
   14798 Use @var{format} to output a group of lines taken from just the first
   14799 file in if-then-else format.  @xref{Line group formats}.
   14800 
   14801 @item --old-line-format=@var{format}
   14802 Use @var{format} to output a line taken from just the first file in
   14803 if-then-else format.  @xref{Line formats}.
   14804 
   14805 @item -p
   14806 Show which C function each change is in.
   14807 
   14808 @item --rcs
   14809 Output RCS-format diffs; like @samp{-f} except that each command
   14810 specifies the number of lines affected.
   14811 
   14812 @item --report-identical-files
   14813 @itemx -s
   14814 Report when two files are the same.
   14815 
   14816 @item --show-c-function
   14817 Show which C function each change is in.
   14818 
   14819 @item --show-function-line=@var{regexp}
   14820 In context and unified format, for each hunk of differences, show some
   14821 of the last preceding line that matches @var{regexp}.
   14822 
   14823 @item --side-by-side
   14824 Use the side by side output format.
   14825 
   14826 @item --speed-large-files
   14827 Use heuristics to speed handling of large files that have numerous
   14828 scattered small changes.
   14829 
   14830 @item --suppress-common-lines
   14831 Do not print common lines in side by side format.
   14832 
   14833 @item -t
   14834 Expand tabs to spaces in the output, to preserve the alignment of tabs
   14835 in the input files.
   14836 
   14837 @item -T
   14838 Output a tab rather than a space before the text of a line in normal or
   14839 context format.  This causes the alignment of tabs in the line to look
   14840 normal.
   14841 
   14842 @item --text
   14843 Treat all files as text and compare them line-by-line, even if they
   14844 do not appear to be text.
   14845 
   14846 @item -u
   14847 Use the unified output format.
   14848 
   14849 @item --unchanged-group-format=@var{format}
   14850 Use @var{format} to output a group of common lines taken from both files
   14851 in if-then-else format.  @xref{Line group formats}.
   14852 
   14853 @item --unchanged-line-format=@var{format}
   14854 Use @var{format} to output a line common to both files in if-then-else
   14855 format.  @xref{Line formats}.
   14856 
   14857 @item -U @var{lines}
   14858 @itemx --unified@r{[}=@var{lines}@r{]}
   14859 Use the unified output format, showing @var{lines} (an integer) lines of
   14860 context, or three if @var{lines} is not given.
   14861 For proper operation, @code{patch} typically needs at least two lines of
   14862 context.
   14863 
   14864 @item -w
   14865 Ignore white space when comparing lines.
   14866 
   14867 @item -W @var{columns}
   14868 @itemx --width=@var{columns}
   14869 Use an output width of @var{columns} in side by side format.
   14870 
   14871 @item -y
   14872 Use the side by side output format.
   14873 @end table
   14874 
   14875 @menu
   14876 * Line group formats::          Line group formats
   14877 * Line formats::                Line formats
   14878 @end menu
   14879 
   14880 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   14881 @node Line group formats
   14882 @appendixsubsubsec Line group formats
   14883 
   14884 Line group formats let you specify formats suitable for many
   14885 applications that allow if-then-else input, including programming
   14886 languages and text formatting languages.  A line group format specifies
   14887 the output format for a contiguous group of similar lines.
   14888 
   14889 For example, the following command compares the TeX file @file{myfile}
   14890 with the original version from the repository,
   14891 and outputs a merged file in which old regions are
   14892 surrounded by @samp{\begin@{em@}}-@samp{\end@{em@}} lines, and new
   14893 regions are surrounded by @samp{\begin@{bf@}}-@samp{\end@{bf@}} lines.
   14894 
   14895 @example
   14896 cvs diff \
   14897    --old-group-format='\begin@{em@}
   14898 %<\end@{em@}
   14899 ' \
   14900    --new-group-format='\begin@{bf@}
   14901 %>\end@{bf@}
   14902 ' \
   14903    myfile
   14904 @end example
   14905 
   14906 The following command is equivalent to the above example, but it is a
   14907 little more verbose, because it spells out the default line group formats.
   14908 
   14909 @example
   14910 cvs diff \
   14911    --old-group-format='\begin@{em@}
   14912 %<\end@{em@}
   14913 ' \
   14914    --new-group-format='\begin@{bf@}
   14915 %>\end@{bf@}
   14916 ' \
   14917    --unchanged-group-format='%=' \
   14918    --changed-group-format='\begin@{em@}
   14919 %<\end@{em@}
   14920 \begin@{bf@}
   14921 %>\end@{bf@}
   14922 ' \
   14923    myfile
   14924 @end example
   14925 
   14926 Here is a more advanced example, which outputs a diff listing with
   14927 headers containing line numbers in a ``plain English'' style.
   14928 
   14929 @example
   14930 cvs diff \
   14931    --unchanged-group-format='' \
   14932    --old-group-format='-------- %dn line%(n=1?:s) deleted at %df:
   14933 %<' \
   14934    --new-group-format='-------- %dN line%(N=1?:s) added after %de:
   14935 %>' \
   14936    --changed-group-format='-------- %dn line%(n=1?:s) changed at %df:
   14937 %<-------- to:
   14938 %>' \
   14939    myfile
   14940 @end example
   14941 
   14942 To specify a line group format, use one of the options
   14943 listed below.  You can specify up to four line group formats, one for
   14944 each kind of line group.  You should quote @var{format}, because it
   14945 typically contains shell metacharacters.
   14946 
   14947 @table @samp
   14948 @item --old-group-format=@var{format}
   14949 These line groups are hunks containing only lines from the first file.
   14950 The default old group format is the same as the changed group format if
   14951 it is specified; otherwise it is a format that outputs the line group as-is.
   14952 
   14953 @item --new-group-format=@var{format}
   14954 These line groups are hunks containing only lines from the second
   14955 file.  The default new group format is same as the changed group
   14956 format if it is specified; otherwise it is a format that outputs the
   14957 line group as-is.
   14958 
   14959 @item --changed-group-format=@var{format}
   14960 These line groups are hunks containing lines from both files.  The
   14961 default changed group format is the concatenation of the old and new
   14962 group formats.
   14963 
   14964 @item --unchanged-group-format=@var{format}
   14965 These line groups contain lines common to both files.  The default
   14966 unchanged group format is a format that outputs the line group as-is.
   14967 @end table
   14968 
   14969 In a line group format, ordinary characters represent themselves;
   14970 conversion specifications start with @samp{%} and have one of the
   14971 following forms.
   14972 
   14973 @table @samp
   14974 @item %<
   14975 stands for the lines from the first file, including the trailing newline.
   14976 Each line is formatted according to the old line format (@pxref{Line formats}).
   14977 
   14978 @item %>
   14979 stands for the lines from the second file, including the trailing newline.
   14980 Each line is formatted according to the new line format.
   14981 
   14982 @item %=
   14983 stands for the lines common to both files, including the trailing newline.
   14984 Each line is formatted according to the unchanged line format.
   14985 
   14986 @item %%
   14987 stands for @samp{%}.
   14988 
   14989 @item %c'@var{C}'
   14990 where @var{C} is a single character, stands for @var{C}.
   14991 @var{C} may not be a backslash or an apostrophe.
   14992 For example, @samp{%c':'} stands for a colon, even inside
   14993 the then-part of an if-then-else format, which a colon would
   14994 normally terminate.
   14995 
   14996 @item %c'\@var{O}'
   14997 where @var{O} is a string of 1, 2, or 3 octal digits,
   14998 stands for the character with octal code @var{O}.
   14999 For example, @samp{%c'\0'} stands for a null character.
   15000 
   15001 @item @var{F}@var{n}
   15002 where @var{F} is a @code{printf} conversion specification and @var{n} is one
   15003 of the following letters, stands for @var{n}'s value formatted with @var{F}.
   15004 
   15005 @table @samp
   15006 @item e
   15007 The line number of the line just before the group in the old file.
   15008 
   15009 @item f
   15010 The line number of the first line in the group in the old file;
   15011 equals @var{e} + 1.
   15012 
   15013 @item l
   15014 The line number of the last line in the group in the old file.
   15015 
   15016 @item m
   15017 The line number of the line just after the group in the old file;
   15018 equals @var{l} + 1.
   15019 
   15020 @item n
   15021 The number of lines in the group in the old file; equals @var{l} - @var{f} + 1.
   15022 
   15023 @item E, F, L, M, N
   15024 Likewise, for lines in the new file.
   15025 
   15026 @end table
   15027 
   15028 The @code{printf} conversion specification can be @samp{%d},
   15029 @samp{%o}, @samp{%x}, or @samp{%X}, specifying decimal, octal,
   15030 lower case hexadecimal, or upper case hexadecimal output
   15031 respectively.  After the @samp{%} the following options can appear in
   15032 sequence: a @samp{-} specifying left-justification; an integer
   15033 specifying the minimum field width; and a period followed by an
   15034 optional integer specifying the minimum number of digits.
   15035 For example, @samp{%5dN} prints the number of new lines in the group
   15036 in a field of width 5 characters, using the @code{printf} format @code{"%5d"}.
   15037 
   15038 @item (@var{A}=@var{B}?@var{T}:@var{E})
   15039 If @var{A} equals @var{B} then @var{T} else @var{E}.
   15040 @var{A} and @var{B} are each either a decimal constant
   15041 or a single letter interpreted as above.
   15042 This format spec is equivalent to @var{T} if
   15043 @var{A}'s value equals @var{B}'s; otherwise it is equivalent to @var{E}.
   15044 
   15045 For example, @samp{%(N=0?no:%dN) line%(N=1?:s)} is equivalent to
   15046 @samp{no lines} if @var{N} (the number of lines in the group in the
   15047 new file) is 0, to @samp{1 line} if @var{N} is 1, and to @samp{%dN lines}
   15048 otherwise.
   15049 @end table
   15050 
   15051 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15052 @node Line formats
   15053 @appendixsubsubsec Line formats
   15054 
   15055 Line formats control how each line taken from an input file is
   15056 output as part of a line group in if-then-else format.
   15057 
   15058 For example, the following command outputs text with a one-column
   15059 change indicator to the left of the text.  The first column of output
   15060 is @samp{-} for deleted lines, @samp{|} for added lines, and a space
   15061 for unchanged lines.  The formats contain newline characters where
   15062 newlines are desired on output.
   15063 
   15064 @example
   15065 cvs diff \
   15066    --old-line-format='-%l
   15067 ' \
   15068    --new-line-format='|%l
   15069 ' \
   15070    --unchanged-line-format=' %l
   15071 ' \
   15072    myfile
   15073 @end example
   15074 
   15075 To specify a line format, use one of the following options.  You should
   15076 quote @var{format}, since it often contains shell metacharacters.
   15077 
   15078 @table @samp
   15079 @item --old-line-format=@var{format}
   15080 formats lines just from the first file.
   15081 
   15082 @item --new-line-format=@var{format}
   15083 formats lines just from the second file.
   15084 
   15085 @item --unchanged-line-format=@var{format}
   15086 formats lines common to both files.
   15087 
   15088 @item --line-format=@var{format}
   15089 formats all lines; in effect, it sets all three above options simultaneously.
   15090 @end table
   15091 
   15092 In a line format, ordinary characters represent themselves;
   15093 conversion specifications start with @samp{%} and have one of the
   15094 following forms.
   15095 
   15096 @table @samp
   15097 @item %l
   15098 stands for the contents of the line, not counting its trailing
   15099 newline (if any).  This format ignores whether the line is incomplete.
   15100 
   15101 @item %L
   15102 stands for the contents of the line, including its trailing newline
   15103 (if any).  If a line is incomplete, this format preserves its
   15104 incompleteness.
   15105 
   15106 @item %%
   15107 stands for @samp{%}.
   15108 
   15109 @item %c'@var{C}'
   15110 where @var{C} is a single character, stands for @var{C}.
   15111 @var{C} may not be a backslash or an apostrophe.
   15112 For example, @samp{%c':'} stands for a colon.
   15113 
   15114 @item %c'\@var{O}'
   15115 where @var{O} is a string of 1, 2, or 3 octal digits,
   15116 stands for the character with octal code @var{O}.
   15117 For example, @samp{%c'\0'} stands for a null character.
   15118 
   15119 @item @var{F}n
   15120 where @var{F} is a @code{printf} conversion specification,
   15121 stands for the line number formatted with @var{F}.
   15122 For example, @samp{%.5dn} prints the line number using the
   15123 @code{printf} format @code{"%.5d"}.  @xref{Line group formats}, for
   15124 more about printf conversion specifications.
   15125 
   15126 @end table
   15127 
   15128 The default line format is @samp{%l} followed by a newline character.
   15129 
   15130 If the input contains tab characters and it is important that they line
   15131 up on output, you should ensure that @samp{%l} or @samp{%L} in a line
   15132 format is just after a tab stop (e.g.@: by preceding @samp{%l} or
   15133 @samp{%L} with a tab character), or you should use the @samp{-t} or
   15134 @samp{--expand-tabs} option.
   15135 
   15136 Taken together, the line and line group formats let you specify many
   15137 different formats.  For example, the following command uses a format
   15138 similar to @code{diff}'s normal format.  You can tailor this command
   15139 to get fine control over @code{diff}'s output.
   15140 
   15141 @example
   15142 cvs diff \
   15143    --old-line-format='< %l
   15144 ' \
   15145    --new-line-format='> %l
   15146 ' \
   15147    --old-group-format='%df%(f=l?:,%dl)d%dE
   15148 %<' \
   15149    --new-group-format='%dea%dF%(F=L?:,%dL)
   15150 %>' \
   15151    --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
   15152 %<---
   15153 %>' \
   15154    --unchanged-group-format='' \
   15155    myfile
   15156 @end example
   15157 
   15158 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15159 @node diff examples
   15160 @appendixsubsec diff examples
   15161 
   15162 The following line produces a Unidiff (@samp{-u} flag)
   15163 between revision 1.14 and 1.19 of
   15164 @file{backend.c}.  Due to the @samp{-kk} flag no
   15165 keywords are substituted, so differences that only depend
   15166 on keyword substitution are ignored.
   15167 
   15168 @example
   15169 $ cvs diff -kk -u -r 1.14 -r 1.19 backend.c
   15170 @end example
   15171 
   15172 Suppose the experimental branch EXPR1 was based on a
   15173 set of files tagged RELEASE_1_0.  To see what has
   15174 happened on that branch, the following can be used:
   15175 
   15176 @example
   15177 $ cvs diff -r RELEASE_1_0 -r EXPR1
   15178 @end example
   15179 
   15180 A command like this can be used to produce a context
   15181 diff between two releases:
   15182 
   15183 @example
   15184 $ cvs diff -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
   15185 @end example
   15186 
   15187 If you are maintaining ChangeLogs, a command like the following
   15188 just before you commit your changes may help you write
   15189 the ChangeLog entry.  All local modifications that have
   15190 not yet been committed will be printed.
   15191 
   15192 @example
   15193 $ cvs diff -u | less
   15194 @end example
   15195 
   15196 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   15197 @node export
   15198 @appendixsec export---Export sources from CVS, similar to checkout
   15199 @cindex export (subcommand)
   15200 
   15201 @itemize @bullet
   15202 @item
   15203 Synopsis: export [-flNnR] [-r rev|-D date] [-k subst] [-d dir] module@dots{}
   15204 @item
   15205 Requires: repository.
   15206 @item
   15207 Changes: current directory.
   15208 @end itemize
   15209 
   15210 This command is a variant of @code{checkout}; use it
   15211 when you want a copy of the source for module without
   15212 the @sc{cvs} administrative directories.  For example, you
   15213 might use @code{export} to prepare source for shipment
   15214 off-site.  This command requires that you specify a
   15215 date or tag (with @samp{-D} or @samp{-r}), so that you
   15216 can count on reproducing the source you ship to others
   15217 (and thus it always prunes empty directories).
   15218 
   15219 One often would like to use @samp{-kv} with @code{cvs
   15220 export}.  This causes any keywords to be
   15221 expanded such that an import done at some other site
   15222 will not lose the keyword revision information.  But be
   15223 aware that doesn't handle an export containing binary
   15224 files correctly.  Also be aware that after having used
   15225 @samp{-kv}, one can no longer use the @code{ident}
   15226 command (which is part of the @sc{rcs} suite---see
   15227 ident(1)) which looks for keyword strings.  If
   15228 you want to be able to use @code{ident} you must not
   15229 use @samp{-kv}.
   15230 
   15231 @menu
   15232 * export options::              export options
   15233 @end menu
   15234 
   15235 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15236 @node export options
   15237 @appendixsubsec export options
   15238 
   15239 @c <en>These standard options are supported by @code{export}
   15240 @c <en>(@pxref{Common options}, for a complete description of
   15241 @c <en>them):
   15242 These standard options are supported by @code{export}
   15243 (@pxref{Opes comuns}, for a complete description of
   15244 them):
   15245 
   15246 @table @code
   15247 @item -D @var{date}
   15248 Use the most recent revision no later than @var{date}.
   15249 
   15250 @item -f
   15251 If no matching revision is found, retrieve the most
   15252 recent revision (instead of ignoring the file).
   15253 
   15254 @item -l
   15255 Local; run only in current working directory.
   15256 
   15257 @item -n
   15258 Do not run any checkout program.
   15259 
   15260 @item -R
   15261 Export directories recursively.  This is on by default.
   15262 
   15263 @item -r @var{tag}
   15264 Use revision @var{tag}.
   15265 @end table
   15266 
   15267 In addition, these options (that are common to
   15268 @code{checkout} and @code{export}) are also supported:
   15269 
   15270 @table @code
   15271 @item -d @var{dir}
   15272 Create a directory called @var{dir} for the working
   15273 files, instead of using the module name.
   15274 @xref{checkout options}, for complete details on how
   15275 @sc{cvs} handles this flag.
   15276 
   15277 @c <en>@item -k @var{subst}
   15278 @item -k @var{subst}
   15279 @c <en>Set keyword expansion mode (@pxref{Substitution modes}).
   15280 Set keyword expansion mode (@pxref{Modos de substituio}).
   15281 
   15282 @item -N
   15283 Only useful together with @samp{-d @var{dir}}.
   15284 @xref{checkout options}, for complete details on how
   15285 @sc{cvs} handles this flag.
   15286 @end table
   15287 
   15288 @ignore
   15289 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15290 @c @node export examples
   15291 @appendixsubsec export examples
   15292 
   15293 Contributed examples are gratefully accepted.
   15294 @c -- Examples here!!
   15295 @end ignore
   15296 
   15297 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   15298 @node history
   15299 @appendixsec history---Show status of files and users
   15300 @cindex history (subcommand)
   15301 
   15302 @itemize @bullet
   15303 @item
   15304 Synopsis:     history [-report] [-flags] [-options args] [files@dots{}]
   15305 @item
   15306 Requires: the file @file{$CVSROOT/CVSROOT/history}
   15307 @item
   15308 Changes: nothing.
   15309 @end itemize
   15310 
   15311 @sc{cvs} can keep a history file that tracks each use of the
   15312 @code{checkout}, @code{commit}, @code{rtag},
   15313 @code{update}, and @code{release} commands.  You can
   15314 use @code{history} to display this information in
   15315 various formats.
   15316 
   15317 Logging must be enabled by creating the file
   15318 @file{$CVSROOT/CVSROOT/history}.
   15319 
   15320 @c <en>@strong{Note: @code{history} uses @samp{-f}, @samp{-l},
   15321 @c <en>@samp{-n}, and @samp{-p} in ways that conflict with the
   15322 @c <en>normal use inside @sc{cvs} (@pxref{Common options}).}
   15323 @strong{Note: @code{history} uses @samp{-f}, @samp{-l},
   15324 @samp{-n}, and @samp{-p} in ways that conflict with the
   15325 normal use inside @sc{cvs} (@pxref{Opes comuns}).}
   15326 
   15327 @menu
   15328 * history options::             history options
   15329 @end menu
   15330 
   15331 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15332 @node history options
   15333 @appendixsubsec history options
   15334 
   15335 Several options (shown above as @samp{-report})  control  what
   15336 kind of report is generated:
   15337 
   15338 @table @code
   15339 @item -c
   15340 Report on each time commit was used (i.e., each time
   15341 the repository was modified).
   15342 
   15343 @item -e
   15344 Everything (all record types).  Equivalent to
   15345 specifying @samp{-x} with all record types.  Of course,
   15346 @samp{-e} will also include record types which are
   15347 added in a future version of @sc{cvs}; if you are
   15348 writing a script which can only handle certain record
   15349 types, you'll want to specify @samp{-x}.
   15350 
   15351 @item -m @var{module}
   15352 Report on a particular module.  (You can meaningfully
   15353 use @samp{-m} more than once on the command line.)
   15354 
   15355 @item -o
   15356 Report on checked-out modules.  This is the default report type.
   15357 
   15358 @item -T
   15359 Report on all tags.
   15360 
   15361 @item -x @var{type}
   15362 Extract a particular set of record types @var{type} from the @sc{cvs}
   15363 history.  The types are indicated by single letters,
   15364 which you may specify in combination.
   15365 
   15366 Certain commands have a single record type:
   15367 
   15368 @table @code
   15369 @item F
   15370 release
   15371 @item O
   15372 checkout
   15373 @item E
   15374 export
   15375 @item T
   15376 rtag
   15377 @end table
   15378 
   15379 @noindent
   15380 One of five record types may result from an update:
   15381 
   15382 @table @code
   15383 @item C
   15384 A merge was necessary but collisions were
   15385 detected (requiring manual merging).
   15386 @item G
   15387 A merge was necessary and it succeeded.
   15388 @item U
   15389 A working file was copied from the repository.
   15390 @item P
   15391 A working file was patched to match the repository.
   15392 @item W
   15393 The working copy of a file was deleted during
   15394 update (because it was gone from the repository).
   15395 @end table
   15396 
   15397 @noindent
   15398 One of three record types results from commit:
   15399 
   15400 @table @code
   15401 @item A
   15402 A file was added for the first time.
   15403 @item M
   15404 A file was modified.
   15405 @item R
   15406 A file was removed.
   15407 @end table
   15408 @end table
   15409 
   15410 The options shown as @samp{-flags} constrain or expand
   15411 the report without requiring option arguments:
   15412 
   15413 @table @code
   15414 @item -a
   15415 Show data for all users (the default is to show data
   15416 only for the user executing @code{history}).
   15417 
   15418 @item -l
   15419 Show last modification only.
   15420 
   15421 @item -w
   15422 Show only the records for modifications done from the
   15423 same working directory where @code{history} is
   15424 executing.
   15425 @end table
   15426 
   15427 The options shown as @samp{-options @var{args}} constrain the report
   15428 based on an argument:
   15429 
   15430 @table @code
   15431 @item -b @var{str}
   15432 Show data back to a record containing  the  string
   15433 @var{str}  in  either the module name, the file name, or
   15434 the repository path.
   15435 
   15436 @item -D @var{date}
   15437 Show data since @var{date}.  This is slightly different
   15438 from the normal use of @samp{-D @var{date}}, which
   15439 selects the newest revision older than @var{date}.
   15440 
   15441 @item -f @var{file}
   15442 Show data for a particular file
   15443 (you can specify several @samp{-f} options on the same command line).
   15444 This is equivalent to specifying the file on the command line.
   15445 
   15446 @item -n @var{module}
   15447 Show data for a particular module
   15448 (you can specify several @samp{-n} options on the same command line).
   15449 
   15450 @item -p @var{repository}
   15451 Show data for a particular source repository  (you
   15452 can specify several @samp{-p} options on the same command
   15453 line).
   15454 
   15455 @item -r @var{rev}
   15456 Show records referring to revisions since the revision
   15457 or tag named @var{rev} appears in individual @sc{rcs}
   15458 files.  Each @sc{rcs} file is searched for the revision or
   15459 tag.
   15460 
   15461 @item -t @var{tag}
   15462 Show records since tag @var{tag} was last added to the
   15463 history file.  This differs from the @samp{-r} flag
   15464 above in that it reads only the history file, not the
   15465 @sc{rcs} files, and is much faster.
   15466 
   15467 @item -u @var{name}
   15468 Show records for user @var{name}.
   15469 
   15470 @item -z @var{timezone}
   15471 Show times in the selected records using the specified
   15472 time zone instead of UTC.
   15473 @end table
   15474 
   15475 @ignore
   15476 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15477 @c @node history examples
   15478 @appendixsubsec history examples
   15479 
   15480 Contributed examples will gratefully be accepted.
   15481 @c -- Examples here!
   15482 @end ignore
   15483 
   15484 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   15485 @node import
   15486 @appendixsec import---Import sources into CVS, using vendor branches
   15487 @cindex import (subcommand)
   15488 
   15489 @c FIXME: This node is way too long for one which has subnodes.
   15490 
   15491 @itemize @bullet
   15492 @item
   15493 Synopsis: import [-options] repository vendortag releasetag@dots{}
   15494 @item
   15495 Requires: Repository, source distribution directory.
   15496 @item
   15497 Changes: repository.
   15498 @end itemize
   15499 
   15500 Use @code{import} to incorporate an entire source
   15501 distribution from an outside source (e.g., a source
   15502 vendor) into your source repository directory.  You can
   15503 use this command both for initial creation of a
   15504 repository, and for wholesale updates to the module
   15505 from the outside source.  @xref{Acompanhando fontes}, for
   15506 a discussion on this subject.
   15507 
   15508 The @var{repository} argument gives a directory name
   15509 (or a path to a directory) under the @sc{cvs} root directory
   15510 for repositories; if the directory did not exist,
   15511 import creates it.
   15512 
   15513 When you use import for updates to source that has been
   15514 modified in your source repository (since a prior
   15515 import), it will notify you of any files that conflict
   15516 in the two branches of development; use @samp{checkout
   15517 -j} to reconcile the differences, as import instructs
   15518 you to do.
   15519 
   15520 If @sc{cvs} decides a file should be ignored
   15521 (@pxref{cvsignore}), it does not import it and prints
   15522 @samp{I } followed by the filename (@pxref{import output}, for a
   15523 complete description of the output).
   15524 
   15525 If the file @file{$CVSROOT/CVSROOT/cvswrappers} exists,
   15526 any file whose names match the specifications in that
   15527 file will be treated as packages and the appropriate
   15528 filtering will be performed on the file/directory
   15529 before being imported.  @xref{Wrappers}.
   15530 
   15531 The outside source is saved in a first-level
   15532 branch, by default 1.1.1.  Updates are leaves of this
   15533 branch; for example, files from the first imported
   15534 collection of source will be revision 1.1.1.1, then
   15535 files from the first imported update will be revision
   15536 1.1.1.2, and so on.
   15537 
   15538 At least three arguments are required.
   15539 @var{repository} is needed to identify the collection
   15540 of source.  @var{vendortag} is a tag for the entire
   15541 branch (e.g., for 1.1.1).  You must also specify at
   15542 least one @var{releasetag} to identify the files at
   15543 the leaves created each time you execute @code{import}.
   15544 
   15545 @c I'm not completely sure this belongs here.  But
   15546 @c we need to say it _somewhere_ reasonably obvious; it
   15547 @c is a common misconception among people first learning CVS
   15548 @c <en>Note that @code{import} does @emph{not} change the
   15549 @c <en>directory in which you invoke it.  In particular, it
   15550 @c <en>does not set up that directory as a @sc{cvs} working
   15551 @c <en>directory; if you want to work with the sources import
   15552 @c <en>them first and then check them out into a different
   15553 @c <en>directory (@pxref{Getting the source}).
   15554 Note that @code{import} does @emph{not} change the
   15555 directory in which you invoke it.  In particular, it
   15556 does not set up that directory as a @sc{cvs} working
   15557 directory; if you want to work with the sources import
   15558 them first and then check them out into a different
   15559 directory (@pxref{Obtendo os fontes}).
   15560 
   15561 @menu
   15562 * import options::              import options
   15563 * import output::               import output
   15564 * import examples::             import examples
   15565 @end menu
   15566 
   15567 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15568 @node import options
   15569 @appendixsubsec import options
   15570 
   15571 @c <en>This standard option is supported by @code{import}
   15572 @c <en>(@pxref{Common options}, for a complete description):
   15573 This standard option is supported by @code{import}
   15574 (@pxref{Opes comuns}, for a complete description):
   15575 
   15576 @table @code
   15577 @item -m @var{message}
   15578 Use @var{message} as log information, instead of
   15579 invoking an editor.
   15580 @end table
   15581 
   15582 There are the following additional special options.
   15583 
   15584 @table @code
   15585 @c <en>@item -b @var{branch}
   15586 @item -b @var{branch}
   15587 @c <en>See @ref{Multiple vendor branches}.
   15588 See @ref{Ramos de fornecedor mltiplos}.
   15589 
   15590 @c <en>@item -k @var{subst}
   15591 @item -k @var{subst}
   15592 @c <en>Indicate the keyword expansion mode desired.  This
   15593 @c <en>setting will apply to all files created during the
   15594 @c <en>import, but not to any files that previously existed in
   15595 @c <en>the repository.  See @ref{Substitution modes}, for a
   15596 @c <en>list of valid @samp{-k} settings.
   15597 Indicate the keyword expansion mode desired.  This
   15598 setting will apply to all files created during the
   15599 import, but not to any files that previously existed in
   15600 the repository.  See @ref{Modos de substituio}, for a
   15601 list of valid @samp{-k} settings.
   15602 
   15603 @item -I @var{name}
   15604 Specify file names that should be ignored during
   15605 import.  You can use this option repeatedly.  To avoid
   15606 ignoring any files at all (even those ignored by
   15607 default), specify `-I !'.
   15608 
   15609 @var{name} can be a file name pattern of the same type
   15610 that you can specify in the @file{.cvsignore} file.
   15611 @xref{cvsignore}.
   15612 @c -- Is this really true?
   15613 
   15614 @item -W @var{spec}
   15615 Specify file names that should be filtered during
   15616 import.  You can use this option repeatedly.
   15617 
   15618 @var{spec} can be a file name pattern of the same type
   15619 that you can specify in the @file{.cvswrappers}
   15620 file. @xref{Wrappers}.
   15621 @end table
   15622 
   15623 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15624 @node import output
   15625 @appendixsubsec import output
   15626 
   15627 @c <en>@code{import} keeps you informed of its progress by printing a line
   15628 @c <en>for each file, preceded by one character indicating the status of the file:
   15629 O @code{import} mantm voc informado de seu progresso
   15630 escrevendo uma linha para cada arquivo, iniciando com
   15631 um caractere que indica o status do arquivo:
   15632 
   15633 @table @code
   15634 @c <en>@item U @var{file}
   15635 @item U @var{arquivo}
   15636 @c <en>The file already exists in the repository and has not been locally
   15637 @c <en>modified; a new revision has been created (if necessary).
   15638 O arquivo j existe no repositrio no foi modificado
   15639 localmente; uma nova reviso foi criada (se necessrio).
   15640 
   15641 @c <en>@item N @var{file}
   15642 @item N @var{arquivo}
   15643 @c <en>The file is a new file which has been added to the repository.
   15644 O arquivo  um arquivo novo que foi adicionado ao repositrio.
   15645 
   15646 @c <en>@item C @var{file}
   15647 @item C @var{arquivo}
   15648 @c <en>The file already exists in the repository but has been locally modified;
   15649 @c <en>you will have to merge the changes.
   15650 O arquivo j existe no repositrio mas foi modificado
   15651 localmente; Voc vai ter que mesclar as mudanas.
   15652 
   15653 @c <en>@item I @var{file}
   15654 @item I @var{arquivo}
   15655 @c <en>The file is being ignored (@pxref{cvsignore}).
   15656 O arquivo foi ignorado (@pxref{cvsignore}).
   15657 
   15658 @c <en>@cindex Symbolic link, importing
   15659 @cindex Ligaes simblicas, importando
   15660 @c <en>@cindex Link, symbolic, importing
   15661 @cindex Simblica, ligao, importando
   15662 @c FIXME: also (somewhere else) probably
   15663 @c should be documenting what happens if you "cvs add"
   15664 @c a symbolic link.  Also maybe what happens if
   15665 @c you manually create symbolic links within the
   15666 @c repository (? - not sure why we'd want to suggest
   15667 @c doing that).
   15668 @c <en>@item L @var{file}
   15669 @item L @var{arquivo}
   15670 @c <en>The file is a symbolic link; @code{cvs import} ignores symbolic links.
   15671 @c <en>People periodically suggest that this behavior should
   15672 @c <en>be changed, but if there is a consensus on what it
   15673 @c <en>should be changed to, it is not apparent.
   15674 @c <en>(Various options in the @file{modules} file can be used
   15675 @c <en>to recreate symbolic links on checkout, update, etc.;
   15676 @c <en>@pxref{modules}.)
   15677 O arquivo  uma ligao simblica; O @code{cvs import}
   15678 ignora ligaes simblicas.  De vez em quando alguem
   15679 sugere que este comportamento seja mudado, mas se h um
   15680 consenso quanto a que mudana fazer, no 
   15681 claro.  (Vrias opes no arquivo @file{modules} podem
   15682 ser usadas para recriar ligaes simblicas no checkout, update, etc.;
   15683 @pxref{modules}.)
   15684 @end table
   15685 
   15686 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15687 @node import examples
   15688 @appendixsubsec import examples
   15689 
   15690 @c <en>See @ref{Tracking sources}, and @ref{From files}.
   15691 See @ref{Acompanhando fontes}, and @ref{De arquivos}.
   15692 
   15693 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   15694 @node log
   15695 @appendixsec log---Print out log information for files
   15696 @cindex log (subcommand)
   15697 
   15698 @itemize @bullet
   15699 @item
   15700 Synopsis: log [options] [files@dots{}]
   15701 @item
   15702 Requires: repository, working directory.
   15703 @item
   15704 Changes: nothing.
   15705 @end itemize
   15706 
   15707 Display log information for files.  @code{log} used to
   15708 call the @sc{rcs} utility @code{rlog}.  Although this
   15709 is no longer true in the current sources, this history
   15710 determines the format of the output and the options,
   15711 which are not quite in the style of the other @sc{cvs}
   15712 commands.
   15713 
   15714 @cindex Timezone, in output
   15715 @cindex Zone, time, in output
   15716 @c Kind of a funny place to document the timezone used
   15717 @c in output from commands other than @code{log}.
   15718 @c There is also more we need to say about this,
   15719 @c including what happens in a client/server environment.
   15720 The output includes the location of the @sc{rcs} file,
   15721 the @dfn{head} revision (the latest revision on the
   15722 trunk), all symbolic names (tags) and some other
   15723 things.  For each revision, the revision number, the
   15724 author, the number of lines added/deleted and the log
   15725 message are printed.  All times are displayed in
   15726 Coordinated Universal Time (UTC).  (Other parts of
   15727 @sc{cvs} print times in the local timezone).
   15728 @c FIXCVS: need a better way to control the timezone
   15729 @c used in output.  Previous/current versions of CVS did/do
   15730 @c sometimes support -z in RCSINIT, and/or an
   15731 @c undocumented (except by reference to 'rlog') -z option
   15732 @c to cvs log, but this has not been a consistent,
   15733 @c documented feature.  Perhaps a new global option,
   15734 @c where LT means the client's timezone, which the
   15735 @c client then communicates to the server, is the
   15736 @c right solution.
   15737 
   15738 @c <en>@strong{Note: @code{log} uses @samp{-R} in a way that conflicts
   15739 @c <en>with the normal use inside @sc{cvs} (@pxref{Common options}).}
   15740 @strong{Note: @code{log} uses @samp{-R} in a way that conflicts
   15741 with the normal use inside @sc{cvs} (@pxref{Opes comuns}).}
   15742 
   15743 @menu
   15744 * log options::                 log options
   15745 * log examples::                log examples
   15746 @end menu
   15747 
   15748 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15749 @node log options
   15750 @appendixsubsec log options
   15751 
   15752 By default, @code{log} prints all information that is
   15753 available.  All other options restrict the output.
   15754 
   15755 @table @code
   15756 @item -b
   15757 Print information about the revisions on the default
   15758 branch, normally the highest branch on the trunk.
   15759 
   15760 @c <en>@item -d @var{dates}
   15761 @item -d @var{dates}
   15762 @c <en>Print information about revisions with a checkin
   15763 @c <en>date/time in the range given by the
   15764 @c <en>semicolon-separated list of dates.  The date formats
   15765 @c <en>accepted are those accepted by the @samp{-D} option to
   15766 @c <en>many other @sc{cvs} commands (@pxref{Common options}).
   15767 @c <en>Dates can be combined into ranges as follows:
   15768 Print information about revisions with a checkin
   15769 date/time in the range given by the
   15770 semicolon-separated list of dates.  The date formats
   15771 accepted are those accepted by the @samp{-D} option to
   15772 many other @sc{cvs} commands (@pxref{Opes comuns}).
   15773 Dates can be combined into ranges as follows:
   15774 
   15775 @c Should we be thinking about accepting ISO8601
   15776 @c ranges?  For example "1972-09-10/1972-09-12".
   15777 @table @code
   15778 @item @var{d1}<@var{d2}
   15779 @itemx @var{d2}>@var{d1}
   15780 Select the revisions that were deposited between
   15781 @var{d1} and @var{d2}.
   15782 
   15783 @item <@var{d}
   15784 @itemx @var{d}>
   15785 Select all revisions dated @var{d} or earlier.
   15786 
   15787 @item @var{d}<
   15788 @itemx >@var{d}
   15789 Select all revisions dated @var{d} or later.
   15790 
   15791 @item @var{d}
   15792 Select the single, latest revision dated @var{d} or
   15793 earlier.
   15794 @end table
   15795 
   15796 The @samp{>} or @samp{<} characters may be followed by
   15797 @samp{=} to indicate an inclusive range rather than an
   15798 exclusive one.
   15799 
   15800 Note that the separator is a semicolon (;).
   15801 
   15802 @item -h
   15803 Print only the name of the @sc{rcs} file, name
   15804 of the file in the working directory, head,
   15805 default branch, access list, locks, symbolic names, and
   15806 suffix.
   15807 
   15808 @item -l
   15809 Local; run only in current working directory.  (Default
   15810 is to run recursively).
   15811 
   15812 @item -N
   15813 Do not print the list of tags for this file.  This
   15814 option can be very useful when your site uses a lot of
   15815 tags, so rather than "more"'ing over 3 pages of tag
   15816 information, the log information is presented without
   15817 tags at all.
   15818 
   15819 @item -R
   15820 Print only the name of the @sc{rcs} file.
   15821 
   15822 @c Note that using a bare revision (in addition to not
   15823 @c being explicitly documented here) is potentially
   15824 @c confusing; it shows the log message to get from the
   15825 @c previous revision to that revision.  "-r1.3 -r1.6"
   15826 @c (equivalent to "-r1.3,1.6") is even worse; it
   15827 @c prints the messages to get from 1.2 to 1.3 and 1.5
   15828 @c to 1.6.  By analogy with "cvs diff", users might
   15829 @c expect that it is more like specifying a range.
   15830 @c It is not 100% clear to me how much of this should
   15831 @c be documented (for example, multiple -r options
   15832 @c perhaps could/should be deprecated given the false
   15833 @c analogy with "cvs diff").
   15834 @c In general, this section should be rewritten to talk
   15835 @c about messages to get from revision rev1 to rev2,
   15836 @c rather than messages for revision rev2 (that is, the
   15837 @c messages are associated with a change not a static
   15838 @c revision and failing to make this distinction causes
   15839 @c much confusion).
   15840 @item -r@var{revisions}
   15841 Print information about revisions given in the
   15842 comma-separated list @var{revisions} of revisions and
   15843 ranges.  The following table explains the available
   15844 range formats:
   15845 
   15846 @table @code
   15847 @item @var{rev1}:@var{rev2}
   15848 Revisions @var{rev1} to @var{rev2} (which must be on
   15849 the same branch).
   15850 
   15851 @item @var{rev1}::@var{rev2}
   15852 The same, but excluding @var{rev1}.
   15853 
   15854 @item :@var{rev}
   15855 @itemx ::@var{rev}
   15856 Revisions from the beginning of the branch up to
   15857 and including @var{rev}.
   15858 
   15859 @item @var{rev}:
   15860 Revisions starting with @var{rev} to the end of the
   15861 branch containing @var{rev}.
   15862 
   15863 @item @var{rev}::
   15864 Revisions starting just after @var{rev} to the end of the
   15865 branch containing @var{rev}.
   15866 
   15867 @item @var{branch}
   15868 An argument that is a branch means all revisions on
   15869 that branch.
   15870 
   15871 @item @var{branch1}:@var{branch2}
   15872 @itemx @var{branch1}::@var{branch2}
   15873 A range of branches means all revisions
   15874 on the branches in that range.
   15875 
   15876 @item @var{branch}.
   15877 The latest revision in @var{branch}.
   15878 @end table
   15879 
   15880 A bare @samp{-r} with no revisions means the latest
   15881 revision on the default branch, normally the trunk.
   15882 There can be no space between the @samp{-r} option and
   15883 its argument.
   15884 
   15885 @item -S
   15886 Suppress the header if no revisions are selected.
   15887 
   15888 @item -s @var{states}
   15889 Print information about revisions whose state
   15890 attributes match one of the states given in the
   15891 comma-separated list @var{states}.
   15892 
   15893 @item -t
   15894 Print the same as @samp{-h}, plus the descriptive text.
   15895 
   15896 @item -w@var{logins}
   15897 Print information about revisions checked in by users
   15898 with login names appearing in the comma-separated list
   15899 @var{logins}.  If @var{logins} is omitted, the user's
   15900 login is assumed.  There can be no space between the
   15901 @samp{-w} option and its argument.
   15902 @end table
   15903 
   15904 @code{log} prints the intersection of the revisions
   15905 selected with the options @samp{-d}, @samp{-s}, and
   15906 @samp{-w}, intersected with the union of the revisions
   15907 selected by @samp{-b} and @samp{-r}.
   15908 
   15909 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15910 @node log examples
   15911 @appendixsubsec log examples
   15912 
   15913 Contributed examples are gratefully accepted.
   15914 
   15915 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   15916 @node rdiff
   15917 @appendixsec rdiff---'patch' format diffs between releases
   15918 @cindex rdiff (subcommand)
   15919 
   15920 @itemize @bullet
   15921 @item
   15922 rdiff [-flags] [-V vn] [-r t|-D d [-r t2|-D d2]] modules@dots{}
   15923 @item
   15924 Requires: repository.
   15925 @item
   15926 Changes: nothing.
   15927 @item
   15928 Synonym: patch
   15929 @end itemize
   15930 
   15931 Builds a Larry Wall format patch(1) file between two
   15932 releases, that can be fed directly into the @code{patch}
   15933 program to bring an old release up-to-date with the new
   15934 release.  (This is one of the few @sc{cvs} commands that
   15935 operates directly from the repository, and doesn't
   15936 require a prior checkout.) The diff output is sent to
   15937 the standard output device.
   15938 
   15939 You can specify (using the standard @samp{-r} and
   15940 @samp{-D} options) any combination of one or two
   15941 revisions or dates.  If only one revision or date is
   15942 specified, the patch file reflects differences between
   15943 that revision or date and the current head revisions in
   15944 the @sc{rcs} file.
   15945 
   15946 Note that if the software release affected is contained
   15947 in more than one directory, then it may be necessary to
   15948 specify the @samp{-p} option to the @code{patch} command when
   15949 patching the old sources, so that @code{patch} is able to find
   15950 the files that are located in other directories.
   15951 
   15952 @menu
   15953 * rdiff options::               rdiff options
   15954 * rdiff examples::              rdiff examples
   15955 @end menu
   15956 
   15957 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   15958 @node rdiff options
   15959 @appendixsubsec rdiff options
   15960 
   15961 @c <en>These standard options are supported by @code{rdiff}
   15962 @c <en>(@pxref{Common options}, for a complete description of
   15963 @c <en>them):
   15964 These standard options are supported by @code{rdiff}
   15965 (@pxref{Opes comuns}, for a complete description of
   15966 them):
   15967 
   15968 @table @code
   15969 @item -D @var{date}
   15970 Use the most recent revision no later than @var{date}.
   15971 
   15972 @item -f
   15973 If no matching revision is found, retrieve the most
   15974 recent revision (instead of ignoring the file).
   15975 
   15976 @item -l
   15977 Local; don't descend subdirectories.
   15978 
   15979 @item -R
   15980 Examine directories recursively.  This option is on by default.
   15981 
   15982 @item -r @var{tag}
   15983 Use revision @var{tag}.
   15984 @end table
   15985 
   15986 In addition to the above, these options are available:
   15987 
   15988 @table @code
   15989 @item -c
   15990 Use the context diff format.  This is the default format.
   15991 
   15992 @item -s
   15993 Create a summary change report instead of a patch.  The
   15994 summary includes information about files that were
   15995 changed or added between the releases.  It is sent to
   15996 the standard output device.  This is useful for finding
   15997 out, for example, which files have changed between two
   15998 dates or revisions.
   15999 
   16000 @item -t
   16001 A diff of the top two revisions is sent to the standard
   16002 output device.  This is most useful for seeing what the
   16003 last change to a file was.
   16004 
   16005 @item -u
   16006 Use the unidiff format for the context diffs.
   16007 Remember that old versions
   16008 of the @code{patch} program can't handle the unidiff
   16009 format, so if you plan to post this patch to the net
   16010 you should probably not use @samp{-u}.
   16011 
   16012 @item -V @var{vn}
   16013 Expand keywords according to the rules current in
   16014 @sc{rcs} version @var{vn} (the expansion format changed with
   16015 @sc{rcs} version 5).  Note that this option is no
   16016 longer accepted.  @sc{cvs} will always expand keywords the
   16017 way that @sc{rcs} version 5 does.
   16018 @end table
   16019 
   16020 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   16021 @node rdiff examples
   16022 @appendixsubsec rdiff examples
   16023 
   16024 Suppose you receive mail from @t{foo@@example.net} asking for an
   16025 update from release 1.2 to 1.4 of the tc compiler.  You
   16026 have no such patches on hand, but with @sc{cvs} that can
   16027 easily be fixed with a command such as this:
   16028 
   16029 @example
   16030 $ cvs rdiff -c -r FOO1_2 -r FOO1_4 tc | \
   16031 $$ Mail -s 'The patches you asked for' foo@@example.net
   16032 @end example
   16033 
   16034 Suppose you have made release 1.3, and forked a branch
   16035 called @samp{R_1_3fix} for bugfixes.  @samp{R_1_3_1}
   16036 corresponds to release 1.3.1, which was made some time
   16037 ago.  Now, you want to see how much development has been
   16038 done on the branch.  This command can be used:
   16039 
   16040 @example
   16041 $ cvs patch -s -r R_1_3_1 -r R_1_3fix module-name
   16042 cvs rdiff: Diffing module-name
   16043 File ChangeLog,v changed from revision 1.52.2.5 to 1.52.2.6
   16044 File foo.c,v changed from revision 1.52.2.3 to 1.52.2.4
   16045 File bar.h,v changed from revision 1.29.2.1 to 1.2
   16046 @end example
   16047 
   16048 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   16049 @node release
   16050 @appendixsec release---Indicate that a Module is no longer in use
   16051 @cindex release (subcommand)
   16052 
   16053 @itemize @bullet
   16054 @item
   16055 release [-d] directories@dots{}
   16056 @item
   16057 Requires: Working directory.
   16058 @item
   16059 Changes: Working directory, history log.
   16060 @end itemize
   16061 
   16062 @c <en>This command is meant to safely cancel the effect of
   16063 @c <en>@samp{cvs checkout}.  Since @sc{cvs} doesn't lock files, it
   16064 @c <en>isn't strictly necessary to use this command.  You can
   16065 @c <en>always simply delete your working directory, if you
   16066 @c <en>like; but you risk losing changes you may have
   16067 @c <en>forgotten, and you leave no trace in the @sc{cvs} history
   16068 @c <en>file (@pxref{history file}) that you've abandoned your
   16069 @c <en>checkout.
   16070 This command is meant to safely cancel the effect of
   16071 @samp{cvs checkout}.  Since @sc{cvs} doesn't lock files, it
   16072 isn't strictly necessary to use this command.  You can
   16073 always simply delete your working directory, if you
   16074 like; but you risk losing changes you may have
   16075 forgotten, and you leave no trace in the @sc{cvs} history
   16076 file (@pxref{arquivo history (histrico)}) that you've abandoned your
   16077 checkout.
   16078 
   16079 Use @samp{cvs release} to avoid these problems.  This
   16080 command checks that no uncommitted changes are
   16081 present; that you are executing it from immediately
   16082 above a @sc{cvs} working directory; and that the repository
   16083 recorded for your files is the same as the repository
   16084 defined in the module database.
   16085 
   16086 If all these conditions are true, @samp{cvs release}
   16087 leaves a record of its execution (attesting to your
   16088 intentionally abandoning your checkout) in the @sc{cvs}
   16089 history log.
   16090 
   16091 @menu
   16092 * release options::             release options
   16093 * release output::              release output
   16094 * release examples::            release examples
   16095 @end menu
   16096 
   16097 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   16098 @node release options
   16099 @appendixsubsec release options
   16100 
   16101 The @code{release} command supports one command option:
   16102 
   16103 @table @code
   16104 @item -d
   16105 Delete your working copy of the file if the release
   16106 succeeds.  If this flag is not given your files will
   16107 remain in your working directory.
   16108 
   16109 @c <en>@strong{WARNING:  The @code{release} command deletes
   16110 @c <en>all directories and files recursively.  This
   16111 @c <en>has the very serious side-effect that any directory
   16112 @c <en>that you have created inside your checked-out sources,
   16113 @c <en>and not added to the repository (using the @code{add}
   16114 @c <en>command; @pxref{Adding files}) will be silently deleted---even
   16115 @c <en>if it is non-empty!}
   16116 @strong{WARNING:  The @code{release} command deletes
   16117 all directories and files recursively.  This
   16118 has the very serious side-effect that any directory
   16119 that you have created inside your checked-out sources,
   16120 and not added to the repository (using the @code{add}
   16121 command; @pxref{Adicionando arquivos}) will be silently deleted---even
   16122 if it is non-empty!}
   16123 @end table
   16124 
   16125 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   16126 @node release output
   16127 @appendixsubsec release output
   16128 
   16129 Before @code{release} releases your sources it will
   16130 print a one-line message for any file that is not
   16131 up-to-date.
   16132 
   16133 @table @code
   16134 @item U @var{file}
   16135 @itemx P @var{file}
   16136 There exists a newer revision of this file in the
   16137 repository, and you have not modified your local copy
   16138 of the file (@samp{U} and @samp{P} mean the same thing).
   16139 
   16140 @item A @var{file}
   16141 The file has been added to your private copy of the
   16142 sources, but has not yet been committed to the
   16143 repository.  If you delete your copy of the sources
   16144 this file will be lost.
   16145 
   16146 @item R @var{file}
   16147 The file has been removed from your private copy of the
   16148 sources, but has not yet been removed from the
   16149 repository, since you have not yet committed the
   16150 removal.  @xref{commit}.
   16151 
   16152 @item M @var{file}
   16153 The file is modified in your working directory.  There
   16154 might also be a newer revision inside the repository.
   16155 
   16156 @item ? @var{file}
   16157 @var{file} is in your working directory, but does not
   16158 correspond to anything in the source repository, and is
   16159 not in the list of files for @sc{cvs} to ignore (see the
   16160 description of the @samp{-I} option, and
   16161 @pxref{cvsignore}).  If you remove your working
   16162 sources, this file will be lost.
   16163 @end table
   16164 
   16165 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   16166 @node release examples
   16167 @appendixsubsec release examples
   16168 
   16169 Release the @file{tc} directory, and delete your local working copy
   16170 of the files.
   16171 
   16172 @example
   16173 $ cd ..         # @r{You must stand immediately above the}
   16174                 # @r{sources when you issue @samp{cvs release}.}
   16175 $ cvs release -d tc
   16176 You have [0] altered files in this repository.
   16177 Are you sure you want to release (and delete) directory `tc': y
   16178 $
   16179 @end example
   16180 
   16181 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   16182 @node update
   16183 @appendixsec update---Bring work tree in sync with repository
   16184 @cindex update (subcommand)
   16185 
   16186 @itemize @bullet
   16187 @item
   16188 update [-ACdflPpR] [-I name] [-j rev [-j rev]] [-k kflag] [-r tag|-D date] [-W spec] files@dots{}
   16189 @item
   16190 Requires: repository, working directory.
   16191 @item
   16192 Changes: working directory.
   16193 @end itemize
   16194 
   16195 After you've run checkout to create your private copy
   16196 of source from the common repository, other developers
   16197 will continue changing the central source.  From time
   16198 to time, when it is convenient in your development
   16199 process, you can use the @code{update} command from
   16200 within your working directory to reconcile your work
   16201 with any revisions applied to the source repository
   16202 since your last checkout or update.  Without the @code{-C}
   16203 option, @code{update} will also merge any differences
   16204 between the local copy of files and their base revisions
   16205 into any destination revisions specified with @code{-r},
   16206 @code{-D}, or @code{-A}.
   16207 
   16208 @menu
   16209 * update options::              update options
   16210 * update output::               update output
   16211 @end menu
   16212 
   16213 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   16214 @node update options
   16215 @appendixsubsec update options
   16216 
   16217 @c <en>These standard options are available with @code{update}
   16218 @c <en>(@pxref{Common options}, for a complete description of
   16219 @c <en>them):
   16220 These standard options are available with @code{update}
   16221 (@pxref{Opes comuns}, for a complete description of
   16222 them):
   16223 
   16224 @table @code
   16225 @c <en>@item -D date
   16226 @item -D date
   16227 @c <en>Use the most recent revision no later than @var{date}.
   16228 @c <en>This option is sticky, and implies @samp{-P}.
   16229 @c <en>See @ref{Sticky tags}, for more information on sticky tags/dates.
   16230 Use the most recent revision no later than @var{date}.
   16231 This option is sticky, and implies @samp{-P}.
   16232 See @ref{Etiquetas adesivas}, for more information on sticky tags/dates.
   16233 
   16234 @item -f
   16235 Only useful with the @samp{-D @var{date}} or @samp{-r
   16236 @var{tag}} flags.  If no matching revision is found,
   16237 retrieve the most recent revision (instead of ignoring
   16238 the file).
   16239 
   16240 @c <en>@item -k @var{kflag}
   16241 @item -k @var{kflag}
   16242 @c <en>Process keywords according to @var{kflag}.  See
   16243 @c <en>@ref{Keyword substitution}.
   16244 @c <en>This option is sticky; future updates of
   16245 @c <en>this file in this working directory will use the same
   16246 @c <en>@var{kflag}.  The @code{status} command can be viewed
   16247 @c <en>to see the sticky options.  See @ref{Invoking CVS}, for
   16248 @c <en>more information on the @code{status} command.
   16249 Process keywords according to @var{kflag}.  See
   16250 @ref{Substituio de palavra-chave}.
   16251 This option is sticky; future updates of
   16252 this file in this working directory will use the same
   16253 @var{kflag}.  The @code{status} command can be viewed
   16254 to see the sticky options.  See @ref{Chamando o CVS}, for
   16255 more information on the @code{status} command.
   16256 
   16257 @c <en>@item -l
   16258 @item -l
   16259 @c <en>Local; run only in current working directory.  @xref{Recursive behavior}.
   16260 Local; run only in current working directory.  @xref{Comportamento recursivo}.
   16261 
   16262 @c <en>@item -P
   16263 @item -P
   16264 @c <en>Prune empty directories.  See @ref{Moving directories}.
   16265 Prune empty directories.  See @ref{Movendo diretrios}.
   16266 
   16267 @c <en>@item -p
   16268 @item -p
   16269 @c <en>Pipe files to the standard output.
   16270 Pipe files to the standard output.
   16271 
   16272 @c <en>@item -R
   16273 @item -R
   16274 @c <en>Update directories recursively (default).  @xref{Recursive
   16275 @c <en>behavior}.
   16276 Update directories recursively (default).
   16277 @xref{Comportamento recursivo}.
   16278 
   16279 @c <en>@item -r rev
   16280 @item -r rev
   16281 @c <en>Retrieve revision/tag @var{rev}.  This option is sticky,
   16282 @c <en>and implies @samp{-P}.
   16283 @c <en>See @ref{Sticky tags}, for more information on sticky tags/dates.
   16284 Retrieve revision/tag @var{rev}.  This option is sticky,
   16285 and implies @samp{-P}.
   16286 See @ref{Etiquetas adesivas}, for more information on sticky tags/dates.
   16287 @end table
   16288 
   16289 @need 800
   16290 These special options are also available with
   16291 @code{update}.
   16292 
   16293 @table @code
   16294 @c <en>@item -A
   16295 @item -A
   16296 @c <en>Reset any sticky tags, dates, or @samp{-k} options.
   16297 @c <en>See @ref{Sticky tags}, for more information on sticky tags/dates.
   16298 Reset any sticky tags, dates, or @samp{-k} options.
   16299 See @ref{Etiquetas adesivas}, for more information on sticky tags/dates.
   16300 
   16301 @item -C
   16302 Overwrite locally modified files with clean copies from
   16303 the repository (the modified file is saved in
   16304 @file{.#@var{file}.@var{revision}}, however).
   16305 
   16306 @item -d
   16307 Create any directories that exist in the repository if
   16308 they're missing from the working directory.  Normally,
   16309 @code{update} acts only on directories and files that
   16310 were already enrolled in your working directory.
   16311 
   16312 This is useful for updating directories that were
   16313 created in the repository since the initial checkout;
   16314 but it has an unfortunate side effect.  If you
   16315 deliberately avoided certain directories in the
   16316 repository when you created your working directory
   16317 (either through use of a module name or by listing
   16318 explicitly the files and directories you wanted on the
   16319 command line), then updating with @samp{-d} will create
   16320 those directories, which may not be what you want.
   16321 
   16322 @item -I @var{name}
   16323 Ignore files whose names match @var{name} (in your
   16324 working directory) during the update.  You can specify
   16325 @samp{-I} more than once on the command line to specify
   16326 several files to ignore.  Use @samp{-I !} to avoid
   16327 ignoring any files at all.  @xref{cvsignore}, for other
   16328 ways to make @sc{cvs} ignore some files.
   16329 
   16330 @item -W@var{spec}
   16331 Specify file names that should be filtered during
   16332 update.  You can use this option repeatedly.
   16333 
   16334 @var{spec} can be a file name pattern of the same type
   16335 that you can specify in the @file{.cvswrappers}
   16336 file. @xref{Wrappers}.
   16337 
   16338 @item -j@var{revision}
   16339 With two @samp{-j} options, merge changes from the
   16340 revision specified with the first @samp{-j} option to
   16341 the revision specified with the second @samp{j} option,
   16342 into the working directory.
   16343 
   16344 With one @samp{-j} option, merge changes from the
   16345 ancestor revision to the revision specified with the
   16346 @samp{-j} option, into the working directory.  The
   16347 ancestor revision is the common ancestor of the
   16348 revision which the working directory is based on, and
   16349 the revision specified in the @samp{-j} option.
   16350 
   16351 @c <en>Note that using a single @samp{-j @var{tagname}} option rather than
   16352 @c <en>@samp{-j @var{branchname}} to merge changes from a branch will
   16353 @c <en>often not remove files which were removed on the branch.
   16354 @c <en>@xref{Merging adds and removals}, for more.
   16355 Note that using a single @samp{-j @var{tagname}} option rather than
   16356 @samp{-j @var{branchname}} to merge changes from a branch will
   16357 often not remove files which were removed on the branch.
   16358 @xref{Mesclando adicionados e removidos}, for more.
   16359 
   16360 In addition, each @samp{-j} option can contain an optional
   16361 date specification which, when used with branches, can
   16362 limit the chosen revision to one within a specific
   16363 date.  An optional date is specified by adding a colon
   16364 (:) to the tag:
   16365 @samp{-j@var{Symbolic_Tag}:@var{Date_Specifier}}.
   16366 
   16367 @c <en>@xref{Branching and merging}.
   16368 @xref{Ramificando e mesclando}.
   16369 
   16370 @end table
   16371 
   16372 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   16373 @c <en>@node update output
   16374 @node update output
   16375 @c <en>@appendixsubsec update output
   16376 @appendixsubsec update output
   16377 
   16378 @c <en>@code{update} and @code{checkout} keep you informed of
   16379 @c <en>their progress by printing a line for each file, preceded
   16380 @c <en>by one character indicating the status of the file:
   16381 O @code{update} e o @code{checkout} mantm voc
   16382 informado de seu progresso escrevendo uma linha para
   16383 cada arquivo, iniciando com um caractere que indica o
   16384 status do arquivo:
   16385 
   16386 @table @code
   16387 @c <en>@item U @var{file}
   16388 @item U @var{arquivo}
   16389 @c <en>The file was brought up to date with respect to the
   16390 @c <en>repository.  This is done for any file that exists in
   16391 @c <en>the repository but not in your source, and for files
   16392 @c <en>that you haven't changed but are not the most recent
   16393 @c <en>versions available in the repository.
   16394 O arquivo foi atualizado com base no repositrio.  Isto
   16395  feito para qualquer arquivo que exista no
   16396 repositrio mas no esteja nos seus fontes (no seu
   16397 diretrio da trabalho) e para arquivos que voc no
   16398 mudou mas no esto na verso mais recente que est
   16399 disponvel no repositrio.
   16400 
   16401 @c <en>@item P @var{file}
   16402 @item P @var{arquivo}
   16403 @c <en>Like @samp{U}, but the @sc{cvs} server sends a patch instead of an entire
   16404 @c <en>file.  This accomplishes the same thing as @samp{U} using less bandwidth.
   16405 
   16406 Como o @samp{U}, mas o servidor @sc{cvs} manda um patch
   16407 (remendo) ao invs de mandar um arquivo inteiro.  Tem o
   16408 mesmo resultado que @samp{U} usando menos largura de banda.
   16409 
   16410 @c <en>@item A @var{file}
   16411 @item A @var{arquivo}
   16412 @c <en>The file has been added to your private copy of the
   16413 @c <en>sources, and will be added to the source repository
   16414 @c <en>when you run @code{commit} on the file.  This is a
   16415 @c <en>reminder to you that the file needs to be committed.
   16416 O arquivo foi adicionado a sua cpia local dos fontes,
   16417 e vai ser adicionado ao repositrio quando voc rodar o
   16418 @code{commit} no arquivo.  Funciona como um lembrete de
   16419 que o arquivo precisa ser ???commitado???.
   16420 
   16421 @c <en>@item R @var{file}
   16422 @item R @var{arquivo}
   16423 @c <en>The file has been removed from your private copy of the
   16424 @c <en>sources, and will be removed from the source repository
   16425 @c <en>when you run @code{commit} on the file.  This is a
   16426 @c <en>reminder to you that the file needs to be committed.
   16427 O arquivo foi removido de sua cpia local dos fontes, e
   16428 ser removido do repositrio quando voc executar um
   16429 @code{commit} no arquivo.  Funciona como um lembrete de
   16430 que o arquivo precisa ser ???commitado???.
   16431 
   16432 @c <en>@item M @var{file}
   16433 @item M @var{arquivo}
   16434 @c <en>The file is modified in  your  working  directory.
   16435 O arquivo est modificado no seu diretrio de trabalho.
   16436 
   16437 @c <en>@samp{M} can indicate one of two states for a file
   16438 @c <en>you're working on: either there were no modifications
   16439 @c <en>to the same file in the repository, so that your file
   16440 @c <en>remains as you last saw it; or there were modifications
   16441 @c <en>in the repository as well as in your copy, but they
   16442 @c <en>were merged successfully, without conflict, in your
   16443 @c <en>working directory.
   16444 O @samp{M} pode indicar um dos dois estados para um
   16445 arquivo no qual voc esteja trabalhando: ou no existem
   16446 modificaes do arquivo equivalente no repositrio, de forma
   16447 que seu arquivo continua da forma como voc o deixou;
   16448 ou existem modificaes no repositrio assim como na
   16449 sua cpia, mas elas foram mescladas com sucesso, sem
   16450 conflito, no seu diretrio de trabalho.
   16451 
   16452 @c <en>@sc{cvs} will print some messages if it merges your work,
   16453 @c <en>and a backup copy of your working file (as it looked
   16454 @c <en>before you ran @code{update}) will be made.  The exact
   16455 @c <en>name of that file is printed while @code{update} runs.
   16456 O @sc{cvs} vai escrever algumas mensagens se ele
   16457 mesclar seu trabalho, e colocar uma cpia de segurana no seu
   16458 diretrio de trabalho (na forma que estava antes de
   16459 executar o @code{update}).  O nome exato do arquivo
   16460 ser escrito quando o @code{update} rodar.
   16461 
   16462 @c <en>@item C @var{file}
   16463 @item C @var{arquivo}
   16464 @c <en>@cindex .# files
   16465 @cindex arquivos .#
   16466 @c <en>@cindex __ files (VMS)
   16467 @cindex __ arquivos (VMS)
   16468 @c <en>A conflict was detected while trying to merge your
   16469 @c <en>changes to @var{file} with changes from the source
   16470 @c <en>repository.  @var{file} (the copy in your working
   16471 @c <en>directory) is now the result of attempting to merge
   16472 @c <en>the two revisions; an unmodified copy of your file
   16473 @c <en>is also in your working directory, with the name
   16474 @c <en>@file{.#@var{file}.@var{revision}} where @var{revision}
   16475 @c <en>is the revision that your modified file started
   16476 @c <en>from.  Resolve the conflict as described in
   16477 @c <en>@ref{Conflicts example}.
   16478 Um conflito foi detectado quando se tentava mesclar
   16479 suas mudanas no @var{arquivo} com as mudanas no
   16480 repositrio.  O @var{arquivo} (a cpia no seu diretrio
   16481 de trabalho)  agora o resultado da tentativa de
   16482 mesclar as duas revises; uma cpia inalterada do
   16483 arquivo tambm est no diretrio de trabalho, com o
   16484 nome de @file{.#@var{arquivo}.@var{reviso}} onde
   16485 @var{reviso}  a reviso de onde o seu arquivo
   16486 modificado saiu.  Resolva o conflito como  mostrado em
   16487 @ref{Exemplo de conflitos}.
   16488 @c "some systems" as in out-of-the-box OSes?  Not as
   16489 @c far as I know.  We need to advise sysadmins as well
   16490 @c as users how to set up this kind of purge, if that is
   16491 @c what they want.
   16492 @c We also might want to think about cleaner solutions,
   16493 @c like having CVS remove the .# file once the conflict
   16494 @c has been resolved or something like that.
   16495 @c <en>(Note that some systems automatically purge
   16496 @c <en>files that begin with @file{.#} if they have not been
   16497 @c <en>accessed for a few days.  If you intend to keep a copy
   16498 @c <en>of your original file, it is a very good idea to rename
   16499 @c <en>it.)  Under @sc{vms}, the file name starts with
   16500 @c <en>@file{__} rather than @file{.#}.
   16501 (Note que alguns sistemas eliminam automaticamente
   16502 arquivos que comeam com @file{.#} se eles no so
   16503 acessados por alguns dias.  Se voc pretende manter uma
   16504 cpia do arquivo original,  um tima idia
   16505 renome-lo.)  No @sc{vms}, o nome do arquivo comea com
   16506 @file{__} ao invs de @file{.#}.
   16507 
   16508 @c <en>@item ? @var{file}
   16509 @item ? @var{arquivo}
   16510 @c <en>@var{file} is in your working directory, but does not
   16511 @c <en>correspond to anything in the source repository, and is
   16512 @c <en>not in the list of files for @sc{cvs} to ignore (see the
   16513 @c <en>description of the @samp{-I} option, and
   16514 @c <en>@pxref{cvsignore}).
   16515 O @var{arquivo} is in your working directory, but does not
   16516 correspond to anything in the source repository, and is
   16517 not in the list of files for @sc{cvs} to ignore (see the
   16518 description of the @samp{-I} option, and
   16519 @pxref{cvsignore}).
   16520 @end table
   16521 
   16522 @c <en>@node Invoking CVS
   16523 @node Chamando o CVS
   16524 @c <en>@appendix Quick reference to CVS commands
   16525 @appendix Quick reference to CVS commands
   16526 @c <en>@cindex Command reference
   16527 @cindex Command reference
   16528 @c <en>@cindex Reference, commands
   16529 @cindex Reference, commands
   16530 @c <en>@cindex Invoking CVS
   16531 @cindex Chamando o CVS
   16532 
   16533 @c <en>This appendix describes how to invoke @sc{cvs}, with
   16534 @c <en>references to where each command or feature is
   16535 @c <en>described in detail.  For other references run the
   16536 @c <en>@code{cvs --help} command, or see @ref{Index}.
   16537 This appendix describes how to invoke @sc{cvs}, with
   16538 references to where each command or feature is
   16539 described in detail.  For other references run the
   16540 @code{cvs --help} command, or see @ref{Indice}.
   16541 
   16542 @c <en>A @sc{cvs} command looks like:
   16543 A @sc{cvs} command looks like:
   16544 
   16545 @example
   16546 cvs [ @var{global_options} ] @var{command} [ @var{command_options} ] [ @var{command_args} ]
   16547 @end example
   16548 
   16549 Global options:
   16550 
   16551 @table @code
   16552 @c <en>@item --allow-root=@var{rootdir}
   16553 @item --allow-root=@var{rootdir}
   16554 @c <en>Specify legal @sc{cvsroot} directory (server only) (not
   16555 @c <en>in @sc{cvs} 1.9 and older).  See @ref{Password
   16556 @c <en>authentication server}.
   16557 Specify legal @sc{cvsroot} directory (server only) (not
   16558 in @sc{cvs} 1.9 and older).  See
   16559 @ref{Servidor de autenticao por senha}.
   16560 
   16561 @c <en>@item -a
   16562 @item -a
   16563 @c <en>Authenticate all communication (client only) (not in @sc{cvs}
   16564 @c <en>1.9 and older).  See @ref{Global options}.
   16565 Authenticate all communication (client only) (not in @sc{cvs}
   16566 1.9 and older).  See @ref{Opes globais}.
   16567 
   16568 @c <en>@item -b
   16569 @item -b
   16570 @c <en>Specify RCS location (@sc{cvs} 1.9 and older).  See
   16571 @c <en>@ref{Global options}.
   16572 Specify RCS location (@sc{cvs} 1.9 and older).  See
   16573 @ref{Opes globais}.
   16574 
   16575 @c <en>@item -d @var{root}
   16576 @item -d @var{root}
   16577 @c <en>Specify the @sc{cvsroot}.  See @ref{Repository}.
   16578 Specify the @sc{cvsroot}.  See @ref{Repositrio}.
   16579 
   16580 @c <en>@item -e @var{editor}
   16581 @item -e @var{editor}
   16582 @c <en>Edit messages with @var{editor}.  See @ref{Committing
   16583 @c <en>your changes}.
   16584 Edit messages with @var{editor}.  See
   16585 @ref{Efetivando suas alteraes}.
   16586 
   16587 @c <en>@item -f
   16588 @item -f
   16589 @c <en>Do not read the @file{~/.cvsrc} file.  See @ref{Global
   16590 @c <en>options}.
   16591 Do not read the @file{~/.cvsrc} file.  See @ref{Opes globais}.
   16592 
   16593 @c <en>@item -H
   16594 @item -H
   16595 @c <en>@itemx --help
   16596 @itemx --help
   16597 @c <en>Print a help message.  See @ref{Global options}.
   16598 Print a help message.  See @ref{Opes globais}.
   16599 
   16600 @c <en>@item -l
   16601 @item -l
   16602 @c <en>Do not log in @file{$CVSROOT/CVSROOT/history} file.  See @ref{Global
   16603 @c <en>options}.
   16604 Do not log in @file{$CVSROOT/CVSROOT/history} file.  See
   16605 @ref{Opes globais}.
   16606 
   16607 @c <en>@item -n
   16608 @item -n
   16609 @c <en>Do not change any files.  See @ref{Global options}.
   16610 Do not change any files.  See @ref{Opes globais}.
   16611 
   16612 @c <en>@item -Q
   16613 @item -Q
   16614 @c <en>Be really quiet.  See @ref{Global options}.
   16615 Be really quiet.  See @ref{Opes globais}.
   16616 
   16617 @c <en>@item -q
   16618 @item -q
   16619 @c <en>Be somewhat quiet.  See @ref{Global options}.
   16620 Be somewhat quiet.  See @ref{Opes globais}.
   16621 
   16622 @c <en>@item -r
   16623 @item -r
   16624 @c <en>Make new working files read-only.  See @ref{Global options}.
   16625 Make new working files read-only.  See @ref{Opes globais}.
   16626 
   16627 @c <en>@item -s @var{variable}=@var{value}
   16628 @item -s @var{variable}=@var{value}
   16629 @c <en>Set a user variable.  See @ref{Variables}.
   16630 Set a user variable.  See @ref{Variables}.
   16631 
   16632 @c <en>@item -T @var{tempdir}
   16633 @item -T @var{tempdir}
   16634 @c <en>Put temporary files in @var{tempdir}.  See @ref{Global
   16635 @c <en>options}.
   16636 Put temporary files in @var{tempdir}.  See
   16637 @ref{Opes globais}.
   16638 
   16639 @c <en>@item -t
   16640 @item -t
   16641 @c <en>Trace @sc{cvs} execution.  See @ref{Global options}.
   16642 Trace @sc{cvs} execution.  See @ref{Opes globais}.
   16643 
   16644 @c <en>@item -v
   16645 @item -v
   16646 @c <en>@item --version
   16647 @item --version
   16648 @c <en>Display version and copyright information for @sc{cvs}.
   16649 Display version and copyright information for @sc{cvs}.
   16650 
   16651 @c <en>@item -w
   16652 @item -w
   16653 @c <en>Make new working files read-write.  See @ref{Global
   16654 @c <en>options}.
   16655 Make new working files read-write.  See @ref{Opes globais}.
   16656 
   16657 @c <en>@item -x
   16658 @item -x
   16659 @c <en>Encrypt all communication (client only).
   16660 @c <en>See @ref{Global options}.
   16661 Encrypt all communication (client only).
   16662 See @ref{Opes globais}.
   16663 
   16664 @c <en>@item -z @var{gzip-level}
   16665 @item -z @var{gzip-level}
   16666 @c <en>@cindex Compression
   16667 @cindex Compression
   16668 @c <en>@cindex Gzip
   16669 @cindex Gzip
   16670 @c <en>Set the compression level (client only).
   16671 @c <en>See @ref{Global options}.
   16672 Set the compression level (client only).
   16673 See @ref{Opes globais}.
   16674 @end table
   16675 
   16676 @c <en>Keyword expansion modes (@pxref{Substitution modes}):
   16677 Keyword expansion modes (@pxref{Modos de substituio}):
   16678 
   16679 @example
   16680 -kkv  $@splitrcskeyword{}Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp $
   16681 -kkvl $@splitrcskeyword{}Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
   16682 -kk   $@splitrcskeyword{}Id$
   16683 -kv   file1,v 1.1 1993/12/09 03:21:13 joe Exp
   16684 -ko   @i{no expansion}
   16685 -kb   @i{no expansion, file is binary}
   16686 @end example
   16687 
   16688 @c <en>Keywords (@pxref{Keyword list}):
   16689 Keywords (@pxref{Lista de palavras-chave}):
   16690 
   16691 @example
   16692 $@splitrcskeyword{}Author: joe $
   16693 $@splitrcskeyword{}Date: 1993/12/09 03:21:13 $
   16694 $@splitrcskeyword{}CVSHeader: files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
   16695 $@splitrcskeyword{}Header: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
   16696 $@splitrcskeyword{}Id: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
   16697 $@splitrcskeyword{}Locker: harry $
   16698 $@splitrcskeyword{}Name: snapshot_1_14 $
   16699 $@splitrcskeyword{}RCSfile: file1,v $
   16700 $@splitrcskeyword{}Revision: 1.1 $
   16701 $@splitrcskeyword{}Source: /home/files/file1,v $
   16702 $@splitrcskeyword{}State: Exp $
   16703 $@splitrcskeyword{}Log: file1,v $
   16704 Revision 1.1  1993/12/09 03:30:17  joe
   16705 Initial revision
   16706 
   16707 @end example
   16708 
   16709 @c The idea behind this table is that we want each item
   16710 @c to be a sentence or two at most.  Preferably a
   16711 @c single line.
   16712 @c
   16713 @c In some cases refs to "foo options" are just to get
   16714 @c this thing written quickly, not because the "foo
   16715 @c options" node is really the best place to point.
   16716 Commands, command options, and command arguments:
   16717 
   16718 @table @code
   16719 @c ------------------------------------------------------------
   16720 @c <en>@item add [@var{options}] [@var{files}@dots{}]
   16721 @item add [@var{options}] [@var{files}@dots{}]
   16722 @c <en>Add a new file/directory.  See @ref{Adding files}.
   16723 Add a new file/directory.  See @ref{Adicionando arquivos}.
   16724 
   16725 @table @code
   16726 @c <en>@item -k @var{kflag}
   16727 @item -k @var{kflag}
   16728 @c <en>Set keyword expansion.
   16729 Set keyword expansion.
   16730 
   16731 @c <en>@item -m @var{msg}
   16732 @item -m @var{msg}
   16733 @c <en>Set file description.
   16734 Set file description.
   16735 @end table
   16736 
   16737 @c ------------------------------------------------------------
   16738 @c <en>@item admin [@var{options}] [@var{files}@dots{}]
   16739 @item admin [@var{options}] [@var{files}@dots{}]
   16740 @c <en>Administration of history files in the repository.  See
   16741 @c <en>@ref{admin}.
   16742 Administration of history files in the repository.  See
   16743 @ref{admin}.
   16744 @c This list omits those options which are not
   16745 @c documented as being useful with CVS.  That might be
   16746 @c a mistake...
   16747 
   16748 @table @code
   16749 @c <en>@item -b[@var{rev}]
   16750 @item -b[@var{rev}]
   16751 @c <en>Set default branch.  See @ref{Reverting local changes}.
   16752 Set default branch.  See @ref{Reverting local changes}.
   16753 
   16754 @c <en>@item -c@var{string}
   16755 @item -c@var{string}
   16756 @c <en>Set comment leader.
   16757 Set comment leader.
   16758 
   16759 @c <en>@item -k@var{subst}
   16760 @item -k@var{subst}
   16761 @c <en>Set keyword substitution.  See @ref{Keyword
   16762 @c <en>substitution}.
   16763 Set keyword substitution.  See @ref{Substituio de palavra-chave}.
   16764 
   16765 @c <en>@item -l[@var{rev}]
   16766 @item -l[@var{rev}]
   16767 @c <en>Lock revision @var{rev}, or latest revision.
   16768 Lock revision @var{rev}, or latest revision.
   16769 
   16770 @c <en>@item -m@var{rev}:@var{msg}
   16771 @item -m@var{rev}:@var{msg}
   16772 @c <en>Replace the log message of revision @var{rev} with
   16773 @c <en>@var{msg}.
   16774 Replace the log message of revision @var{rev} with
   16775 @var{msg}.
   16776 
   16777 @c <en>@item -o@var{range}
   16778 @item -o@var{range}
   16779 @c <en>Delete revisions from the repository.  See
   16780 @c <en>@ref{admin options}.
   16781 Delete revisions from the repository.  See
   16782 @ref{admin options}.
   16783 
   16784 @c <en>@item -q
   16785 @item -q
   16786 @c <en>Run quietly; do not print diagnostics.
   16787 Run quietly; do not print diagnostics.
   16788 
   16789 @c <en>@item -s@var{state}[:@var{rev}]
   16790 @item -s@var{state}[:@var{rev}]
   16791 @c <en>Set the state.
   16792 Set the state.
   16793 
   16794 @c Does not work for client/server CVS
   16795 @c <en>@item -t
   16796 @item -t
   16797 @c <en>Set file description from standard input.
   16798 Set file description from standard input.
   16799 
   16800 @c <en>@item -t@var{file}
   16801 @item -t@var{file}
   16802 @c <en>Set file description from @var{file}.
   16803 Set file description from @var{file}.
   16804 
   16805 @c <en>@item -t-@var{string}
   16806 @item -t-@var{string}
   16807 @c <en>Set file description to @var{string}.
   16808 Set file description to @var{string}.
   16809 
   16810 @c <en>@item -u[@var{rev}]
   16811 @item -u[@var{rev}]
   16812 @c <en>Unlock revision @var{rev}, or latest revision.
   16813 Unlock revision @var{rev}, or latest revision.
   16814 @end table
   16815 
   16816 @c ------------------------------------------------------------
   16817 @c <en>@item annotate [@var{options}] [@var{files}@dots{}]
   16818 @item annotate [@var{options}] [@var{files}@dots{}]
   16819 @c <en>Show last revision where each line was modified.  See
   16820 @c <en>@ref{annotate}.
   16821 Show last revision where each line was modified.  See
   16822 @ref{annotate}.
   16823 
   16824 @table @code
   16825 @c <en>@item -D @var{date}
   16826 @item -D @var{date}
   16827 @c <en>Annotate the most recent revision no later than
   16828 @c <en>@var{date}.  See @ref{Common options}.
   16829 Annotate the most recent revision no later than
   16830 @var{date}.  See @ref{Opes comuns}.
   16831 
   16832 @c <en>@item -F
   16833 @item -F
   16834 @c <en>Force annotation of binary files.  (Without this option,
   16835 @c <en>binary files are skipped with a message.)
   16836 Force annotation of binary files.  (Without this option,
   16837 binary files are skipped with a message.)
   16838 
   16839 @c <en>@item -f
   16840 @item -f
   16841 @c <en>Use head revision if tag/date not found.  See
   16842 @c <en>@ref{Common options}.
   16843 Use head revision if tag/date not found.  See
   16844 @ref{Opes comuns}.
   16845 
   16846 @c <en>@item -l
   16847 @item -l
   16848 @c <en>Local; run only in current working directory.  @xref{Recursive behavior}.
   16849 Local; run only in current working directory.  @xref{Comportamento recursivo}.
   16850 
   16851 @c <en>@item -R
   16852 @item -R
   16853 @c <en>Operate recursively (default).  @xref{Recursive
   16854 @c <en>behavior}.
   16855 Operate recursively (default).
   16856 @xref{Comportamento recursivo}.
   16857 
   16858 @c <en>@item -r @var{tag}
   16859 @item -r @var{tag}
   16860 @c <en>Annotate revision @var{tag}.  See @ref{Common options}.
   16861 Annotate revision @var{tag}.  See @ref{Opes comuns}.
   16862 @end table
   16863 
   16864 @c ------------------------------------------------------------
   16865 @c <en>@item checkout [@var{options}] @var{modules}@dots{}
   16866 @item checkout [@var{options}] @var{modules}@dots{}
   16867 @c <en>Get a copy of the sources.  See @ref{checkout}.
   16868 Get a copy of the sources.  See @ref{checkout}.
   16869 
   16870 @table @code
   16871 @c <en>@item -A
   16872 @item -A
   16873 @c <en>Reset any sticky tags/date/options.  See @ref{Sticky
   16874 @c <en>tags} and @ref{Keyword substitution}.
   16875 Reset any sticky tags/date/options.  See @ref{Etiquetas adesivas}
   16876 and @ref{Substituio de palavra-chave}.
   16877 
   16878 @c <en>@item -c
   16879 @item -c
   16880 @c <en>Output the module database.  See @ref{checkout options}.
   16881 Output the module database.  See @ref{checkout options}.
   16882 
   16883 @c <en>@item -D @var{date}
   16884 @item -D @var{date}
   16885 @c <en>Check out revisions as of @var{date} (is sticky).  See
   16886 @c <en>@ref{Common options}.
   16887 Check out revisions as of @var{date} (is sticky).  See
   16888 @ref{Opes comuns}.
   16889 
   16890 @c <en>@item -d @var{dir}
   16891 @item -d @var{dir}
   16892 @c <en>Check out into @var{dir}.  See @ref{checkout options}.
   16893 Check out into @var{dir}.  See @ref{checkout options}.
   16894 
   16895 @c <en>@item -f
   16896 @item -f
   16897 @c <en>Use head revision if tag/date not found.  See
   16898 @c <en>@ref{Common options}.
   16899 Use head revision if tag/date not found.  See
   16900 @ref{Opes comuns}.
   16901 
   16902 @c Probably want to use rev1/rev2 style like for diff
   16903 @c -r.  Here and in on-line help.
   16904 @c <en>@item -j @var{rev}
   16905 @item -j @var{rev}
   16906 @c <en>Merge in changes.  See @ref{checkout options}.
   16907 Merge in changes.  See @ref{checkout options}.
   16908 
   16909 @c <en>@item -k @var{kflag}
   16910 @item -k @var{kflag}
   16911 @c <en>Use @var{kflag} keyword expansion.  See
   16912 @c <en>@ref{Substitution modes}.
   16913 Use @var{kflag} keyword expansion.  See
   16914 @ref{Modos de substituio}.
   16915 
   16916 @c <en>@item -l
   16917 @item -l
   16918 @c <en>Local; run only in current working directory.  @xref{Recursive behavior}.
   16919 Local; run only in current working directory.  @xref{Comportamento recursivo}.
   16920 
   16921 @c <en>@item -N
   16922 @item -N
   16923 @c <en>Don't ``shorten'' module paths if -d specified.  See
   16924 @c <en>@ref{checkout options}.
   16925 Don't ``shorten'' module paths if -d specified.  See
   16926 @ref{checkout options}.
   16927 
   16928 @c <en>@item -n
   16929 @item -n
   16930 @c <en>Do not run module program (if any).  See @ref{checkout options}.
   16931 Do not run module program (if any).  See @ref{checkout options}.
   16932 
   16933 @c <en>@item -P
   16934 @item -P
   16935 @c <en>Prune empty directories.  See @ref{Moving directories}.
   16936 Prune empty directories.  See @ref{Movendo diretrios}.
   16937 
   16938 @c <en>@item -p
   16939 @item -p
   16940 @c <en>Check out files to standard output (avoids
   16941 @c <en>stickiness).  See @ref{checkout options}.
   16942 Check out files to standard output (avoids
   16943 stickiness).  See @ref{checkout options}.
   16944 
   16945 @c <en>@item -R
   16946 @item -R
   16947 @c <en>Operate recursively (default).  @xref{Recursive
   16948 @c <en>behavior}.
   16949 Operate recursively (default).  @xref{Comportamento recursivo}.
   16950 
   16951 @c <en>@item -r @var{tag}
   16952 @item -r @var{tag}
   16953 @c <en>Checkout revision @var{tag} (is sticky).  See @ref{Common options}.
   16954 Checkout revision @var{tag} (is sticky).  See @ref{Opes comuns}.
   16955 
   16956 @c <en>@item -s
   16957 @item -s
   16958 @c <en>Like -c, but include module status.  See @ref{checkout options}.
   16959 Like -c, but include module status.  See @ref{checkout options}.
   16960 @end table
   16961 
   16962 @c ------------------------------------------------------------
   16963 @c <en>@item commit [@var{options}] [@var{files}@dots{}]
   16964 @item commit [@var{options}] [@var{files}@dots{}]
   16965 @c <en>Check changes into the repository.  See @ref{commit}.
   16966 Check changes into the repository.  See @ref{commit}.
   16967 
   16968 @table @code
   16969 @c <en>@item -F @var{file}
   16970 @item -F @var{file}
   16971 @c <en>Read log message from @var{file}.  See @ref{commit options}.
   16972 Read log message from @var{file}.  See @ref{commit options}.
   16973 
   16974 @c <en>@item -f
   16975 @item -f
   16976 @c What is this "disables recursion"?  It is from the
   16977 @c on-line help; is it documented in this manual?
   16978 @c <en>Force the file to be committed; disables recursion.
   16979 @c <en>See @ref{commit options}.
   16980 Force the file to be committed; disables recursion.
   16981 See @ref{commit options}.
   16982 
   16983 @c <en>@item -l
   16984 @item -l
   16985 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   16986 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   16987 
   16988 @c <en>@item -m @var{msg}
   16989 @item -m @var{msg}
   16990 @c <en>Use @var{msg} as log message.  See @ref{commit options}.
   16991 Use @var{msg} as log message.  See @ref{commit options}.
   16992 
   16993 @c <en>@item -n
   16994 @item -n
   16995 @c <en>Do not run module program (if any).  See @ref{commit options}.
   16996 Do not run module program (if any).  See @ref{commit options}.
   16997 
   16998 @c <en>@item -R
   16999 @item -R
   17000 @c <en>Operate recursively (default).  @xref{Recursive
   17001 @c <en>behavior}.
   17002 Operate recursively (default).  @xref{Comportamento recursivo}.
   17003 
   17004 @c <en>@item -r @var{rev}
   17005 @item -r @var{rev}
   17006 @c <en>Commit to @var{rev}.  See @ref{commit options}.
   17007 Commit to @var{rev}.  See @ref{commit options}.
   17008 @c FIXME: should be dragging over text from
   17009 @c commit options, especially if it can be cleaned up
   17010 @c and made concise enough.
   17011 @end table
   17012 
   17013 @c ------------------------------------------------------------
   17014 @c <en>@item diff [@var{options}] [@var{files}@dots{}]
   17015 @item diff [@var{options}] [@var{files}@dots{}]
   17016 @c <en>Show differences between revisions.  See @ref{diff}.
   17017 @c <en>In addition to the options shown below, accepts a wide
   17018 @c <en>variety of options to control output style, for example
   17019 @c <en>@samp{-c} for context diffs.
   17020 Show differences between revisions.  See @ref{diff}.
   17021 In addition to the options shown below, accepts a wide
   17022 variety of options to control output style, for example
   17023 @samp{-c} for context diffs.
   17024 
   17025 @table @code
   17026 @c <en>@item -D @var{date1}
   17027 @item -D @var{date1}
   17028 @c <en>Diff revision for date against working file.  See
   17029 @c <en>@ref{diff options}.
   17030 Diff revision for date against working file.  See
   17031 @ref{diff options}.
   17032 
   17033 @c <en>@item -D @var{date2}
   17034 @item -D @var{date2}
   17035 @c <en>Diff @var{rev1}/@var{date1} against @var{date2}.  See
   17036 @c <en>@ref{diff options}.
   17037 Diff @var{rev1}/@var{date1} against @var{date2}.  See
   17038 @ref{diff options}.
   17039 
   17040 @c <en>@item -l
   17041 @item -l
   17042 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17043 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17044 
   17045 @c <en>@item -N
   17046 @item -N
   17047 @c <en>Include diffs for added and removed files.  See
   17048 @c <en>@ref{diff options}.
   17049 Include diffs for added and removed files.  See
   17050 @ref{diff options}.
   17051 
   17052 @c <en>@item -R
   17053 @item -R
   17054 @c <en>Operate recursively (default).  @xref{Recursive
   17055 @c <en>behavior}.
   17056 Operate recursively (default).  @xref{Comportamento recursivo}.
   17057 
   17058 @c <en>@item -r @var{rev1}
   17059 @item -r @var{rev1}
   17060 @c <en>Diff revision for @var{rev1} against working file.  See
   17061 @c <en>@ref{diff options}.
   17062 Diff revision for @var{rev1} against working file.  See
   17063 @ref{diff options}.
   17064 
   17065 @c <en>@item -r @var{rev2}
   17066 @item -r @var{rev2}
   17067 @c <en>Diff @var{rev1}/@var{date1} against @var{rev2}.  See @ref{diff options}.
   17068 Diff @var{rev1}/@var{date1} against @var{rev2}.  See @ref{diff options}.
   17069 @end table
   17070 
   17071 @c ------------------------------------------------------------
   17072 @c <en>@item edit [@var{options}] [@var{files}@dots{}]
   17073 @item edit [@var{options}] [@var{files}@dots{}]
   17074 @c <en>Get ready to edit a watched file.  See @ref{Editing files}.
   17075 Get ready to edit a watched file.  See @ref{Editando arquivos}.
   17076 
   17077 @table @code
   17078 @c <en>@item -a @var{actions}
   17079 @item -a @var{actions}
   17080 @c <en>Specify actions for temporary watch, where
   17081 @c <en>@var{actions} is @code{edit}, @code{unedit},
   17082 @c <en>@code{commit}, @code{all}, or @code{none}.  See
   17083 @c <en>@ref{Editing files}.
   17084 Specify actions for temporary watch, where
   17085 @var{actions} is @code{edit}, @code{unedit},
   17086 @code{commit}, @code{all}, or @code{none}.  See
   17087 @ref{Editando arquivos}.
   17088 
   17089 @c <en>@item -l
   17090 @item -l
   17091 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17092 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17093 
   17094 @c <en>@item -R
   17095 @item -R
   17096 @c <en>Operate recursively (default).  @xref{Recursive
   17097 @c <en>behavior}.
   17098 Operate recursively (default).  @xref{Comportamento recursivo}.
   17099 @end table
   17100 
   17101 @c ------------------------------------------------------------
   17102 @c <en>@item editors [@var{options}] [@var{files}@dots{}]
   17103 @item editors [@var{options}] [@var{files}@dots{}]
   17104 @c <en>See who is editing a watched file.  See @ref{Watch information}.
   17105 See who is editing a watched file.  See @ref{Informaes de ???Watch???}.
   17106 
   17107 @table @code
   17108 @c <en>@item -l
   17109 @item -l
   17110 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17111 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17112 
   17113 @c <en>@item -R
   17114 @item -R
   17115 @c <en>Operate recursively (default).  @xref{Recursive
   17116 @c <en>behavior}.
   17117 Operate recursively (default).  @xref{Comportamento recursivo}.
   17118 @end table
   17119 
   17120 @c ------------------------------------------------------------
   17121 @c <en>@item export [@var{options}] @var{modules}@dots{}
   17122 @item export [@var{options}] @var{modules}@dots{}
   17123 @c <en>Export files from @sc{cvs}.  See @ref{export}.
   17124 Export files from @sc{cvs}.  See @ref{export}.
   17125 
   17126 @table @code
   17127 @c <en>@item -D @var{date}
   17128 @item -D @var{date}
   17129 @c <en>Check out revisions as of @var{date}.  See
   17130 @c <en>@ref{Common options}.
   17131 Check out revisions as of @var{date}.  See
   17132 @ref{Opes comuns}.
   17133 
   17134 @c <en>@item -d @var{dir}
   17135 @item -d @var{dir}
   17136 @c <en>Check out into @var{dir}.  See @ref{export options}.
   17137 Check out into @var{dir}.  See @ref{export options}.
   17138 
   17139 @c <en>@item -f
   17140 @item -f
   17141 @c <en>Use head revision if tag/date not found.  See
   17142 @c <en>@ref{Common options}.
   17143 Use head revision if tag/date not found.  See
   17144 @ref{Opes comuns}.
   17145 
   17146 @c <en>@item -k @var{kflag}
   17147 @item -k @var{kflag}
   17148 @c <en>Use @var{kflag} keyword expansion.  See
   17149 @c <en>@ref{Substitution modes}.
   17150 Use @var{kflag} keyword expansion.  See
   17151 @ref{Modos de substituio}.
   17152 
   17153 @c <en>@item -l
   17154 @item -l
   17155 @c <en>Local; run only in current working directory.  @xref{Recursive behavior}.
   17156 Local; run only in current working directory.  @xref{Comportamento recursivo}.
   17157 
   17158 @c <en>@item -N
   17159 @item -N
   17160 @c <en>Don't ``shorten'' module paths if -d specified.  See
   17161 @c <en>@ref{export options}.
   17162 Don't ``shorten'' module paths if -d specified.  See
   17163 @ref{export options}.
   17164 
   17165 @c <en>@item -n
   17166 @item -n
   17167 @c <en>Do not run module program (if any).  See @ref{export options}.
   17168 Do not run module program (if any).  See @ref{export options}.
   17169 
   17170 @c <en>@item -R
   17171 @item -R
   17172 @c <en>Operate recursively (default).  @xref{Recursive
   17173 @c <en>behavior}.
   17174 Operate recursively (default).  @xref{Comportamento recursivo}.
   17175 
   17176 @c <en>@item -r @var{tag}
   17177 @item -r @var{tag}
   17178 @c <en>Checkout revision @var{tag}.  See @ref{Common options}.
   17179 Checkout revision @var{tag}.  See @ref{Opes comuns}.
   17180 @end table
   17181 
   17182 @c ------------------------------------------------------------
   17183 @c <en>@item history [@var{options}] [@var{files}@dots{}]
   17184 @item history [@var{options}] [@var{files}@dots{}]
   17185 @c <en>Show repository access history.  See @ref{history}.
   17186 Show repository access history.  See @ref{history}.
   17187 
   17188 @table @code
   17189 @c <en>@item -a
   17190 @item -a
   17191 @c <en>All users (default is self).  See @ref{history options}.
   17192 All users (default is self).  See @ref{history options}.
   17193 
   17194 @c <en>@item -b @var{str}
   17195 @item -b @var{str}
   17196 @c <en>Back to record with @var{str} in module/file/repos
   17197 @c <en>field.  See @ref{history options}.
   17198 Back to record with @var{str} in module/file/repos
   17199 field.  See @ref{history options}.
   17200 
   17201 @c <en>@item -c
   17202 @item -c
   17203 @c <en>Report on committed (modified) files.  See @ref{history options}.
   17204 Report on committed (modified) files.  See @ref{history options}.
   17205 
   17206 @c <en>@item -D @var{date}
   17207 @item -D @var{date}
   17208 @c <en>Since @var{date}.  See @ref{history options}.
   17209 Since @var{date}.  See @ref{history options}.
   17210 
   17211 @c <en>@item -e
   17212 @item -e
   17213 @c <en>Report on all record types.  See @ref{history options}.
   17214 Report on all record types.  See @ref{history options}.
   17215 
   17216 @c <en>@item -l
   17217 @item -l
   17218 @c <en>Last modified (committed or modified report).  See @ref{history options}.
   17219 Last modified (committed or modified report).  See @ref{history options}.
   17220 
   17221 @c <en>@item -m @var{module}
   17222 @item -m @var{module}
   17223 @c <en>Report on @var{module} (repeatable).  See @ref{history options}.
   17224 Report on @var{module} (repeatable).  See @ref{history options}.
   17225 
   17226 @c <en>@item -n @var{module}
   17227 @item -n @var{module}
   17228 @c <en>In @var{module}.  See @ref{history options}.
   17229 In @var{module}.  See @ref{history options}.
   17230 
   17231 @c <en>@item -o
   17232 @item -o
   17233 @c <en>Report on checked out modules.  See @ref{history options}.
   17234 Report on checked out modules.  See @ref{history options}.
   17235 
   17236 @c <en>@item -p @var{repository}
   17237 @item -p @var{repository}
   17238 @c <en>In @var{repository}.  See @ref{history options}.
   17239 In @var{repository}.  See @ref{history options}.
   17240 
   17241 @c <en>@item -r @var{rev}
   17242 @item -r @var{rev}
   17243 @c <en>Since revision @var{rev}.  See @ref{history options}.
   17244 Since revision @var{rev}.  See @ref{history options}.
   17245 
   17246 @c <en>@item -T
   17247 @item -T
   17248 @c What the @#$@# is a TAG?  Same as a tag?  This
   17249 @c wording is also in the online-line help.
   17250 @c <en>Produce report on all TAGs.  See @ref{history options}.
   17251 Produce report on all TAGs.  See @ref{history options}.
   17252 
   17253 @c <en>@item -t @var{tag}
   17254 @item -t @var{tag}
   17255 @c <en>Since tag record placed in history file (by anyone).
   17256 @c <en>See @ref{history options}.
   17257 Since tag record placed in history file (by anyone).
   17258 See @ref{history options}.
   17259 
   17260 @c <en>@item -u @var{user}
   17261 @item -u @var{user}
   17262 @c <en>For user @var{user} (repeatable).  See @ref{history options}.
   17263 For user @var{user} (repeatable).  See @ref{history options}.
   17264 
   17265 @c <en>@item -w
   17266 @item -w
   17267 @c <en>Working directory must match.  See @ref{history options}.
   17268 Working directory must match.  See @ref{history options}.
   17269 
   17270 @c <en>@item -x @var{types}
   17271 @item -x @var{types}
   17272 @c <en>Report on @var{types}, one or more of
   17273 @c <en>@code{TOEFWUPCGMAR}.  See @ref{history options}.
   17274 Report on @var{types}, one or more of
   17275 @code{TOEFWUPCGMAR}.  See @ref{history options}.
   17276 
   17277 @c <en>@item -z @var{zone}
   17278 @item -z @var{zone}
   17279 @c <en>Output for time zone @var{zone}.  See @ref{history options}.
   17280 Output for time zone @var{zone}.  See @ref{history options}.
   17281 @end table
   17282 
   17283 @c ------------------------------------------------------------
   17284 @c <en>@item import [@var{options}] @var{repository} @var{vendor-tag} @var{release-tags}@dots{}
   17285 @item import [@var{options}] @var{repository} @var{vendor-tag} @var{release-tags}@dots{}
   17286 @c <en>Import files into @sc{cvs}, using vendor branches.  See
   17287 @c <en>@ref{import}.
   17288 Import files into @sc{cvs}, using vendor branches.  See
   17289 @ref{import}.
   17290 
   17291 @table @code
   17292 @c <en>@item -b @var{bra}
   17293 @item -b @var{bra}
   17294 @c <en>Import to vendor branch @var{bra}.  See
   17295 @c <en>@ref{Multiple vendor branches}.
   17296 Import to vendor branch @var{bra}.  See
   17297 @ref{Ramos de fornecedor mltiplos}.
   17298 
   17299 @c <en>@item -d
   17300 @item -d
   17301 @c <en>Use the file's modification time as the time of
   17302 @c <en>import.  See @ref{import options}.
   17303 Use the file's modification time as the time of
   17304 import.  See @ref{import options}.
   17305 
   17306 @c <en>@item -k @var{kflag}
   17307 @item -k @var{kflag}
   17308 @c <en>Set default keyword substitution mode.  See
   17309 @c <en>@ref{import options}.
   17310 Set default keyword substitution mode.  See
   17311 @ref{import options}.
   17312 
   17313 @c <en>@item -m @var{msg}
   17314 @item -m @var{msg}
   17315 @c <en>Use @var{msg} for log message.  See
   17316 @c <en>@ref{import options}.
   17317 Use @var{msg} for log message.  See
   17318 @ref{import options}.
   17319 
   17320 @c <en>@item -I @var{ign}
   17321 @item -I @var{ign}
   17322 @c <en>More files to ignore (! to reset).  See
   17323 @c <en>@ref{import options}.
   17324 More files to ignore (! to reset).  See
   17325 @ref{import options}.
   17326 
   17327 @c <en>@item -W @var{spec}
   17328 @item -W @var{spec}
   17329 @c <en>More wrappers.  See @ref{import options}.
   17330 More wrappers.  See @ref{import options}.
   17331 @end table
   17332 
   17333 @c ------------------------------------------------------------
   17334 @c <en>@item init
   17335 @item init
   17336 @c <en>Create a @sc{cvs} repository if it doesn't exist.  See
   17337 @c <en>@ref{Creating a repository}.
   17338 Create a @sc{cvs} repository if it doesn't exist.  See
   17339 @ref{Criando um repositrio}.
   17340 
   17341 @c ------------------------------------------------------------
   17342 @c <en>@item kserver
   17343 @item kserver
   17344 @c <en>Kerberos authenticated server.
   17345 @c <en>See @ref{Kerberos authenticated}.
   17346 Kerberos authenticated server.
   17347 See @ref{Autenticao kerberos}.
   17348 
   17349 @c ------------------------------------------------------------
   17350 @c <en>@item log [@var{options}] [@var{files}@dots{}]
   17351 @item log [@var{options}] [@var{files}@dots{}]
   17352 @c <en>Print out history information for files.  See @ref{log}.
   17353 Print out history information for files.  See @ref{log}.
   17354 
   17355 @table @code
   17356 @c <en>@item -b
   17357 @item -b
   17358 @c <en>Only list revisions on the default branch.  See @ref{log options}.
   17359 Only list revisions on the default branch.  See @ref{log options}.
   17360 
   17361 @c <en>@item -d @var{dates}
   17362 @item -d @var{dates}
   17363 @c <en>Specify dates (@var{d1}<@var{d2} for range, @var{d} for
   17364 @c <en>latest before).  See @ref{log options}.
   17365 Specify dates (@var{d1}<@var{d2} for range, @var{d} for
   17366 latest before).  See @ref{log options}.
   17367 
   17368 @c <en>@item -h
   17369 @item -h
   17370 @c <en>Only print header.  See @ref{log options}.
   17371 Only print header.  See @ref{log options}.
   17372 
   17373 @c <en>@item -l
   17374 @item -l
   17375 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17376 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17377 
   17378 @c <en>@item -N
   17379 @item -N
   17380 @c <en>Do not list tags.  See @ref{log options}.
   17381 Do not list tags.  See @ref{log options}.
   17382 
   17383 @c <en>@item -R
   17384 @item -R
   17385 @c <en>Only print name of RCS file.  See @ref{log options}.
   17386 Only print name of RCS file.  See @ref{log options}.
   17387 
   17388 @c <en>@item -r@var{revs}
   17389 @item -r@var{revs}
   17390 @c <en>Only list revisions @var{revs}.  See @ref{log options}.
   17391 Only list revisions @var{revs}.  See @ref{log options}.
   17392 
   17393 @c <en>@item -s @var{states}
   17394 @item -s @var{states}
   17395 @c <en>Only list revisions with specified states.  See @ref{log options}.
   17396 Only list revisions with specified states.  See @ref{log options}.
   17397 
   17398 @c <en>@item -t
   17399 @item -t
   17400 @c <en>Only print header and descriptive text.  See @ref{log
   17401 @c <en>options}.
   17402 Only print header and descriptive text.  See @ref{log
   17403 options}.
   17404 
   17405 @c <en>@item -w@var{logins}
   17406 @item -w@var{logins}
   17407 @c <en>Only list revisions checked in by specified logins.  See @ref{log options}.
   17408 Only list revisions checked in by specified logins.  See @ref{log options}.
   17409 @end table
   17410 
   17411 @c ------------------------------------------------------------
   17412 @c <en>@item login
   17413 @item login
   17414 @c <en>Prompt for password for authenticating server.  See
   17415 @c <en>@ref{Password authentication client}.
   17416 Pede por uma senha para o servidor de autenticao.  Veja em
   17417 @ref{Cliente de autenticao por senha}.
   17418 
   17419 @c ------------------------------------------------------------
   17420 @c <en>@item logout
   17421 @item logout
   17422 @c <en>Remove stored password for authenticating server.  See
   17423 @c <en>@ref{Password authentication client}.
   17424 Remove senhas armazenadas para a autenticao no servidor.  Veja em
   17425 @ref{Cliente de autenticao por senha}.
   17426 
   17427 @c ------------------------------------------------------------
   17428 @c <en>@item pserver
   17429 @item pserver
   17430 @c <en>Password authenticated server.
   17431 @c <en>See @ref{Password authentication server}.
   17432 Password authenticated server.
   17433 See @ref{Servidor de autenticao por senha}.
   17434 
   17435 @c ------------------------------------------------------------
   17436 @c <en>@item rannotate [@var{options}] [@var{modules}@dots{}]
   17437 @item rannotate [@var{options}] [@var{modules}@dots{}]
   17438 @c <en>Show last revision where each line was modified.  See
   17439 @c <en>@ref{annotate}.
   17440 Show last revision where each line was modified.  See
   17441 @ref{annotate}.
   17442 
   17443 @table @code
   17444 @c <en>@item -D @var{date}
   17445 @item -D @var{date}
   17446 @c <en>Annotate the most recent revision no later than
   17447 @c <en>@var{date}.  See @ref{Common options}.
   17448 Annotate the most recent revision no later than
   17449 @var{date}.  See @ref{Opes comuns}.
   17450 
   17451 @c <en>@item -F
   17452 @item -F
   17453 @c <en>Force annotation of binary files.  (Without this option,
   17454 @c <en>binary files are skipped with a message.)
   17455 Force annotation of binary files.  (Without this option,
   17456 binary files are skipped with a message.)
   17457 
   17458 @c <en>@item -f
   17459 @item -f
   17460 @c <en>Use head revision if tag/date not found.  See
   17461 @c <en>@ref{Common options}.
   17462 Use head revision if tag/date not found.  See
   17463 @ref{Opes comuns}.
   17464 
   17465 @c <en>@item -l
   17466 @item -l
   17467 @c <en>Local; run only in current working directory.  @xref{Recursive behavior}.
   17468 Local; run only in current working directory.  @xref{Comportamento recursivo}.
   17469 
   17470 @c <en>@item -R
   17471 @item -R
   17472 @c <en>Operate recursively (default).  @xref{Recursive behavior}.
   17473 Operate recursively (default).  @xref{Comportamento recursivo}.
   17474 
   17475 @c <en>@item -r @var{tag}
   17476 @item -r @var{tag}
   17477 @c <en>Annotate revision @var{tag}.  See @ref{Common options}.
   17478 Annotate revision @var{tag}.  See @ref{Opes comuns}.
   17479 @end table
   17480 
   17481 @c ------------------------------------------------------------
   17482 @c <en>@item rdiff [@var{options}] @var{modules}@dots{}
   17483 @item rdiff [@var{options}] @var{modules}@dots{}
   17484 @c <en>Show differences between releases.  See @ref{rdiff}.
   17485 Show differences between releases.  See @ref{rdiff}.
   17486 
   17487 @table @code
   17488 @c <en>@item -c
   17489 @item -c
   17490 @c <en>Context diff output format (default).  See @ref{rdiff options}.
   17491 Context diff output format (default).  See @ref{rdiff options}.
   17492 
   17493 @c <en>@item -D @var{date}
   17494 @item -D @var{date}
   17495 @c <en>Select revisions based on @var{date}.  See @ref{Common options}.
   17496 Select revisions based on @var{date}.  See @ref{Opes comuns}.
   17497 
   17498 @c <en>@item -f
   17499 @item -f
   17500 @c <en>Use head revision if tag/date not found.  See
   17501 @c <en>@ref{Common options}.
   17502 Use head revision if tag/date not found.  See
   17503 @ref{Opes comuns}.
   17504 
   17505 @c <en>@item -l
   17506 @item -l
   17507 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17508 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17509 
   17510 @c <en>@item -R
   17511 @item -R
   17512 @c <en>Operate recursively (default).  @xref{Recursive
   17513 @c <en>behavior}.
   17514 Operate recursively (default).  @xref{Comportamento recursivo}.
   17515 
   17516 @c <en>@item -r @var{rev}
   17517 @item -r @var{rev}
   17518 @c <en>Select revisions based on @var{rev}.  See @ref{Common options}.
   17519 Select revisions based on @var{rev}.  See @ref{Opes comuns}.
   17520 
   17521 @c <en>@item -s
   17522 @item -s
   17523 @c <en>Short patch - one liner per file.  See @ref{rdiff options}.
   17524 Short patch - one liner per file.  See @ref{rdiff options}.
   17525 
   17526 @c <en>@item -t
   17527 @item -t
   17528 @c <en>Top two diffs - last change made to the file.  See
   17529 @c <en>@ref{diff options}.
   17530 Top two diffs - last change made to the file.  See
   17531 @ref{diff options}.
   17532 
   17533 @c <en>@item -u
   17534 @item -u
   17535 @c <en>Unidiff output format.  See @ref{rdiff options}.
   17536 Unidiff output format.  See @ref{rdiff options}.
   17537 
   17538 @c <en>@item -V @var{vers}
   17539 @item -V @var{vers}
   17540 @c <en>Use RCS Version @var{vers} for keyword expansion (obsolete).  See
   17541 @c <en>@ref{rdiff options}.
   17542 Use RCS Version @var{vers} for keyword expansion (obsolete).  See
   17543 @ref{rdiff options}.
   17544 @end table
   17545 
   17546 @c ------------------------------------------------------------
   17547 @c <en>@item release [@var{options}] @var{directory}
   17548 @item release [@var{options}] @var{directory}
   17549 @c <en>Indicate that a directory is no longer in use.  See
   17550 @c <en>@ref{release}.
   17551 Indicate that a directory is no longer in use.  See
   17552 @ref{release}.
   17553 
   17554 @table @code
   17555 @c <en>@item -d
   17556 @item -d
   17557 @c <en>Delete the given directory.  See @ref{release options}.
   17558 Delete the given directory.  See @ref{release options}.
   17559 @end table
   17560 
   17561 @c ------------------------------------------------------------
   17562 @c <en>@item remove [@var{options}] [@var{files}@dots{}]
   17563 @item remove [@var{options}] [@var{files}@dots{}]
   17564 @c <en>Remove an entry from the repository.  See @ref{Removing files}.
   17565 Remove an entry from the repository.  See @ref{Removendo arquivos}.
   17566 
   17567 @table @code
   17568 @c <en>@item -f
   17569 @item -f
   17570 @c <en>Delete the file before removing it.  See @ref{Removing files}.
   17571 Delete the file before removing it.  See @ref{Removendo arquivos}.
   17572 
   17573 @c <en>@item -l
   17574 @item -l
   17575 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17576 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17577 
   17578 @c <en>@item -R
   17579 @item -R
   17580 @c <en>Operate recursively (default).  @xref{Recursive
   17581 @c <en>behavior}.
   17582 Operate recursively (default).  @xref{Comportamento recursivo}.
   17583 @end table
   17584 
   17585 @c ------------------------------------------------------------
   17586 @c <en>@item rlog [@var{options}] [@var{files}@dots{}]
   17587 @item rlog [@var{options}] [@var{files}@dots{}]
   17588 @c <en>Print out history information for modules.  See @ref{log}.
   17589 Print out history information for modules.  See @ref{log}.
   17590 
   17591 @table @code
   17592 @c <en>@item -b
   17593 @item -b
   17594 @c <en>Only list revisions on the default branch.  See @ref{log options}.
   17595 Only list revisions on the default branch.  See @ref{log options}.
   17596 
   17597 @c <en>@item -d @var{dates}
   17598 @item -d @var{dates}
   17599 @c <en>Specify dates (@var{d1}<@var{d2} for range, @var{d} for
   17600 @c <en>latest before).  See @ref{log options}.
   17601 Specify dates (@var{d1}<@var{d2} for range, @var{d} for
   17602 latest before).  See @ref{log options}.
   17603 
   17604 @c <en>@item -h
   17605 @item -h
   17606 @c <en>Only print header.  See @ref{log options}.
   17607 Only print header.  See @ref{log options}.
   17608 
   17609 @c <en>@item -l
   17610 @item -l
   17611 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17612 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17613 
   17614 @c <en>@item -N
   17615 @item -N
   17616 @c <en>Do not list tags.  See @ref{log options}.
   17617 Do not list tags.  See @ref{log options}.
   17618 
   17619 @c <en>@item -R
   17620 @item -R
   17621 @c <en>Only print name of RCS file.  See @ref{log options}.
   17622 Only print name of RCS file.  See @ref{log options}.
   17623 
   17624 @c <en>@item -r@var{revs}
   17625 @item -r@var{revs}
   17626 @c <en>Only list revisions @var{revs}.  See @ref{log options}.
   17627 Only list revisions @var{revs}.  See @ref{log options}.
   17628 
   17629 @c <en>@item -s @var{states}
   17630 @item -s @var{states}
   17631 @c <en>Only list revisions with specified states.  See @ref{log options}.
   17632 Only list revisions with specified states.  See @ref{log options}.
   17633 
   17634 @c <en>@item -t
   17635 @item -t
   17636 @c <en>Only print header and descriptive text.  See @ref{log options}.
   17637 Only print header and descriptive text.  See @ref{log options}.
   17638 
   17639 @c <en>@item -w@var{logins}
   17640 @item -w@var{logins}
   17641 @c <en>Only list revisions checked in by specified logins.  See @ref{log options}.
   17642 Only list revisions checked in by specified logins.  See @ref{log options}.
   17643 @end table
   17644 
   17645 @c ------------------------------------------------------------
   17646 @c <en>@item rtag [@var{options}] @var{tag} @var{modules}@dots{}
   17647 @item rtag [@var{options}] @var{tag} @var{modules}@dots{}
   17648 @c <en>Add a symbolic tag to a module.
   17649 @c <en>See @ref{Revisions} and @ref{Branching and merging}.
   17650 Add a symbolic tag to a module.
   17651 See @ref{Revises} and @ref{Ramificando e mesclando}.
   17652 
   17653 @table @code
   17654 @c <en>@item -a
   17655 @item -a
   17656 @c <en>Clear tag from removed files that would not otherwise
   17657 @c <en>be tagged.  See @ref{Tagging add/remove}.
   17658 Clear tag from removed files that would not otherwise
   17659 be tagged.  See @ref{Etiquetando adicionados/removidos}.
   17660 
   17661 @c <en>@item -b
   17662 @item -b
   17663 @c <en>Create a branch named @var{tag}.  See @ref{Branching and merging}.
   17664 Create a branch named @var{tag}.  See @ref{Ramificando e mesclando}.
   17665 
   17666 @c <en>@item -B
   17667 @item -B
   17668 @c <en>Used in conjunction with -F or -d, enables movement and deletion of
   17669 @c <en>branch tags.  Use with extreme caution. 
   17670 Used in conjunction with -F or -d, enables movement and deletion of
   17671 branch tags.  Use with extreme caution. 
   17672 
   17673 @c <en>@item -D @var{date}
   17674 @item -D @var{date}
   17675 @c <en>Tag revisions as of @var{date}.  See @ref{Tagging by date/tag}.
   17676 Tag revisions as of @var{date}.  See @ref{Etiquetando por data/etiqueta}.
   17677 
   17678 @c <en>@item -d
   17679 @item -d
   17680 @c <en>Delete @var{tag}.  See @ref{Modifying tags}.
   17681 Delete @var{tag}.  See @ref{Modificando etiquetas}.
   17682 
   17683 @c <en>@item -F
   17684 @item -F
   17685 @c <en>Move @var{tag} if it already exists.  See @ref{Modifying tags}.
   17686 Move @var{tag} if it already exists.  See @ref{Modificando etiquetas}.
   17687 
   17688 @c <en>@item -f
   17689 @item -f
   17690 @c <en>Force a head revision match if tag/date not found.
   17691 @c <en>See @ref{Tagging by date/tag}.
   17692 Force a head revision match if tag/date not found.
   17693 See @ref{Etiquetando por data/etiqueta}.
   17694 
   17695 @c <en>@item -l
   17696 @item -l
   17697 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17698 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17699 
   17700 @c <en>@item -n
   17701 @item -n
   17702 @c <en>No execution of tag program.  See @ref{Common options}.
   17703 No execution of tag program.  See @ref{Opes comuns}.
   17704 
   17705 @c <en>@item -R
   17706 @item -R
   17707 @c <en>Operate recursively (default).  @xref{Recursive
   17708 @c <en>behavior}.
   17709 Operate recursively (default).  @xref{Comportamento recursivo}.
   17710 
   17711 @c <en>@item -r @var{rev}
   17712 @item -r @var{rev}
   17713 @c <en>Tag existing tag @var{rev}.  See @ref{Tagging by date/tag}.
   17714 Tag existing tag @var{rev}.  See @ref{Etiquetando por data/etiqueta}.
   17715 @end table
   17716 
   17717 @c ------------------------------------------------------------
   17718 @c <en>@item server
   17719 @item server
   17720 @c <en>Rsh server.  See @ref{Connecting via rsh}.
   17721 Rsh server.  See @ref{Se conectando via rsh}.
   17722 
   17723 @c ------------------------------------------------------------
   17724 @c <en>@item status [@var{options}] @var{files}@dots{}
   17725 @item status [@var{options}] @var{files}@dots{}
   17726 @c <en>Display status information in a working directory.  See
   17727 @c <en>@ref{File status}.
   17728 Display status information in a working directory.  See
   17729 @ref{Estado de arquivo}.
   17730 
   17731 @table @code
   17732 @c <en>@item -l
   17733 @item -l
   17734 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17735 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17736 
   17737 @c <en>@item -R
   17738 @item -R
   17739 @c <en>Operate recursively (default).  @xref{Recursive
   17740 @c <en>behavior}.
   17741 Operate recursively (default).  @xref{Comportamento recursivo}.
   17742 
   17743 @c <en>@item -v
   17744 @item -v
   17745 @c <en>Include tag information for file.  See @ref{Tags}.
   17746 Include tag information for file.  See @ref{Etiquetas}.
   17747 @end table
   17748 
   17749 @c ------------------------------------------------------------
   17750 @c <en>@item tag [@var{options}] @var{tag} [@var{files}@dots{}]
   17751 @item tag [@var{options}] @var{tag} [@var{files}@dots{}]
   17752 @c <en>Add a symbolic tag to checked out version of files.
   17753 @c <en>See @ref{Revisions} and @ref{Branching and merging}.
   17754 Add a symbolic tag to checked out version of files.
   17755 See @ref{Revises} and @ref{Ramificando e mesclando}.
   17756 
   17757 @table @code
   17758 @c <en>@item -b
   17759 @item -b
   17760 @c <en>Create a branch named @var{tag}.  See @ref{Branching and merging}.
   17761 Create a branch named @var{tag}.  See @ref{Ramificando e mesclando}.
   17762 
   17763 @c <en>@item -c
   17764 @item -c
   17765 @c <en>Check that working files are unmodified.  See
   17766 @c <en>@ref{Tagging the working directory}.
   17767 Check that working files are unmodified.  See
   17768 @ref{Etiquetando o diretrio de trabalho}.
   17769 
   17770 @c <en>@item -D @var{date}
   17771 @item -D @var{date}
   17772 @c <en>Tag revisions as of @var{date}.  See @ref{Tagging by date/tag}.
   17773 Tag revisions as of @var{date}.  See @ref{Etiquetando por data/etiqueta}.
   17774 
   17775 @c <en>@item -d
   17776 @item -d
   17777 @c <en>Delete @var{tag}.  See @ref{Modifying tags}.
   17778 Delete @var{tag}.  See @ref{Modificando etiquetas}.
   17779 
   17780 @c <en>@item -F
   17781 @item -F
   17782 @c <en>Move @var{tag} if it already exists.  See @ref{Modifying tags}.
   17783 Move @var{tag} if it already exists.  See @ref{Modificando etiquetas}.
   17784 
   17785 @c <en>@item -f
   17786 @item -f
   17787 @c <en>Force a head revision match if tag/date not found.
   17788 @c <en>See @ref{Tagging by date/tag}.
   17789 Force a head revision match if tag/date not found.
   17790 See @ref{Etiquetando por data/etiqueta}.
   17791 
   17792 @c <en>@item -l
   17793 @item -l
   17794 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17795 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17796 
   17797 @c <en>@item -R
   17798 @item -R
   17799 @c <en>Operate recursively (default).  @xref{Recursive
   17800 @c <en>behavior}.
   17801 Operate recursively (default).  @xref{Comportamento recursivo}.
   17802 
   17803 @c <en>@item -r @var{rev}
   17804 @item -r @var{rev}
   17805 @c <en>Tag existing tag @var{rev}.  See @ref{Tagging by date/tag}.
   17806 Tag existing tag @var{rev}.  See @ref{Etiquetando por data/etiqueta}.
   17807 @end table
   17808 
   17809 @c ------------------------------------------------------------
   17810 @c <en>@item unedit [@var{options}] [@var{files}@dots{}]
   17811 @item unedit [@var{options}] [@var{files}@dots{}]
   17812 @c <en>Undo an edit command.  See @ref{Editing files}.
   17813 Undo an edit command.  See @ref{Editando arquivos}.
   17814 
   17815 @table @code
   17816 @c <en>@item -l
   17817 @item -l
   17818 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17819 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17820 
   17821 @c <en>@item -R
   17822 @item -R
   17823 @c <en>Operate recursively (default).  @xref{Recursive behavior}.
   17824 Operate recursively (default).  @xref{Comportamento recursivo}.
   17825 @end table
   17826 
   17827 @c ------------------------------------------------------------
   17828 @c <en>@item update [@var{options}] [@var{files}@dots{}]
   17829 @item update [@var{options}] [@var{files}@dots{}]
   17830 @c <en>Bring work tree in sync with repository.  See
   17831 @c <en>@ref{update}.
   17832 Bring work tree in sync with repository.  See
   17833 @ref{update}.
   17834 
   17835 @table @code
   17836 @c <en>@item -A
   17837 @item -A
   17838 @c <en>Reset any sticky tags/date/options.  See @ref{Sticky
   17839 @c <en>tags} and @ref{Keyword substitution}.
   17840 Reset any sticky tags/date/options.  See
   17841 @ref{Etiquetas adesivas} and @ref{Substituio de palavra-chave}.
   17842 
   17843 @c <en>@item -C
   17844 @item -C
   17845 @c <en>Overwrite locally modified files with clean copies from
   17846 @c <en>the repository (the modified file is saved in
   17847 @c <en>@file{.#@var{file}.@var{revision}}, however).
   17848 Overwrite locally modified files with clean copies from
   17849 the repository (the modified file is saved in
   17850 @file{.#@var{file}.@var{revision}}, however).
   17851 
   17852 @c <en>@item -D @var{date}
   17853 @item -D @var{date}
   17854 @c <en>Check out revisions as of @var{date} (is sticky).  See
   17855 @c <en>@ref{Common options}.
   17856 Check out revisions as of @var{date} (is sticky).  See
   17857 @ref{Opes comuns}.
   17858 
   17859 @c <en>@item -d
   17860 @item -d
   17861 @c <en>Create directories.  See @ref{update options}.
   17862 Create directories.  See @ref{update options}.
   17863 
   17864 @c <en>@item -f
   17865 @item -f
   17866 @c <en>Use head revision if tag/date not found.  See
   17867 @c <en>@ref{Common options}.
   17868 Use head revision if tag/date not found.  See
   17869 @ref{Opes comuns}.
   17870 
   17871 @c <en>@item -I @var{ign}
   17872 @item -I @var{ign}
   17873 @c <en>More files to ignore (! to reset).  See
   17874 @c <en>@ref{import options}.
   17875 More files to ignore (! to reset).  See
   17876 @ref{import options}.
   17877 
   17878 @c Probably want to use rev1/rev2 style like for diff
   17879 @c -r.  Here and in on-line help.
   17880 @c <en>@item -j @var{rev}
   17881 @item -j @var{rev}
   17882 @c <en>Merge in changes.  See @ref{update options}.
   17883 Merge in changes.  See @ref{update options}.
   17884 
   17885 @c <en>@item -k @var{kflag}
   17886 @item -k @var{kflag}
   17887 @c <en>Use @var{kflag} keyword expansion.  See
   17888 @c <en>@ref{Substitution modes}.
   17889 Use @var{kflag} keyword expansion.  See
   17890 @ref{Modos de substituio}.
   17891 
   17892 @c <en>@item -l
   17893 @item -l
   17894 @c <en>Local; run only in current working directory.  @xref{Recursive behavior}.
   17895 Local; run only in current working directory.  @xref{Comportamento recursivo}.
   17896 
   17897 @c <en>@item -P
   17898 @item -P
   17899 @c <en>Prune empty directories.  See @ref{Moving directories}.
   17900 Prune empty directories.  See @ref{Movendo diretrios}.
   17901 
   17902 @c <en>@item -p
   17903 @item -p
   17904 @c <en>Check out files to standard output (avoids
   17905 @c <en>stickiness).  See @ref{update options}.
   17906 Check out files to standard output (avoids
   17907 stickiness).  See @ref{update options}.
   17908 
   17909 @c <en>@item -R
   17910 @item -R
   17911 @c <en>Operate recursively (default).  @xref{Recursive
   17912 @c <en>behavior}.
   17913 Operate recursively (default).  @xref{Comportamento recursivo}.
   17914 
   17915 @c <en>@item -r @var{tag}
   17916 @item -r @var{tag}
   17917 @c <en>Checkout revision @var{tag} (is sticky).  See @ref{Common options}.
   17918 Checkout revision @var{tag} (is sticky).  See @ref{Opes comuns}.
   17919 
   17920 @c <en>@item -W @var{spec}
   17921 @item -W @var{spec}
   17922 @c <en>More wrappers.  See @ref{import options}.
   17923 More wrappers.  See @ref{import options}.
   17924 @end table
   17925 
   17926 @c ------------------------------------------------------------
   17927 @c <en>@item version
   17928 @item version
   17929 @c <en>@cindex version (subcommand)
   17930 @cindex version (subcommand)
   17931 
   17932 @c <en>Display the version of @sc{cvs} being used.  If the repository
   17933 @c <en>is remote, display both the client and server versions.
   17934 Display the version of @sc{cvs} being used.  If the repository
   17935 is remote, display both the client and server versions.
   17936 
   17937 @c ------------------------------------------------------------
   17938 @c <en>@item watch [on|off|add|remove] [@var{options}] [@var{files}@dots{}]
   17939 @item watch [on|off|add|remove] [@var{options}] [@var{files}@dots{}]
   17940 
   17941 @c <en>on/off: turn on/off read-only checkouts of files.  See
   17942 @c <en>@ref{Setting a watch}.
   17943 on/off: turn on/off read-only checkouts of files.  See
   17944 @ref{Ajustando um ???watch???}.
   17945 
   17946 @c <en>add/remove: add or remove notification on actions.  See
   17947 @c <en>@ref{Getting Notified}.
   17948 add/remove: add or remove notification on actions.  See
   17949 @ref{Recebendo Notificaes}.
   17950 
   17951 @table @code
   17952 @c <en>@item -a @var{actions}
   17953 @item -a @var{actions}
   17954 @c <en>Specify actions for temporary watch, where
   17955 @c <en>@var{actions} is @code{edit}, @code{unedit},
   17956 @c <en>@code{commit}, @code{all}, or @code{none}.  See
   17957 @c <en>@ref{Editing files}.
   17958 Specify actions for temporary watch, where
   17959 @var{actions} is @code{edit}, @code{unedit},
   17960 @code{commit}, @code{all}, or @code{none}.  See
   17961 @ref{Editando arquivos}.
   17962 
   17963 @c <en>@item -l
   17964 @item -l
   17965 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17966 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17967 
   17968 @c <en>@item -R
   17969 @item -R
   17970 @c <en>Operate recursively (default).  @xref{Recursive
   17971 @c <en>behavior}.
   17972 Operate recursively (default).  @xref{Comportamento recursivo}.
   17973 @end table
   17974 
   17975 @c ------------------------------------------------------------
   17976 @c <en>@item watchers [@var{options}] [@var{files}@dots{}]
   17977 @item watchers [@var{options}] [@var{files}@dots{}]
   17978 @c <en>See who is watching a file.  See @ref{Watch information}.
   17979 See who is watching a file.  See @ref{Informaes de ???Watch???}.
   17980 
   17981 @table @code
   17982 @c <en>@item -l
   17983 @item -l
   17984 @c <en>Local; run only in current working directory.  See @ref{Recursive behavior}.
   17985 Local; run only in current working directory.  See @ref{Comportamento recursivo}.
   17986 
   17987 @c <en>@item -R
   17988 @item -R
   17989 @c <en>Operate recursively (default).  @xref{Recursive
   17990 @c <en>behavior}.
   17991 Operate recursively (default).  @xref{Comportamento recursivo}.
   17992 @end table
   17993 
   17994 @end table
   17995 
   17996 @c ---------------------------------------------------------------------
   17997 @c <en>@node Administrative files
   17998 @node Arquivos administrativos
   17999 @c <en>@appendix Reference manual for Administrative files
   18000 @appendix Manual de referncia para Arquivos administrativos
   18001 @c <en>@cindex Administrative files (reference)
   18002 @cindex Arquivos administrativos (referncia)
   18003 @c <en>@cindex Files, reference manual
   18004 @cindex Files, reference manual
   18005 @c <en>@cindex Reference manual (files)
   18006 @cindex Reference manual (files)
   18007 @c <en>@cindex CVSROOT (file)
   18008 @cindex CVSROOT (file)
   18009 
   18010 @c FIXME?  Somewhere there needs to be a more "how-to"
   18011 @c guide to writing these.  I think the triggers
   18012 @c (commitinfo, loginfo, taginfo, &c) are perhaps a
   18013 @c different case than files like modules.  One
   18014 @c particular issue that people sometimes are
   18015 @c (unnecessarily?) worried about is performance, and
   18016 @c the impact of writing in perl or sh or ____.
   18017 @c <en>Inside the repository, in the directory
   18018 @c <en>@file{$CVSROOT/CVSROOT}, there are a number of
   18019 @c <en>supportive files for @sc{cvs}.  You can use @sc{cvs} in a limited
   18020 @c <en>fashion without any of them, but if they are set up
   18021 @c <en>properly they can help make life easier.  For a
   18022 @c <en>discussion of how to edit them, see @ref{Intro
   18023 @c <en>administrative files}.
   18024 Dentro do repositrio, no diretrio
   18025 @file{$CVSROOT/CVSROOT}, existem vrios arquivos de
   18026 suporte para o @sc{cvs}.  Voc pode usar o @sc{cvs} de
   18027 uma forma limitada sem se aproveitar deles, mas se eles
   18028 estiverem ajustados corretamente eles podem facilitar
   18029 muito seu trabalho.  Para uma discusso sobre como
   18030 edit-los, veja em @ref{Intro aos arquivos administrativos}.
   18031 
   18032 @c <en>The most important of these files is the @file{modules}
   18033 @c <en>file, which defines the modules inside the repository.
   18034 O mais importante destes arquivos  o arquivo
   18035 @file{modules}, que define os mdulos dentro do repositrio.
   18036 
   18037 @menu
   18038 @c <en>* modules::                     Defining modules
   18039 * modules::                     Definindo mdulos
   18040 @c <en>* Wrappers::                    Specify binary-ness based on file name
   18041 * Wrappers::                    Specify binary-ness based on file name
   18042 @c <en>* commit files::                The commit support files (commitinfo,
   18043 @c <en>                                verifymsg, loginfo)
   18044 * Arquivos de ???commit???::    Os arquivos de suporte a commit (commitinfo,
   18045                                 verifymsg, loginfo)
   18046 @c <en>* taginfo::                     Verifying/Logging tags
   18047 * taginfo::                     Verifcando/Registrando etiquetas
   18048 @c <en>* rcsinfo::                     Templates for the log messages
   18049 * rcsinfo::                     Templates for the log messages
   18050 @c <en>* cvsignore::                   Ignoring files via cvsignore
   18051 * cvsignore::                   Ignoring files via cvsignore
   18052 @c <en>* checkoutlist::                Adding your own administrative files
   18053 * checkoutlist::                Adding your own administrative files
   18054 @c <en>* history file::                History information
   18055 * arquivo history (histrico)::                History information
   18056 @c <en>* Variables::                   Various variables are expanded
   18057 * Variables::                   Various variables are expanded
   18058 @c <en>* config::                      Miscellaneous CVS configuration
   18059 * config::                      Miscellaneous CVS configuration
   18060 @end menu
   18061 
   18062 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   18063 @c <en>@node modules
   18064 @node modules
   18065 @c <en>@appendixsec The modules file
   18066 @appendixsec O arquivo modules
   18067 @c <en>@cindex Modules (admin file)
   18068 @cindex Modules (arquivo administrativo)
   18069 @c <en>@cindex Defining modules (reference manual)
   18070 @cindex Definindo mdulos (manual de referncia)
   18071 
   18072 @c <en>The @file{modules} file records your definitions of
   18073 @c <en>names for collections of source code.  @sc{cvs} will
   18074 @c <en>use these definitions if you use @sc{cvs} to update the
   18075 @c <en>modules file (use normal commands like @code{add},
   18076 @c <en>@code{commit}, etc).
   18077 O arquivo @file{modules} registra suas definies de
   18078 nomes para colees de cdigo fonte.  @sc{cvs} vai usar
   18079 estas definies se voc usar o @sc{cvs} para atualizar
   18080 o arquivo modules (use comandos normais, como @code{add},
   18081 @code{commit}, etc).
   18082 
   18083 @c <en>The @file{modules} file may contain blank lines and
   18084 @c <en>comments (lines beginning with @samp{#}) as well as
   18085 @c <en>module definitions.  Long lines can be continued on the
   18086 @c <en>next line by specifying a backslash (@samp{\}) as the
   18087 @c <en>last character on the line.
   18088 The @file{modules} file may contain blank lines and
   18089 comments (lines beginning with @samp{#}) as well as
   18090 module definitions.  Long lines can be continued on the
   18091 next line by specifying a backslash (@samp{\}) as the
   18092 last character on the line.
   18093 
   18094 @c <en>There are three basic types of modules: alias modules,
   18095 @c <en>regular modules, and ampersand modules.  The difference
   18096 @c <en>between them is the way that they map files in the
   18097 @c <en>repository to files in the working directory.  In all
   18098 @c <en>of the following examples, the top-level repository
   18099 @c <en>contains a directory called @file{first-dir}, which
   18100 @c <en>contains two files, @file{file1} and @file{file2}, and a
   18101 @c <en>directory @file{sdir}.  @file{first-dir/sdir} contains
   18102 @c <en>a file @file{sfile}.
   18103 There are three basic types of modules: alias modules,
   18104 regular modules, and ampersand modules.  The difference
   18105 between them is the way that they map files in the
   18106 repository to files in the working directory.  In all
   18107 of the following examples, the top-level repository
   18108 contains a directory called @file{first-dir}, which
   18109 contains two files, @file{file1} and @file{file2}, and a
   18110 directory @file{sdir}.  @file{first-dir/sdir} contains
   18111 a file @file{sfile}.
   18112 
   18113 @c FIXME: should test all the examples in this section.
   18114 
   18115 @menu
   18116 @c <en>* Alias modules::             The simplest kind of module
   18117 * Alias modules::             The simplest kind of module
   18118 @c <en>* Regular modules::
   18119 * Regular modules::
   18120 @c <en>* Ampersand modules::
   18121 * Ampersand modules::
   18122 @c <en>* Excluding directories::     Excluding directories from a module
   18123 * Excluding directories::     Excluding directories from a module
   18124 @c <en>* Module options::            Regular and ampersand modules can take options
   18125 * Module options::            Regular and ampersand modules can take options
   18126 @c <en>* Module program options::    How the modules ``program options'' programs
   18127 @c <en>                              are run. 
   18128 * Module program options::    How the modules ``program options'' programs
   18129                               are run. 
   18130 @end menu
   18131 
   18132 @c <en>@node Alias modules
   18133 @node Alias modules
   18134 @c <en>@appendixsubsec Alias modules
   18135 @appendixsubsec Alias modules
   18136 @c <en>@cindex Alias modules
   18137 @cindex Alias modules
   18138 @c <en>@cindex -a, in modules file
   18139 @cindex -a, in modules file
   18140 
   18141 @c <en>Alias modules are the simplest kind of module:
   18142 Alias modules are the simplest kind of module:
   18143 
   18144 @table @code
   18145 @c <en>@item @var{mname} -a @var{aliases}@dots{}
   18146 @c <en>This represents the simplest way of defining a module
   18147 @c <en>@var{mname}.  The @samp{-a} flags the definition as a
   18148 @c <en>simple alias: @sc{cvs} will treat any use of @var{mname} (as
   18149 @c <en>a command argument) as if the list of names
   18150 @c <en>@var{aliases} had been specified instead.
   18151 @c <en>@var{aliases} may contain either other module names or
   18152 @c <en>paths.  When you use paths in aliases, @code{checkout}
   18153 @c <en>creates all intermediate directories in the working
   18154 @c <en>directory, just as if the path had been specified
   18155 @c <en>explicitly in the @sc{cvs} arguments.
   18156 @item @var{mname} -a @var{aliases}@dots{}
   18157 This represents the simplest way of defining a module
   18158 @var{mname}.  The @samp{-a} flags the definition as a
   18159 simple alias: @sc{cvs} will treat any use of @var{mname} (as
   18160 a command argument) as if the list of names
   18161 @var{aliases} had been specified instead.
   18162 @var{aliases} may contain either other module names or
   18163 paths.  When you use paths in aliases, @code{checkout}
   18164 creates all intermediate directories in the working
   18165 directory, just as if the path had been specified
   18166 explicitly in the @sc{cvs} arguments.
   18167 @end table
   18168 
   18169 @c <en>For example, if the modules file contains:
   18170 For example, if the modules file contains:
   18171 
   18172 @example
   18173 amodule -a first-dir
   18174 @end example
   18175 
   18176 @noindent
   18177 @c <en>then the following two commands are equivalent:
   18178 then the following two commands are equivalent:
   18179 
   18180 @example
   18181 $ cvs co amodule
   18182 $ cvs co first-dir
   18183 @end example
   18184 
   18185 @noindent
   18186 @c <en>and they each would provide output such as:
   18187 and they each would provide output such as:
   18188 
   18189 @example
   18190 cvs checkout: Updating first-dir
   18191 U first-dir/file1
   18192 U first-dir/file2
   18193 cvs checkout: Updating first-dir/sdir
   18194 U first-dir/sdir/sfile
   18195 @end example
   18196 
   18197 @c <en>@node Regular modules
   18198 @node Regular modules
   18199 @c <en>@appendixsubsec Regular modules
   18200 @appendixsubsec Regular modules
   18201 @c <en>@cindex Regular modules
   18202 @cindex Regular modules
   18203 
   18204 @table @code
   18205 @c <en>@item @var{mname} [ options ] @var{dir} [ @var{files}@dots{} ]
   18206 @c <en>In the simplest case, this form of module definition
   18207 @c <en>reduces to @samp{@var{mname} @var{dir}}.  This defines
   18208 @c <en>all the files in directory @var{dir} as module mname.
   18209 @c <en>@var{dir} is a relative path (from @code{$CVSROOT}) to a
   18210 @c <en>directory of source in the source repository.  In this
   18211 @c <en>case, on checkout, a single directory called
   18212 @c <en>@var{mname} is created as a working directory; no
   18213 @c <en>intermediate directory levels are used by default, even
   18214 @c <en>if @var{dir} was a path involving several directory
   18215 @c <en>levels.
   18216 @item @var{mname} [ options ] @var{dir} [ @var{files}@dots{} ]
   18217 In the simplest case, this form of module definition
   18218 reduces to @samp{@var{mname} @var{dir}}.  This defines
   18219 all the files in directory @var{dir} as module mname.
   18220 @var{dir} is a relative path (from @code{$CVSROOT}) to a
   18221 directory of source in the source repository.  In this
   18222 case, on checkout, a single directory called
   18223 @var{mname} is created as a working directory; no
   18224 intermediate directory levels are used by default, even
   18225 if @var{dir} was a path involving several directory
   18226 levels.
   18227 @end table
   18228 
   18229 @c <en>For example, if a module is defined by:
   18230 For example, if a module is defined by:
   18231 
   18232 @example
   18233 regmodule first-dir
   18234 @end example
   18235 
   18236 @noindent
   18237 @c <en>then regmodule will contain the files from first-dir:
   18238 then regmodule will contain the files from first-dir:
   18239 
   18240 @example
   18241 $ cvs co regmodule
   18242 cvs checkout: Updating regmodule
   18243 U regmodule/file1
   18244 U regmodule/file2
   18245 cvs checkout: Updating regmodule/sdir
   18246 U regmodule/sdir/sfile
   18247 $
   18248 @end example
   18249 
   18250 @c <en>By explicitly specifying files in the module definition
   18251 @c <en>after @var{dir}, you can select particular files from
   18252 @c <en>directory @var{dir}.  Here is
   18253 @c <en>an example:
   18254 By explicitly specifying files in the module definition
   18255 after @var{dir}, you can select particular files from
   18256 directory @var{dir}.  Here is
   18257 an example:
   18258 
   18259 @example
   18260 regfiles first-dir/sdir sfile
   18261 @end example
   18262 
   18263 @noindent
   18264 @c <en>With this definition, getting the regfiles module
   18265 @c <en>will create a single working directory
   18266 @c <en>@file{regfiles} containing the file listed, which
   18267 @c <en>comes from a directory deeper
   18268 @c <en>in the @sc{cvs} source repository:
   18269 With this definition, getting the regfiles module
   18270 will create a single working directory
   18271 @file{regfiles} containing the file listed, which
   18272 comes from a directory deeper
   18273 in the @sc{cvs} source repository:
   18274 
   18275 @example
   18276 $ cvs co regfiles
   18277 U regfiles/sfile
   18278 $
   18279 @end example
   18280 
   18281 @c <en>@node Ampersand modules
   18282 @node Ampersand modules
   18283 @c <en>@appendixsubsec Ampersand modules
   18284 @appendixsubsec Ampersand modules
   18285 @c <en>@cindex Ampersand modules
   18286 @cindex Ampersand modules
   18287 @c <en>@cindex &, in modules file
   18288 @cindex &, in modules file
   18289 
   18290 @c <en>A module definition can refer to other modules by
   18291 @c <en>including @samp{&@var{module}} in its definition.
   18292 A module definition can refer to other modules by
   18293 including @samp{&@var{module}} in its definition.
   18294 @example
   18295 @var{mname} [ options ] @var{&module}@dots{}
   18296 @end example
   18297 
   18298 @c <en>Then getting the module creates a subdirectory for each such
   18299 @c <en>module, in the directory containing the module.  For
   18300 @c <en>example, if modules contains
   18301 Then getting the module creates a subdirectory for each such
   18302 module, in the directory containing the module.  For
   18303 example, if modules contains
   18304 
   18305 @example
   18306 ampermod &first-dir
   18307 @end example
   18308 
   18309 @noindent
   18310 @c <en>then a checkout will create an @code{ampermod} directory
   18311 @c <en>which contains a directory called @code{first-dir},
   18312 @c <en>which in turns contains all the directories and files
   18313 @c <en>which live there.  For example, the command
   18314 then a checkout will create an @code{ampermod} directory
   18315 which contains a directory called @code{first-dir},
   18316 which in turns contains all the directories and files
   18317 which live there.  For example, the command
   18318 
   18319 @example
   18320 $ cvs co ampermod
   18321 @end example
   18322 
   18323 @noindent
   18324 @c <en>will create the following files:
   18325 will create the following files:
   18326 
   18327 @example
   18328 ampermod/first-dir/file1
   18329 ampermod/first-dir/file2
   18330 ampermod/first-dir/sdir/sfile
   18331 @end example
   18332 
   18333 @c <en>There is one quirk/bug: the messages that @sc{cvs}
   18334 @c <en>prints omit the @file{ampermod}, and thus do not
   18335 @c <en>correctly display the location to which it is checking
   18336 @c <en>out the files:
   18337 There is one quirk/bug: the messages that @sc{cvs}
   18338 prints omit the @file{ampermod}, and thus do not
   18339 correctly display the location to which it is checking
   18340 out the files:
   18341 
   18342 @example
   18343 $ cvs co ampermod
   18344 cvs checkout: Updating first-dir
   18345 U first-dir/file1
   18346 U first-dir/file2
   18347 cvs checkout: Updating first-dir/sdir
   18348 U first-dir/sdir/sfile
   18349 $
   18350 @end example
   18351 
   18352 @c <en>Do not rely on this buggy behavior; it may get fixed in
   18353 @c <en>a future release of @sc{cvs}.
   18354 Do not rely on this buggy behavior; it may get fixed in
   18355 a future release of @sc{cvs}.
   18356 
   18357 @c FIXCVS: What happens if regular and & modules are
   18358 @c combined, as in "ampermodule first-dir &second-dir"?
   18359 @c When I tried it, it seemed to just ignore the
   18360 @c "first-dir".  I think perhaps it should be an error
   18361 @c (but this needs further investigation).
   18362 @c In addition to discussing what each one does, we
   18363 @c should put in a few words about why you would use one or
   18364 @c the other in various situations.
   18365 
   18366 @c <en>@node Excluding directories
   18367 @node Excluding directories
   18368 @c <en>@appendixsubsec Excluding directories
   18369 @appendixsubsec Excluding directories
   18370 @c <en>@cindex Excluding directories, in modules file
   18371 @cindex Excluding directories, in modules file
   18372 @c <en>@cindex !, in modules file
   18373 @cindex !, in modules file
   18374 
   18375 @c <en>An alias module may exclude particular directories from
   18376 @c <en>other modules by using an exclamation mark (@samp{!})
   18377 @c <en>before the name of each directory to be excluded.
   18378 An alias module may exclude particular directories from
   18379 other modules by using an exclamation mark (@samp{!})
   18380 before the name of each directory to be excluded.
   18381 
   18382 @c <en>For example, if the modules file contains:
   18383 For example, if the modules file contains:
   18384 
   18385 @example
   18386 exmodule -a !first-dir/sdir first-dir
   18387 @end example
   18388 
   18389 @noindent
   18390 @c <en>then checking out the module @samp{exmodule} will check
   18391 @c <en>out everything in @samp{first-dir} except any files in
   18392 @c <en>the subdirectory @samp{first-dir/sdir}.
   18393 then checking out the module @samp{exmodule} will check
   18394 out everything in @samp{first-dir} except any files in
   18395 the subdirectory @samp{first-dir/sdir}.
   18396 @c Note that the "!first-dir/sdir" sometimes must be listed
   18397 @c before "first-dir".  That seems like a probable bug, in which
   18398 @c case perhaps it should be fixed (to allow either
   18399 @c order) rather than documented.  See modules4 in testsuite.
   18400 
   18401 @c <en>@node Module options
   18402 @node Module options
   18403 @c <en>@appendixsubsec Module options
   18404 @appendixsubsec Module options
   18405 @c <en>@cindex Options, in modules file
   18406 @cindex Options, in modules file
   18407 
   18408 @c <en>Either regular modules or ampersand modules can contain
   18409 @c <en>options, which supply additional information concerning
   18410 @c <en>the module.
   18411 Either regular modules or ampersand modules can contain
   18412 options, which supply additional information concerning
   18413 the module.
   18414 
   18415 @table @code
   18416 @c <en>@cindex -d, in modules file
   18417 @cindex -d, in modules file
   18418 @c <en>@item -d @var{name}
   18419 @item -d @var{name}
   18420 @c <en>Name the working directory something other than the
   18421 @c <en>module name.
   18422 Name the working directory something other than the
   18423 module name.
   18424 @c FIXME: Needs a bunch of examples, analogous to the
   18425 @c examples for alias, regular, and ampersand modules
   18426 @c which show where the files go without -d.
   18427 
   18428 @c <en>@cindex Export program
   18429 @cindex Export program
   18430 @c <en>@cindex -e, in modules file
   18431 @cindex -e, in modules file
   18432 @c <en>@item -e @var{prog}
   18433 @item -e @var{prog}
   18434 @c <en>Specify a program @var{prog} to run whenever files in a
   18435 @c <en>module are exported.  @var{prog} runs with a single
   18436 @c <en>argument, the module name.
   18437 Specify a program @var{prog} to run whenever files in a
   18438 module are exported.  @var{prog} runs with a single
   18439 argument, the module name.
   18440 @c FIXME: Is it run on server? client?
   18441 
   18442 @c <en>@cindex Checkout program
   18443 @cindex Checkout program
   18444 @c <en>@cindex -o, in modules file
   18445 @cindex -o, in modules file
   18446 @c <en>@item -o @var{prog}
   18447 @item -o @var{prog}
   18448 @c <en>Specify a program @var{prog} to run whenever files in a
   18449 @c <en>module are checked out.  @var{prog} runs with a single
   18450 @c <en>argument, the module name.  See @ref{Module program options} for
   18451 @c <en>information on how @var{prog} is called.
   18452 Specify a program @var{prog} to run whenever files in a
   18453 module are checked out.  @var{prog} runs with a single
   18454 argument, the module name.  See @ref{Module program options} for
   18455 information on how @var{prog} is called.
   18456 @c FIXME: Is it run on server? client?
   18457 
   18458 @c <en>@cindex Status of a module
   18459 @cindex Status of a module
   18460 @c <en>@cindex Module status
   18461 @cindex Module status
   18462 @c <en>@cindex -s, in modules file
   18463 @cindex -s, in modules file
   18464 @c <en>@item -s @var{status}
   18465 @item -s @var{status}
   18466 @c <en>Assign a status to the module.  When the module file is
   18467 @c <en>printed with @samp{cvs checkout -s} the modules are
   18468 @c <en>sorted according to primarily module status, and
   18469 @c <en>secondarily according to the module name.  This option
   18470 @c <en>has no other meaning.  You can use this option for
   18471 @c <en>several things besides status: for instance, list the
   18472 @c <en>person that is responsible for this module.
   18473 Assign a status to the module.  When the module file is
   18474 printed with @samp{cvs checkout -s} the modules are
   18475 sorted according to primarily module status, and
   18476 secondarily according to the module name.  This option
   18477 has no other meaning.  You can use this option for
   18478 several things besides status: for instance, list the
   18479 person that is responsible for this module.
   18480 
   18481 @c <en>@cindex Tag program
   18482 @cindex Tag program
   18483 @c <en>@cindex -t, in modules file
   18484 @cindex -t, in modules file
   18485 @c <en>@item -t @var{prog}
   18486 @item -t @var{prog}
   18487 @c <en>Specify a program @var{prog} to run whenever files in a
   18488 @c <en>module are tagged with @code{rtag}.  @var{prog} runs
   18489 @c <en>with two arguments: the module name and the symbolic
   18490 @c <en>tag specified to @code{rtag}.  It is not run
   18491 @c <en>when @code{tag} is executed.  Generally you will find
   18492 @c <en>that the @file{taginfo} file is a better solution(@pxref{taginfo}).
   18493 Specify a program @var{prog} to run whenever files in a
   18494 module are tagged with @code{rtag}.  @var{prog} runs
   18495 with two arguments: the module name and the symbolic
   18496 tag specified to @code{rtag}.  It is not run
   18497 when @code{tag} is executed.  Generally you will find
   18498 that the @file{taginfo} file is a better solution(@pxref{taginfo}).
   18499 @c FIXME: Is it run on server? client?
   18500 @c Problems with -t include:
   18501 @c * It is run after the tag not before
   18502 @c * It doesn't get passed all the information that
   18503 @c   taginfo does ("mov", &c).
   18504 @c * It only is run for rtag, not tag.
   18505 @end table
   18506 
   18507 @c <en>You should also see @pxref{Module program options} about how the
   18508 @c <en>``program options'' programs are run.
   18509 You should also see @pxref{Module program options} about how the
   18510 ``program options'' programs are run.
   18511 
   18512 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   18513 
   18514 @c <en>@node Module program options
   18515 @node Module program options
   18516 @c <en>@appendixsubsec How the modules file ``program options'' programs are run
   18517 @appendixsubsec How the modules file ``program options'' programs are run
   18518 @c <en>@cindex Modules file program options
   18519 @cindex Modules file program options
   18520 @c <en>@cindex -t, in modules file
   18521 @cindex -t, in modules file
   18522 @c <en>@cindex -o, in modules file
   18523 @cindex -o, in modules file
   18524 @c <en>@cindex -e, in modules file
   18525 @cindex -e, in modules file
   18526 
   18527 @noindent
   18528 @c <en>For checkout, rtag, and export, the program is server-based, and as such the
   18529 @c <en>following applies:-
   18530 For checkout, rtag, and export, the program is server-based, and as such the
   18531 following applies:-
   18532 
   18533 @c <en>If using remote access methods (pserver, ext, etc.),
   18534 @c <en>@sc{cvs} will execute this program on the server from a temporary
   18535 @c <en>directory. The path is searched for this program.
   18536 If using remote access methods (pserver, ext, etc.),
   18537 @sc{cvs} will execute this program on the server from a temporary
   18538 directory. The path is searched for this program.
   18539 
   18540 @c <en>If using ``local access'' (on a local or remote NFS file system, i.e.
   18541 @c <en>repository set just to a path),
   18542 @c <en>the program will be executed from the newly checked-out tree, if
   18543 @c <en>found there, or alternatively searched for in the path if not.
   18544 If using ``local access'' (on a local or remote NFS file system, i.e.
   18545 repository set just to a path),
   18546 the program will be executed from the newly checked-out tree, if
   18547 found there, or alternatively searched for in the path if not.
   18548 
   18549 @c <en>The programs are all run after the operation has effectively
   18550 @c <en>completed.
   18551 The programs are all run after the operation has effectively
   18552 completed.
   18553 
   18554 
   18555 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   18556 @node Wrappers
   18557 @appendixsec The cvswrappers file
   18558 @cindex cvswrappers (admin file)
   18559 @cindex CVSWRAPPERS, environment variable
   18560 @cindex Wrappers
   18561 
   18562 @c FIXME: need some better way of separating this out
   18563 @c by functionality.  -m is
   18564 @c one feature, and -k is a another.  And this discussion
   18565 @c should be better motivated (e.g. start with the
   18566 @c problems, then explain how the feature solves it).
   18567 
   18568 Wrappers refers to a @sc{cvs} feature which lets you
   18569 control certain settings based on the name of the file
   18570 which is being operated on.  The settings are @samp{-k}
   18571 for binary files, and @samp{-m} for nonmergeable text
   18572 files.
   18573 
   18574 The @samp{-m} option
   18575 specifies the merge methodology that should be used when
   18576 a non-binary file is updated.  @code{MERGE} means the usual
   18577 @sc{cvs} behavior: try to merge the files.  @code{COPY}
   18578 means that @code{cvs update} will refuse to merge
   18579 files, as it also does for files specified as binary
   18580 with @samp{-kb} (but if the file is specified as
   18581 binary, there is no need to specify @samp{-m 'COPY'}).
   18582 @sc{cvs} will provide the user with the
   18583 two versions of the files, and require the user using
   18584 mechanisms outside @sc{cvs}, to insert any necessary
   18585 changes.
   18586 
   18587 @c <en>@strong{WARNING: do not use @code{COPY} with
   18588 @c <en>@sc{cvs} 1.9 or earlier - such versions of @sc{cvs} will
   18589 @c <en>copy one version of your file over the other, wiping
   18590 @c <en>out the previous contents.}
   18591 @strong{WARNING: do not use @code{COPY} with
   18592 @sc{cvs} 1.9 or earlier - such versions of @sc{cvs} will
   18593 copy one version of your file over the other, wiping
   18594 out the previous contents.}
   18595 @c Ordinarily we don't document the behavior of old
   18596 @c versions.  But this one is so dangerous, I think we
   18597 @c must.  I almost renamed it to -m 'NOMERGE' so we
   18598 @c could say "never use -m 'COPY'".
   18599 @c <en>The @samp{-m} wrapper option only affects behavior when
   18600 @c <en>merging is done on update; it does not affect how files
   18601 @c <en>are stored.  See @ref{Binary files}, for more on
   18602 @c <en>binary files.
   18603 The @samp{-m} wrapper option only affects behavior when
   18604 merging is done on update; it does not affect how files
   18605 are stored.  See @ref{Arquivos binrios}, for more on
   18606 binary files.
   18607 
   18608 The basic format of the file @file{cvswrappers} is:
   18609 
   18610 @c FIXME: @example is all wrong for this.  Use @deffn or
   18611 @c something more sensible.
   18612 @example
   18613 wildcard     [option value][option value]...
   18614 
   18615 where option is one of
   18616 -m           update methodology      value: MERGE or COPY
   18617 -k           keyword expansion       value: expansion mode
   18618 
   18619 and value is a single-quote delimited value.
   18620 @end example
   18621 
   18622 @ignore
   18623 @example
   18624 *.nib    -f 'unwrap %s' -t 'wrap %s %s' -m 'COPY'
   18625 *.c      -t 'indent %s %s'
   18626 @end example
   18627 @c When does the filter need to be an absolute pathname
   18628 @c and when will something like the above work?  I
   18629 @c suspect it relates to the PATH of the server (which
   18630 @c in turn depends on all kinds of stuff, e.g. inetd
   18631 @c for pserver).  I'm not sure whether/where to discuss
   18632 @c this.
   18633 @c FIXME: What do the %s's stand for?
   18634 
   18635 @noindent
   18636 The above example of a @file{cvswrappers} file
   18637 states that all files/directories that end with a @code{.nib}
   18638 should be filtered with the @file{wrap} program before
   18639 checking the file into the repository. The file should
   18640 be filtered though the @file{unwrap} program when the
   18641 file is checked out of the repository. The
   18642 @file{cvswrappers} file also states that a @code{COPY}
   18643 methodology should be used when updating the files in
   18644 the repository (that is, no merging should be performed).
   18645 
   18646 @c What pitfalls arise when using indent this way?  Is
   18647 @c it a winning thing to do?  Would be nice to at least
   18648 @c hint at those issues; we want our examples to tell
   18649 @c how to solve problems, not just to say that cvs can
   18650 @c do certain things.
   18651 The last example line says that all files that end with
   18652 @code{.c} should be filtered with @file{indent}
   18653 before being checked into the repository. Unlike the previous
   18654 example, no filtering of the @code{.c} file is done when
   18655 it is checked out of the repository.
   18656 @noindent
   18657 The @code{-t} filter is called with two arguments,
   18658 the first is the name of the file/directory to filter
   18659 and the second is the pathname to where the resulting
   18660 filtered file should be placed.
   18661 
   18662 @noindent
   18663 The @code{-f} filter is called with one argument,
   18664 which is the name of the file to filter from. The end
   18665 result of this filter will be a file in the users directory
   18666 that they can work on as they normally would.
   18667 
   18668 Note that the @samp{-t}/@samp{-f} features do not
   18669 conveniently handle one portion of @sc{cvs}'s operation:
   18670 determining when files are modified.  @sc{cvs} will still
   18671 want a file (or directory) to exist, and it will use
   18672 its modification time to determine whether a file is
   18673 modified.  If @sc{cvs} erroneously thinks a file is
   18674 unmodified (for example, a directory is unchanged but
   18675 one of the files within it is changed), you can force
   18676 it to check in the file anyway by specifying the
   18677 @samp{-f} option to @code{cvs commit} (@pxref{commit
   18678 options}).
   18679 @c This is, of course, a serious design flaw in -t/-f.
   18680 @c Probably the whole functionality needs to be
   18681 @c redesigned (starting from requirements) to fix this.
   18682 @end ignore
   18683 
   18684 @c FIXME: We don't document -W or point to where it is
   18685 @c documented.  Or .cvswrappers.
   18686 For example, the following command imports a
   18687 directory, treating files whose name ends in
   18688 @samp{.exe} as binary:
   18689 
   18690 @example
   18691 cvs import -I ! -W "*.exe -k 'b'" first-dir vendortag reltag
   18692 @end example
   18693 
   18694 @c Another good example, would be storing files
   18695 @c (e.g. binary files) compressed in the repository.
   18696 @c 	::::::::::::::::::
   18697 @c 	cvswrappers
   18698 @c 	::::::::::::::::::
   18699 @c 	*.t12 -m 'COPY'
   18700 @c 	*.t[0-9][0-9] -f 'gunzipcp %s' -t 'gzipcp %s %s' -m 'COPY'
   18701 @c
   18702 @c	::::::::::::::::::
   18703 @c	gunzipcp
   18704 @c	::::::::::::::::::
   18705 @c	:
   18706 @c	[ -f $1 ] || exit 1
   18707 @c	zcat $1 > /tmp/.#$1.$$
   18708 @c	mv /tmp/.#$1.$$ $1
   18709 @c
   18710 @c	::::::::::::::::::
   18711 @c	gzipcp
   18712 @c	::::::::::::::::::
   18713 @c	:
   18714 @c	DIRNAME=`echo $1 | sed -e "s|/.*/||g"`
   18715 @c	if [ ! -d $DIRNAME ] ; then
   18716 @c	      DIRNAME=`echo $1 | sed -e "s|.*/||g"`
   18717 @c	fi
   18718 @c	gzip -c  $DIRNAME  > $2
   18719 @c One catch--"cvs diff" will not invoke the wrappers
   18720 @c (probably a CVS bug, although I haven't thought it out).
   18721 
   18722 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   18723 @c <en>@node commit files
   18724 @node Arquivos de ???commit???
   18725 @c <en>@appendixsec The commit support files
   18726 @appendixsec The commit support files
   18727 @c <en>@cindex Committing, administrative support files
   18728 @cindex Committing, administrative support files
   18729 
   18730 The @samp{-i} flag in the @file{modules} file can be
   18731 used to run a certain program whenever files are
   18732 committed (@pxref{modules}).  The files described in
   18733 this section provide other, more flexible, ways to run
   18734 programs whenever something is committed.
   18735 
   18736 There are three kind of programs that can be run on
   18737 commit.  They are specified in files in the repository,
   18738 as described below.  The following table summarizes the
   18739 file names and the purpose of the corresponding
   18740 programs.
   18741 
   18742 @table @file
   18743 @item commitinfo
   18744 The program is responsible for checking that the commit
   18745 is allowed.  If it exits with a non-zero exit status
   18746 the commit will be aborted.
   18747 
   18748 @item verifymsg
   18749 The specified program is used to evaluate the log message,
   18750 and possibly verify that it contains all required
   18751 fields.  This is most useful in combination with the
   18752 @file{rcsinfo} file, which can hold a log message
   18753 template (@pxref{rcsinfo}).
   18754 
   18755 @item loginfo
   18756 The specified program is called when the commit is
   18757 complete.  It receives the log message and some
   18758 additional information and can store the log message in
   18759 a file, or mail it to appropriate persons, or maybe
   18760 post it to a local newsgroup, or@dots{}  Your
   18761 imagination is the limit!
   18762 @end table
   18763 
   18764 @menu
   18765 * syntax::                      The common syntax
   18766 * commitinfo::                  Pre-commit checking
   18767 * verifymsg::                   How are log messages evaluated?
   18768 * loginfo::                     Where should log messages be sent?
   18769 @end menu
   18770 
   18771 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   18772 @node syntax
   18773 @appendixsubsec The common syntax
   18774 @cindex Info files (syntax)
   18775 @cindex Syntax of info files
   18776 @cindex Common syntax of info files
   18777 
   18778 @c FIXME: having this so totally separate from the
   18779 @c Variables node is rather bogus.
   18780 
   18781 The administrative files such as @file{commitinfo},
   18782 @file{loginfo}, @file{rcsinfo}, @file{verifymsg}, etc.,
   18783 all have a common format.  The purpose of the files are
   18784 described later on.  The common syntax is described
   18785 here.
   18786 
   18787 @cindex Regular expression syntax
   18788 Each line contains the following:
   18789 @itemize @bullet
   18790 @item
   18791 @c Say anything about DEFAULT and ALL?  Right now we
   18792 @c leave that to the description of each file (and in fact
   18793 @c the practice is inconsistent which is really annoying).
   18794 A regular expression.  This is a basic regular
   18795 expression in the syntax used by GNU emacs.
   18796 @c FIXME: What we probably should be saying is "POSIX Basic
   18797 @c Regular Expression with the following extensions (`\('
   18798 @c `\|' '+' etc)"
   18799 @c rather than define it with reference to emacs.
   18800 @c The reference to emacs is not strictly speaking
   18801 @c true, as we don't support \=, \s, or \S.  Also it isn't
   18802 @c clear we should document and/or promise to continue to
   18803 @c support all the obscure emacs extensions like \<.
   18804 @c Also need to better cite (or include) full
   18805 @c documentation for the syntax.
   18806 @c Also see comment in configure.in about what happens to the
   18807 @c syntax if we pick up a system-supplied regexp matcher.
   18808 
   18809 @item
   18810 A whitespace separator---one or more spaces and/or tabs.
   18811 
   18812 @item
   18813 A file name or command-line template.
   18814 @end itemize
   18815 
   18816 @noindent
   18817 Blank lines are ignored.  Lines that start with the
   18818 character @samp{#} are treated as comments.  Long lines
   18819 unfortunately can @emph{not} be broken in two parts in
   18820 any way.
   18821 
   18822 The first regular expression that matches the current
   18823 directory name in the repository is used.  The rest of the line
   18824 is used as a file name or command-line as appropriate.
   18825 
   18826 @c FIXME: need an example.  In particular, show what
   18827 @c the regular expression is matched against (one
   18828 @c ordinarily clueful person got confused about whether it
   18829 @c includes the filename--"directory name" above should be
   18830 @c unambiguous but there is nothing like an example to
   18831 @c confirm people's understanding of this sort of thing).
   18832 
   18833 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   18834 @node commitinfo
   18835 @appendixsubsec Commitinfo
   18836 @cindex @file{commitinfo}
   18837 @cindex Commits, precommit verification of
   18838 @cindex Precommit checking
   18839 
   18840 The @file{commitinfo} file defines programs to execute
   18841 whenever @samp{cvs commit} is about to execute.  These
   18842 programs are used for pre-commit checking to verify
   18843 that the modified, added and removed files are really
   18844 ready to be committed.  This could be used, for
   18845 instance, to verify that the changed files conform to
   18846 to your site's standards for coding practice.
   18847 
   18848 As mentioned earlier, each line in the
   18849 @file{commitinfo} file consists of a regular expression
   18850 and a command-line template.  The template can include
   18851 a program name and any number of arguments you wish to
   18852 supply to it.  The full path to the current source
   18853 repository is appended to the template, followed by the
   18854 file names of any files involved in the commit (added,
   18855 removed, and modified files).
   18856 
   18857 @cindex Exit status, of commitinfo
   18858 The first line with a regular expression matching the
   18859 directory within the repository will be used.  If the
   18860 command returns a non-zero exit status the commit will
   18861 be aborted.
   18862 @c FIXME: need example(s) of what "directory within the
   18863 @c repository" means.
   18864 
   18865 @cindex DEFAULT in commitinfo
   18866 If the repository name does not match any of the
   18867 regular expressions in this file, the @samp{DEFAULT}
   18868 line is used, if it is specified.
   18869 
   18870 @cindex ALL in commitinfo
   18871 All occurrences of the name @samp{ALL} appearing as a
   18872 regular expression are used in addition to the first
   18873 matching regular expression or the name @samp{DEFAULT}.
   18874 
   18875 @c <en>@cindex @file{commitinfo}, working directory
   18876 @cindex @file{commitinfo}, working directory
   18877 @c <en>@cindex @file{commitinfo}, command environment
   18878 @cindex @file{commitinfo}, command environment
   18879 @c <en>The command will be run in the root of the workspace
   18880 @c <en>containing the new versions of any files the user would like
   18881 @c <en>to modify (commit), @emph{or in a copy of the workspace on
   18882 @c <en>the server (@pxref{Remote repositories})}.  If a file is
   18883 @c <en>being removed, there will be no copy of the file under the
   18884 @c <en>current directory.  If a file is being added, there will be
   18885 @c <en>no corresponding archive file in the repository unless the
   18886 @c <en>file is being resurrected.
   18887 The command will be run in the root of the workspace
   18888 containing the new versions of any files the user would like
   18889 to modify (commit), @emph{or in a copy of the workspace on
   18890 the server (@pxref{Repositrios remotos})}.  If a file is
   18891 being removed, there will be no copy of the file under the
   18892 current directory.  If a file is being added, there will be
   18893 no corresponding archive file in the repository unless the
   18894 file is being resurrected.
   18895 
   18896 Note that both the repository directory and the corresponding
   18897 Attic (@pxref{Attic}) directory may need to be checked to
   18898 locate the archive file corresponding to any given file being
   18899 committed.  Much of the information about the specific commit
   18900 request being made, including the destination branch, commit
   18901 message, and command line options specified, is not available
   18902 to the command.
   18903 
   18904 @c FIXME: should discuss using commitinfo to control
   18905 @c who has checkin access to what (e.g. Joe can check into
   18906 @c directories a, b, and c, and Mary can check into
   18907 @c directories b, c, and d--note this case cannot be
   18908 @c conveniently handled with unix groups).  Of course,
   18909 @c adding a new set of features to CVS might be a more
   18910 @c natural way to fix this problem than telling people to
   18911 @c use commitinfo.
   18912 @c FIXME: Should make some reference, especially in
   18913 @c the context of controlling who has access, to the fact
   18914 @c that commitinfo can be circumvented.  Perhaps
   18915 @c mention SETXID (but has it been carefully examined
   18916 @c for holes?).  This fits in with the discussion of
   18917 @c general CVS security in "Password authentication
   18918 @c security" (the bit which is not pserver-specific).
   18919 
   18920 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   18921 @node verifymsg
   18922 @appendixsubsec Verifying log messages
   18923 @cindex @file{verifymsg} (admin file)
   18924 @cindex Log message, verifying
   18925 
   18926 Once you have entered a log message, you can evaluate
   18927 that message to check for specific content, such as
   18928 a bug ID.  Use the @file{verifymsg} file to
   18929 specify a program that is used to verify the log message.
   18930 This program could be a simple script that checks
   18931 that the entered message contains the required fields.
   18932 
   18933 The @file{verifymsg} file is often most useful together
   18934 with the @file{rcsinfo} file, which can be used to
   18935 specify a log message template.
   18936 
   18937 Each line in the @file{verifymsg} file consists of a
   18938 regular expression and a command-line template.  The
   18939 template must include a program name, and can include
   18940 any number of arguments.  The full path to the current
   18941 log message template file is appended to the template.
   18942 
   18943 One thing that should be noted is that the @samp{ALL}
   18944 keyword is not supported.  If more than one matching
   18945 line is found, the first one is used.  This can be
   18946 useful for specifying a default verification script in a
   18947 directory, and then overriding it in a subdirectory.
   18948 
   18949 @cindex DEFAULT in @file{verifymsg}
   18950 If the repository name does not match any of the
   18951 regular expressions in this file, the @samp{DEFAULT}
   18952 line is used, if it is specified.
   18953 
   18954 @cindex Exit status, of @file{verifymsg}
   18955 If the verification script exits with a non-zero exit status,
   18956 the commit is aborted.
   18957 
   18958 @cindex @file{verifymsg}, changing the log message
   18959 In the default configuration, CVS allows the
   18960 verification script to change the log message. This is
   18961 controlled via the RereadLogAfterVerify CVSROOT/config
   18962 option.
   18963 
   18964 When @samp{RereadLogAfterVerify=always} or
   18965 @samp{RereadLogAfterVerify=stat}, the log message will
   18966 either always be reread after the verification script
   18967 is run or reread only if the log message file status
   18968 has changed.
   18969 
   18970 @xref{config}, for more on CVSROOT/config options.
   18971 
   18972 @c <en>It is NOT a good idea for a @file{verifymsg} script to
   18973 @c <en>interact directly with the user in the various
   18974 @c <en>client/server methods. For the @code{pserver} method,
   18975 @c <en>there is no protocol support for communicating between
   18976 @c <en>@file{verifymsg} and the client on the remote end. For the
   18977 @c <en>@code{ext} and @code{server} methods, it is possible
   18978 @c <en>for CVS to become confused by the characters going
   18979 @c <en>along the same channel as the CVS protocol
   18980 @c <en>messages. See @ref{Remote repositories}, for more
   18981 @c <en>information on client/server setups.  In addition, at the time
   18982 @c <en>the @file{verifymsg} script runs, the CVS
   18983 @c <en>server has locks in place in the repository.  If control is
   18984 @c <en>returned to the user here then other users may be stuck waiting
   18985 @c <en>for access to the repository.
   18986 It is NOT a good idea for a @file{verifymsg} script to
   18987 interact directly with the user in the various
   18988 client/server methods. For the @code{pserver} method,
   18989 there is no protocol support for communicating between
   18990 @file{verifymsg} and the client on the remote end. For the
   18991 @code{ext} and @code{server} methods, it is possible
   18992 for CVS to become confused by the characters going
   18993 along the same channel as the CVS protocol
   18994 messages. See @ref{Repositrios remotos}, for more
   18995 information on client/server setups.  In addition, at the time
   18996 the @file{verifymsg} script runs, the CVS
   18997 server has locks in place in the repository.  If control is
   18998 returned to the user here then other users may be stuck waiting
   18999 for access to the repository.
   19000 
   19001 This option can be useful if you find yourself using an
   19002 rcstemplate that needs to be modified to remove empty
   19003 elements or to fill in default values.  It can also be
   19004 useful if the rcstemplate has changed in the repository
   19005 and the CVS/Template was not updated, but is able to be
   19006 adapted to the new format by the verification script
   19007 that is run by @file{verifymsg}.
   19008 
   19009 An example of an update might be to change all
   19010 occurrences of 'BugId:' to be 'DefectId:' (which can be
   19011 useful if the rcstemplate has recently been changed and
   19012 there are still checked-out user trees with cached
   19013 copies in the CVS/Template file of the older version).
   19014 
   19015 Another example of an update might be to delete a line
   19016 that contains 'BugID: none' from the log message after
   19017 validation of that value as being allowed is made.
   19018 
   19019 The following is a little silly example of a
   19020 @file{verifymsg} file, together with the corresponding
   19021 @file{rcsinfo} file, the log message template and an
   19022 verification  script.  We begin with the log message template.
   19023 We want to always record a bug-id number on the first
   19024 line of the log message.  The rest of log message is
   19025 free text.  The following template is found in the file
   19026 @file{/usr/cvssupport/tc.template}.
   19027 
   19028 @example
   19029 BugId:
   19030 @end example
   19031 
   19032 The script @file{/usr/cvssupport/bugid.verify} is used to
   19033 evaluate the log message.
   19034 
   19035 @example
   19036 #!/bin/sh
   19037 #
   19038 #       bugid.verify filename
   19039 #
   19040 #  Verify that the log message contains a valid bugid
   19041 #  on the first line.
   19042 #
   19043 if sed 1q < $1 | grep '^BugId:[ ]*[0-9][0-9]*$' > /dev/null; then
   19044     exit 0
   19045 elif sed 1q < $1 | grep '^BugId:[ ]*none$' > /dev/null; then
   19046     # It is okay to allow commits with 'BugId: none',
   19047     # but do not put that text into the real log message.
   19048     grep -v '^BugId:[ ]*none$' > $1.rewrite
   19049     mv $1.rewrite $1
   19050     exit 0
   19051 else
   19052     echo "No BugId found."
   19053     exit 1
   19054 fi
   19055 @end example
   19056 
   19057 The @file{verifymsg} file contains this line:
   19058 
   19059 @example
   19060 ^tc     /usr/cvssupport/bugid.verify
   19061 @end example
   19062 
   19063 The @file{rcsinfo} file contains this line:
   19064 
   19065 @example
   19066 ^tc     /usr/cvssupport/tc.template
   19067 @end example
   19068 
   19069 The @file{config} file contains this line:
   19070 
   19071 @example
   19072 RereadLogAfterVerify=always
   19073 @end example
   19074 
   19075 
   19076 
   19077 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   19078 @node loginfo
   19079 @appendixsubsec Loginfo
   19080 @cindex loginfo (admin file)
   19081 @cindex Storing log messages
   19082 @cindex Mailing log messages
   19083 @cindex Distributing log messages
   19084 @cindex Log messages
   19085 
   19086 @c "cvs commit" is not quite right.  What we
   19087 @c mean is "when the repository gets changed" which
   19088 @c also includes "cvs import" and "cvs add" on a directory.
   19089 The @file{loginfo} file is used to control where
   19090 @samp{cvs commit} log information is sent.  The first
   19091 entry on a line is a regular expression which is tested
   19092 against the directory that the change is being made to,
   19093 relative to the @code{$CVSROOT}.  If a match is found, then
   19094 the remainder of the line is a filter program that
   19095 should expect log information on its standard input.
   19096 
   19097 If the repository name does not match any of the
   19098 regular expressions in this file, the @samp{DEFAULT}
   19099 line is used, if it is specified.
   19100 
   19101 All occurrences of the name @samp{ALL} appearing as a
   19102 regular expression are used in addition to the first
   19103 matching regular expression or @samp{DEFAULT}.
   19104 
   19105 The first matching regular expression is used.
   19106 
   19107 @xref{Arquivos de ???commit???}, for a description of the syntax of
   19108 the @file{loginfo} file.
   19109 
   19110 The user may specify a format string as
   19111 part of the filter.  The string is composed of a
   19112 @samp{%} followed by a space, or followed by a single
   19113 format character, or followed by a set of format
   19114 characters surrounded by @samp{@{} and @samp{@}} as
   19115 separators.  The format characters are:
   19116 
   19117 @table @t
   19118 @item s
   19119 file name
   19120 @item V
   19121 old version number (pre-checkin)
   19122 @item v
   19123 new version number (post-checkin)
   19124 @end table
   19125 
   19126 All other characters that appear in a format string
   19127 expand to an empty field (commas separating fields are
   19128 still provided).
   19129 
   19130 For example, some valid format strings are @samp{%},
   19131 @samp{%s}, @samp{%@{s@}}, and @samp{%@{sVv@}}.
   19132 
   19133 The output will be a space separated string of tokens enclosed in
   19134 quotation marks (@t{"}).
   19135 Any embedded dollar signs (@t{$}), backticks (@t{`}),
   19136 backslashes (@t{\}), or quotation marks will be preceded
   19137 by a backslash (this allows the shell to correctly parse it
   19138 as a single string, regardless of the characters it contains).
   19139 For backwards compatibility, the first
   19140 token will be the repository subdirectory.  The rest of the
   19141 tokens will be comma-delimited lists of the information
   19142 requested in the format string.  For example, if
   19143 @samp{/u/src/master/yoyodyne/tc} is the repository, @samp{%@{sVv@}}
   19144 is the format string, and three files (@t{ChangeLog},
   19145 @t{Makefile}, @t{foo.c}) were modified, the output
   19146 might be:
   19147 
   19148 @example
   19149 "yoyodyne/tc ChangeLog,1.1,1.2 Makefile,1.3,1.4 foo.c,1.12,1.13"
   19150 @end example
   19151 
   19152 As another example, @samp{%@{@}} means that only the
   19153 name of the repository will be generated.
   19154 
   19155 Note: when @sc{cvs} is accessing a remote repository,
   19156 @file{loginfo} will be run on the @emph{remote}
   19157 (i.e., server) side, not the client side (@pxref{Repositrios remotos}).
   19158 
   19159 @menu
   19160 * loginfo example::             Loginfo example
   19161 * Keeping a checked out copy::  Updating a tree on every checkin
   19162 @end menu
   19163 
   19164 @c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   19165 @node loginfo example
   19166 @appendixsubsubsec Loginfo example
   19167 
   19168 The following @file{loginfo} file, together with the
   19169 tiny shell-script below, appends all log messages
   19170 to the file @file{$CVSROOT/CVSROOT/commitlog},
   19171 and any commits to the administrative files (inside
   19172 the @file{CVSROOT} directory) are also logged in
   19173 @file{/usr/adm/cvsroot-log}.
   19174 Commits to the @file{prog1} directory are mailed to @t{ceder}.
   19175 
   19176 @c FIXME: is it a CVS feature or bug that only the
   19177 @c first matching line is used?  It is documented
   19178 @c above, but is it useful?  For example, if we wanted
   19179 @c to run both "cvs-log" and "Mail" for the CVSROOT
   19180 @c directory, it is kind of awkward if
   19181 @c only the first matching line is used.
   19182 @example
   19183 ALL             /usr/local/bin/cvs-log $CVSROOT/CVSROOT/commitlog $USER
   19184 ^CVSROOT        /usr/local/bin/cvs-log /usr/adm/cvsroot-log
   19185 ^prog1          Mail -s %s ceder
   19186 @end example
   19187 
   19188 The shell-script @file{/usr/local/bin/cvs-log} looks
   19189 like this:
   19190 
   19191 @example
   19192 #!/bin/sh
   19193 (echo "------------------------------------------------------";
   19194  echo -n $2"  ";
   19195  date;
   19196  echo;
   19197  cat) >> $1
   19198 @end example
   19199 
   19200 @node Keeping a checked out copy
   19201 @appendixsubsubsec Keeping a checked out copy
   19202 
   19203 @c What other index entries?  It seems like
   19204 @c people might want to use a lot of different
   19205 @c words for this functionality.
   19206 @cindex Keeping a checked out copy
   19207 @cindex Checked out copy, keeping
   19208 @cindex Web pages, maintaining with CVS
   19209 
   19210 It is often useful to maintain a directory tree which
   19211 contains files which correspond to the latest version
   19212 in the repository.  For example, other developers might
   19213 want to refer to the latest sources without having to
   19214 check them out, or you might be maintaining a web site
   19215 with @sc{cvs} and want every checkin to cause the files
   19216 used by the web server to be updated.
   19217 @c Can we offer more details on the web example?  Or
   19218 @c point the user at how to figure it out?  This text
   19219 @c strikes me as sufficient for someone who already has
   19220 @c some idea of what we mean but not enough for the naive
   19221 @c user/sysadmin to understand it and set it up.
   19222 
   19223 The way to do this is by having loginfo invoke
   19224 @code{cvs update}.  Doing so in the naive way will
   19225 cause a problem with locks, so the @code{cvs update}
   19226 must be run in the background.
   19227 @c Should we try to describe the problem with locks?
   19228 @c It seems like a digression for someone who just
   19229 @c wants to know how to make it work.
   19230 @c Another choice which might work for a single file
   19231 @c is to use "cvs -n update -p" which doesn't take
   19232 @c out locks (I think) but I don't see many advantages
   19233 @c of that and we might as well document something which
   19234 @c works for multiple files.
   19235 Here is an example for unix (this should all be on one line):
   19236 
   19237 @example
   19238 ^cyclic-pages		(date; cat; (sleep 2; cd /u/www/local-docs;
   19239  cvs -q update -d) &) >> $CVSROOT/CVSROOT/updatelog 2>&1
   19240 @end example
   19241 
   19242 This will cause checkins to repository directories
   19243 starting with @code{cyclic-pages} to update the checked
   19244 out tree in @file{/u/www/local-docs}.
   19245 @c More info on some of the details?  The "sleep 2" is
   19246 @c so if we are lucky the lock will be gone by the time
   19247 @c we start and we can wait 2 seconds instead of 30.
   19248 
   19249 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   19250 @node rcsinfo
   19251 @appendixsec Rcsinfo
   19252 @cindex rcsinfo (admin file)
   19253 @cindex Form for log message
   19254 @cindex Log message template
   19255 @cindex Template for log message
   19256 
   19257 The @file{rcsinfo} file can be used to specify a form to
   19258 edit when filling out the commit log.  The
   19259 @file{rcsinfo} file has a syntax similar to the
   19260 @file{verifymsg}, @file{commitinfo} and @file{loginfo}
   19261 files.  @xref{syntax}.  Unlike the other files the second
   19262 part is @emph{not} a command-line template.  Instead,
   19263 the part after the regular expression should be a full pathname to
   19264 a file containing the log message template.
   19265 
   19266 If the repository name does not match any of the
   19267 regular expressions in this file, the @samp{DEFAULT}
   19268 line is used, if it is specified.
   19269 
   19270 All occurrences of the name @samp{ALL} appearing as a
   19271 regular expression are used in addition to the first
   19272 matching regular expression or @samp{DEFAULT}.
   19273 
   19274 @c FIXME: should be offering advice, somewhere around
   19275 @c here, about where to put the template file.  The
   19276 @c verifymsg example uses /usr/cvssupport but doesn't
   19277 @c say anything about what that directory is for or
   19278 @c whether it is hardwired into CVS or who creates
   19279 @c it or anything.  In particular we should say
   19280 @c how to version control the template file.  A
   19281 @c probably better answer than the /usr/cvssupport
   19282 @c stuff is to use checkoutlist (with xref to the
   19283 @c checkoutlist doc).
   19284 @c Also I am starting to see a connection between
   19285 @c this and the Keeping a checked out copy node.
   19286 @c Probably want to say something about that.
   19287 The log message template will be used as a default log
   19288 message.  If you specify a log message with @samp{cvs
   19289 commit -m @var{message}} or @samp{cvs commit -f
   19290 @var{file}} that log message will override the
   19291 template.
   19292 
   19293 @xref{verifymsg}, for an example @file{rcsinfo}
   19294 file.
   19295 
   19296 When @sc{cvs} is accessing a remote repository,
   19297 the contents of @file{rcsinfo} at the time a directory
   19298 is first checked out will specify a template. This
   19299 template will be updated on all @samp{cvs update}
   19300 commands. It will also be added to new directories
   19301 added with a @samp{cvs add new-directry} command.
   19302 In versions of @sc{cvs} prior to version 1.12, the
   19303 @file{CVS/Template} file was not updated. If the
   19304 @sc{cvs} server is at version 1.12 or higher an older
   19305 client may be used and the @file{CVS/Template} will
   19306 be updated from the server.
   19307 
   19308 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   19309 @c <en>@node taginfo
   19310 @node taginfo
   19311 @c <en>@appendixsec Taginfo
   19312 @appendixsec Taginfo
   19313 @c <en>@cindex taginfo (admin file)
   19314 @cindex taginfo (admin file)
   19315 @c <en>@cindex Tags, logging
   19316 @cindex Tags, logging
   19317 @c <en>@cindex Tags, verifying
   19318 @cindex Tags, verifying
   19319 @c <en>The @file{taginfo} file defines programs to execute
   19320 @c <en>when someone executes a @code{tag} or @code{rtag}
   19321 @c <en>command.  The @file{taginfo} file has the standard form
   19322 @c <en>for administrative files (@pxref{syntax}),
   19323 @c <en>where each line is a regular expression
   19324 @c <en>followed by a command to execute.  The arguments passed
   19325 @c <en>to the command are, in order, the @var{tagname},
   19326 @c <en>@var{operation} (@code{add} for @code{tag},
   19327 @c <en>@code{mov} for @code{tag -F}, and @code{del} for
   19328 @c <en>@code{tag -d}), @var{repository}, and any remaining are
   19329 @c <en>pairs of @var{filename} @var{revision}.  A non-zero
   19330 @c <en>exit of the filter program will cause the tag to be
   19331 @c <en>aborted.
   19332 The @file{taginfo} file defines programs to execute
   19333 when someone executes a @code{tag} or @code{rtag}
   19334 command.  The @file{taginfo} file has the standard form
   19335 for administrative files (@pxref{syntax}),
   19336 where each line is a regular expression
   19337 followed by a command to execute.  The arguments passed
   19338 to the command are, in order, the @var{tagname},
   19339 @var{operation} (@code{add} for @code{tag},
   19340 @code{mov} for @code{tag -F}, and @code{del} for
   19341 @code{tag -d}), @var{repository}, and any remaining are
   19342 pairs of @var{filename} @var{revision}.  A non-zero
   19343 exit of the filter program will cause the tag to be
   19344 aborted.
   19345 
   19346 @c <en>Here is an example of using the @file{taginfo} file
   19347 @c <en>to log @code{tag} and @code{rtag}
   19348 @c <en>commands.  In the @file{taginfo} file put:
   19349 Here is an example of using the @file{taginfo} file
   19350 to log @code{tag} and @code{rtag}
   19351 commands.  In the @file{taginfo} file put:
   19352 
   19353 @example
   19354 ALL /usr/local/cvsroot/CVSROOT/loggit
   19355 @end example
   19356 
   19357 @noindent
   19358 @c <en>Where @file{/usr/local/cvsroot/CVSROOT/loggit} contains the
   19359 @c <en>following script:
   19360 Where @file{/usr/local/cvsroot/CVSROOT/loggit} contains the
   19361 following script:
   19362 
   19363 @example
   19364 #!/bin/sh
   19365 echo "$@@" >>/home/kingdon/cvsroot/CVSROOT/taglog
   19366 @end example
   19367 
   19368 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   19369 @node cvsignore
   19370 @appendixsec Ignoring files via cvsignore
   19371 @cindex cvsignore (admin file), global
   19372 @cindex Global cvsignore
   19373 @cindex Ignoring files
   19374 @c -- This chapter should maybe be moved to the
   19375 @c tutorial part of the manual?
   19376 
   19377 There are certain file names that frequently occur
   19378 inside your working copy, but that you don't want to
   19379 put under @sc{cvs} control.  Examples are all the object
   19380 files that you get while you compile your sources.
   19381 Normally, when you run @samp{cvs update}, it prints a
   19382 line for each file it encounters that it doesn't know
   19383 about (@pxref{update output}).
   19384 
   19385 @sc{cvs} has a list of files (or sh(1) file name patterns)
   19386 that it should ignore while running @code{update},
   19387 @code{import} and @code{release}.
   19388 @c -- Are those the only three commands affected?
   19389 This list is constructed in the following way.
   19390 
   19391 @itemize @bullet
   19392 @item
   19393 The list is initialized to include certain file name
   19394 patterns: names associated with @sc{cvs}
   19395 administration, or with other common source control
   19396 systems; common names for patch files, object files,
   19397 archive files, and editor backup files; and other names
   19398 that are usually artifacts of assorted utilities.
   19399 Currently, the default list of ignored file name
   19400 patterns is:
   19401 
   19402 @cindex Ignored files
   19403 @cindex Automatically ignored files
   19404 @example
   19405     RCS     SCCS    CVS     CVS.adm
   19406     RCSLOG  cvslog.*
   19407     tags    TAGS
   19408     .make.state     .nse_depinfo
   19409     *~      #*      .#*     ,*      _$*     *$
   19410     *.old   *.bak   *.BAK   *.orig  *.rej   .del-*
   19411     *.a     *.olb   *.o     *.obj   *.so    *.exe
   19412     *.Z     *.elc   *.ln
   19413     core
   19414 @end example
   19415 
   19416 @item
   19417 The per-repository list in
   19418 @file{$CVSROOT/CVSROOT/cvsignore} is appended to
   19419 the list, if that file exists.
   19420 
   19421 @item
   19422 The per-user list in @file{.cvsignore} in your home
   19423 directory is appended to the list, if it exists.
   19424 
   19425 @item
   19426 Any entries in the environment variable
   19427 @code{$CVSIGNORE} is appended to the list.
   19428 
   19429 @item
   19430 Any @samp{-I} options given to @sc{cvs} is appended.
   19431 
   19432 @item
   19433 As @sc{cvs} traverses through your directories, the contents
   19434 of any @file{.cvsignore} will be appended to the list.
   19435 The patterns found in @file{.cvsignore} are only valid
   19436 for the directory that contains them, not for
   19437 any sub-directories.
   19438 @end itemize
   19439 
   19440 In any of the 5 places listed above, a single
   19441 exclamation mark (@samp{!}) clears the ignore list.
   19442 This can be used if you want to store any file which
   19443 normally is ignored by @sc{cvs}.
   19444 
   19445 Specifying @samp{-I !} to @code{cvs import} will import
   19446 everything, which is generally what you want to do if
   19447 you are importing files from a pristine distribution or
   19448 any other source which is known to not contain any
   19449 extraneous files.  However, looking at the rules above
   19450 you will see there is a fly in the ointment; if the
   19451 distribution contains any @file{.cvsignore} files, then
   19452 the patterns from those files will be processed even if
   19453 @samp{-I !} is specified.  The only workaround is to
   19454 remove the @file{.cvsignore} files in order to do the
   19455 import.  Because this is awkward, in the future
   19456 @samp{-I !} might be modified to override
   19457 @file{.cvsignore} files in each directory.
   19458 
   19459 Note that the syntax of the ignore files consists of a
   19460 series of lines, each of which contains a space
   19461 separated list of filenames.  This offers no clean way
   19462 to specify filenames which contain spaces, but you can
   19463 use a workaround like @file{foo?bar} to match a file
   19464 named @file{foo bar} (it also matches @file{fooxbar}
   19465 and the like).  Also note that there is currently no
   19466 way to specify comments.
   19467 @c FIXCVS?  I don't _like_ this syntax at all, but
   19468 @c changing it raises all the usual compatibility
   19469 @c issues and I'm also not sure what to change it to.
   19470 
   19471 @node checkoutlist
   19472 @appendixsec The checkoutlist file
   19473 @cindex checkoutlist
   19474 
   19475 It may be helpful to use @sc{cvs} to maintain your own
   19476 files in the @file{CVSROOT} directory.  For example,
   19477 suppose that you have a script @file{logcommit.pl}
   19478 which you run by including the following line in the
   19479 @file{commitinfo} administrative file:
   19480 
   19481 @example
   19482 ALL   $CVSROOT/CVSROOT/logcommit.pl
   19483 @end example
   19484 
   19485 To maintain @file{logcommit.pl} with @sc{cvs} you would
   19486 add the following line to the @file{checkoutlist}
   19487 administrative file:
   19488 
   19489 @example
   19490 logcommit.pl
   19491 @end example
   19492 
   19493 The format of @file{checkoutlist} is one line for each
   19494 file that you want to maintain using @sc{cvs}, giving
   19495 the name of the file, followed optionally by more whitespace
   19496 and any error message that should print if the file cannot be
   19497 checked out into CVSROOT after a commit:
   19498 
   19499 @example
   19500 logcommit.pl	Could not update CVSROOT/logcommit.pl.
   19501 @end example
   19502 
   19503 After setting up @file{checkoutlist} in this fashion,
   19504 the files listed there will function just like
   19505 @sc{cvs}'s built-in administrative files.  For example,
   19506 when checking in one of the files you should get a
   19507 message such as:
   19508 
   19509 @example
   19510 cvs commit: Rebuilding administrative file database
   19511 @end example
   19512 
   19513 @noindent
   19514 and the checked out copy in the @file{CVSROOT}
   19515 directory should be updated.
   19516 
   19517 @c <en>Note that listing @file{passwd} (@pxref{Password
   19518 @c <en>authentication server}) in @file{checkoutlist} is not
   19519 @c <en>recommended for security reasons.
   19520 Note that listing @file{passwd}
   19521 (@pxref{Servidor de autenticao por senha}) in @file{checkoutlist} is not
   19522 recommended for security reasons.
   19523 
   19524 For information about keeping a checkout out copy in a
   19525 more general context than the one provided by
   19526 @file{checkoutlist}, see @ref{Keeping a checked out
   19527 copy}.
   19528 
   19529 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   19530 @c <en>@node history file
   19531 @node arquivo history (histrico)
   19532 @c <en>@appendixsec The history file
   19533 @appendixsec O arquivo history (histrico)
   19534 @c <en>@cindex History file
   19535 @cindex Arquivo history (histrico)
   19536 @c <en>@cindex Log information, saving
   19537 @cindex Log information, saving
   19538 
   19539 @c <en>The file @file{$CVSROOT/CVSROOT/history} is used
   19540 @c <en>to log information for the @code{history} command
   19541 @c <en>(@pxref{history}).  This file must be created to turn
   19542 @c <en>on logging.  This is done automatically if the
   19543 @c <en>@code{cvs init} command is used to set up the
   19544 @c <en>repository (@pxref{Creating a repository}).
   19545 The file @file{$CVSROOT/CVSROOT/history} is used
   19546 to log information for the @code{history} command
   19547 (@pxref{history}).  This file must be created to turn
   19548 on logging.  This is done automatically if the
   19549 @code{cvs init} command is used to set up the
   19550 repository (@pxref{Criando um repositrio}).
   19551 
   19552 The file format of the @file{history} file is
   19553 documented only in comments in the @sc{cvs} source
   19554 code, but generally programs should use the @code{cvs
   19555 history} command to access it anyway, in case the
   19556 format changes with future releases of @sc{cvs}.
   19557 
   19558 @node Variables
   19559 @appendixsec Expansions in administrative files
   19560 @cindex Internal variables
   19561 @cindex Variables
   19562 
   19563 Sometimes in writing an administrative file, you might
   19564 want the file to be able to know various things based
   19565 on environment @sc{cvs} is running in.  There are
   19566 several mechanisms to do that.
   19567 
   19568 @c <en>To find the home directory of the user running @sc{cvs}
   19569 @c <en>(from the @code{HOME} environment variable), use
   19570 @c <en>@samp{~} followed by @samp{/} or the end of the line.
   19571 @c <en>Likewise for the home directory of @var{user}, use
   19572 @c <en>@samp{~@var{user}}.  These variables are expanded on
   19573 @c <en>the server machine, and don't get any reasonable
   19574 @c <en>expansion if pserver (@pxref{Password authenticated})
   19575 @c <en>is in use; therefore user variables (see below) may be
   19576 @c <en>a better choice to customize behavior based on the user
   19577 @c <en>running @sc{cvs}.
   19578 To find the home directory of the user running @sc{cvs}
   19579 (from the @code{HOME} environment variable), use
   19580 @samp{~} followed by @samp{/} or the end of the line.
   19581 Likewise for the home directory of @var{user}, use
   19582 @samp{~@var{user}}.  These variables are expanded on
   19583 the server machine, and don't get any reasonable
   19584 expansion if pserver (@pxref{Autenticao por senha})
   19585 is in use; therefore user variables (see below) may be
   19586 a better choice to customize behavior based on the user
   19587 running @sc{cvs}.
   19588 @c Based on these limitations, should we deprecate ~?
   19589 @c What is it good for?  Are people using it?
   19590 
   19591 One may want to know about various pieces of
   19592 information internal to @sc{cvs}.  A @sc{cvs} internal
   19593 variable has the syntax @code{$@{@var{variable}@}},
   19594 where @var{variable} starts with a letter and consists
   19595 of alphanumeric characters and @samp{_}.  If the
   19596 character following @var{variable} is a
   19597 non-alphanumeric character other than @samp{_}, the
   19598 @samp{@{} and @samp{@}} can be omitted.  The @sc{cvs}
   19599 internal variables are:
   19600 
   19601 @table @code
   19602 @c <en>@item CVSROOT
   19603 @item CVSROOT
   19604 @c <en>@cindex CVSROOT, internal variable
   19605 @cindex CVSROOT, internal variable
   19606 @c <en>This is the absolute path to the current @sc{cvs} root directory.
   19607 @c <en>@xref{Repository}, for a description of the various
   19608 @c <en>ways to specify this, but note that the internal
   19609 @c <en>variable contains just the directory and not any
   19610 @c <en>of the access method information.
   19611 This is the absolute path to the current @sc{cvs} root directory.
   19612 @xref{Repositrio}, for a description of the various
   19613 ways to specify this, but note that the internal
   19614 variable contains just the directory and not any
   19615 of the access method information.
   19616 
   19617 @item RCSBIN
   19618 @cindex RCSBIN, internal variable
   19619 In @sc{cvs} 1.9.18 and older, this specified the
   19620 directory where @sc{cvs} was looking for @sc{rcs}
   19621 programs.  Because @sc{cvs} no longer runs @sc{rcs}
   19622 programs, specifying this internal variable is now an
   19623 error.
   19624 
   19625 @c <en>@item CVSEDITOR
   19626 @item CVSEDITOR
   19627 @c <en>@cindex CVSEDITOR, internal variable
   19628 @cindex CVSEDITOR, internal variable
   19629 @c <en>@itemx EDITOR
   19630 @itemx EDITOR
   19631 @c <en>@cindex EDITOR, internal variable
   19632 @cindex EDITOR, internal variable
   19633 @c <en>@itemx VISUAL
   19634 @itemx VISUAL
   19635 @c <en>@cindex VISUAL, internal variable
   19636 @cindex VISUAL, internal variable
   19637 @c <en>These all expand to the same value, which is the editor
   19638 @c <en>that @sc{cvs} is using.  @xref{Global options}, for how
   19639 @c <en>to specify this.
   19640 These all expand to the same value, which is the editor
   19641 that @sc{cvs} is using.  @xref{Opes globais}, for how
   19642 to specify this.
   19643 
   19644 @c <en>@item USER
   19645 @item USER
   19646 @c <en>@cindex USER, internal variable
   19647 @cindex USER, internal variable
   19648 @c <en>Username of the user running @sc{cvs} (on the @sc{cvs}
   19649 @c <en>server machine).
   19650 @c <en>When using pserver, this is the user specified in the repository
   19651 @c <en>specification which need not be the same as the username the
   19652 @c <en>server is running as (@pxref{Password authentication server}).
   19653 @c <en>Do not confuse this with the environment variable of the same name.
   19654 Username of the user running @sc{cvs} (on the @sc{cvs}
   19655 server machine).
   19656 When using pserver, this is the user specified in the repository
   19657 specification which need not be the same as the username the
   19658 server is running as (@pxref{Servidor de autenticao por senha}).
   19659 Do not confuse this with the environment variable of the same name.
   19660 @end table
   19661 
   19662 If you want to pass a value to the administrative files
   19663 which the user who is running @sc{cvs} can specify,
   19664 use a user variable.
   19665 @cindex User variables
   19666 To expand a user variable, the
   19667 administrative file contains
   19668 @code{$@{=@var{variable}@}}.  To set a user variable,
   19669 specify the global option @samp{-s} to @sc{cvs}, with
   19670 argument @code{@var{variable}=@var{value}}.  It may be
   19671 particularly useful to specify this option via
   19672 @file{.cvsrc} (@pxref{~/.cvsrc}).
   19673 
   19674 For example, if you want the administrative file to
   19675 refer to a test directory you might create a user
   19676 variable @code{TESTDIR}.  Then if @sc{cvs} is invoked
   19677 as
   19678 
   19679 @example
   19680 cvs -s TESTDIR=/work/local/tests
   19681 @end example
   19682 
   19683 @noindent
   19684 and the
   19685 administrative file contains @code{sh
   19686 $@{=TESTDIR@}/runtests}, then that string is expanded
   19687 to @code{sh /work/local/tests/runtests}.
   19688 
   19689 All other strings containing @samp{$} are reserved;
   19690 there is no way to quote a @samp{$} character so that
   19691 @samp{$} represents itself.
   19692 
   19693 Environment variables passed to administrative files are:
   19694 
   19695 @table @code
   19696 @cindex environment variables, passed to administrative files
   19697 
   19698 @item CVS_USER
   19699 @cindex CVS_USER, environment variable
   19700 The @sc{cvs}-specific username provided by the user, if it
   19701 can be provided (currently just for the pserver access
   19702 method), and to the empty string otherwise.  (@code{CVS_USER}
   19703 and @code{USER} may differ when @file{$CVSROOT/CVSROOT/passwd}
   19704 is used to map @sc{cvs} usernames to system usernames.)
   19705 
   19706 @item LOGNAME
   19707 @cindex LOGNAME, environment variable
   19708 The username of the system user.
   19709 
   19710 @item USER
   19711 @cindex USER, environment variable
   19712 Same as @code{LOGNAME}.
   19713 Do not confuse this with the internal variable of the same name.
   19714 @end table
   19715 
   19716 @node config
   19717 @appendixsec The CVSROOT/config configuration file
   19718 
   19719 @cindex config, in CVSROOT
   19720 @cindex CVSROOT/config
   19721 
   19722 The administrative file @file{config} contains various
   19723 miscellaneous settings which affect the behavior of
   19724 @sc{cvs}.  The syntax is slightly different from the
   19725 other administrative files.  Variables are not
   19726 expanded.  Lines which start with @samp{#} are
   19727 considered comments.
   19728 @c FIXME: where do we define comments for the other
   19729 @c administrative files.
   19730 Other lines consist of a keyword, @samp{=}, and a
   19731 value.  Note that this syntax is very strict.
   19732 Extraneous spaces or tabs are not permitted.
   19733 @c See comments in parseinfo.c:parse_config for more
   19734 @c discussion of this strictness.
   19735 
   19736 Currently defined keywords are:
   19737 
   19738 @table @code
   19739 @cindex RCSBIN, in CVSROOT/config
   19740 @item RCSBIN=@var{bindir}
   19741 For @sc{cvs} 1.9.12 through 1.9.18, this setting told
   19742 @sc{cvs} to look for @sc{rcs} programs in the
   19743 @var{bindir} directory.  Current versions of @sc{cvs}
   19744 do not run @sc{rcs} programs; for compatibility this
   19745 setting is accepted, but it does nothing.
   19746 
   19747 @c <en>@cindex SystemAuth, in CVSROOT/config
   19748 @cindex SystemAuth, in CVSROOT/config
   19749 @c <en>@item SystemAuth=@var{value}
   19750 @item SystemAuth=@var{value}
   19751 @c <en>If @var{value} is @samp{yes}, then pserver should check
   19752 @c <en>for users in the system's user database if not found in
   19753 @c <en>@file{CVSROOT/passwd}.  If it is @samp{no}, then all
   19754 @c <en>pserver users must exist in @file{CVSROOT/passwd}.
   19755 @c <en>The default is @samp{yes}.  For more on pserver, see
   19756 @c <en>@ref{Password authenticated}.
   19757 If @var{value} is @samp{yes}, then pserver should check
   19758 for users in the system's user database if not found in
   19759 @file{CVSROOT/passwd}.  If it is @samp{no}, then all
   19760 pserver users must exist in @file{CVSROOT/passwd}.
   19761 The default is @samp{yes}.  For more on pserver, see
   19762 @ref{Autenticao por senha}.
   19763 
   19764 @ignore
   19765 @cindex PreservePermissions, in CVSROOT/config
   19766 @item PreservePermissions=@var{value}
   19767 Enable support for saving special device files,
   19768 symbolic links, file permissions and ownerships in the
   19769 repository.  The default value is @samp{no}.
   19770 @xref{Special Files}, for the full implications of using
   19771 this keyword.
   19772 @end ignore
   19773 
   19774 @cindex TopLevelAdmin, in CVSROOT/config
   19775 @item TopLevelAdmin=@var{value}
   19776 Modify the @samp{checkout} command to create a
   19777 @samp{CVS} directory at the top level of the new
   19778 working directory, in addition to @samp{CVS}
   19779 directories created within checked-out directories.
   19780 The default value is @samp{no}.
   19781 
   19782 @c <en>This option is useful if you find yourself performing
   19783 @c <en>many commands at the top level of your working
   19784 @c <en>directory, rather than in one of the checked out
   19785 @c <en>subdirectories.  The @file{CVS} directory created there
   19786 @c <en>will mean you don't have to specify @code{CVSROOT} for
   19787 @c <en>each command.  It also provides a place for the
   19788 @c <en>@file{CVS/Template} file (@pxref{Working directory
   19789 @c <en>storage}).
   19790 This option is useful if you find yourself performing
   19791 many commands at the top level of your working
   19792 directory, rather than in one of the checked out
   19793 subdirectories.  The @file{CVS} directory created there
   19794 will mean you don't have to specify @code{CVSROOT} for
   19795 each command.  It also provides a place for the
   19796 @file{CVS/Template} file
   19797 (@pxref{Armazenamento do Diretrio de trabalho}).
   19798 
   19799 @c <en>@cindex LockDir, in CVSROOT/config
   19800 @cindex LockDir, in CVSROOT/config
   19801 @c <en>@item LockDir=@var{directory}
   19802 @item LockDir=@var{directory}
   19803 @c <en>Put @sc{cvs} lock files in @var{directory} rather than
   19804 @c <en>directly in the repository.  This is useful if you want
   19805 @c <en>to let users read from the repository while giving them
   19806 @c <en>write access only to @var{directory}, not to the
   19807 @c <en>repository.
   19808 @c <en>It can also be used to put the locks on a very fast
   19809 @c <en>in-memory file system to speed up locking and unlocking
   19810 @c <en>the repository.
   19811 @c <en>You need to create @var{directory}, but
   19812 @c <en>@sc{cvs} will create subdirectories of @var{directory} as it
   19813 @c <en>needs them.  For information on @sc{cvs} locks, see
   19814 @c <en>@ref{Concurrency}.
   19815 Put @sc{cvs} lock files in @var{directory} rather than
   19816 directly in the repository.  This is useful if you want
   19817 to let users read from the repository while giving them
   19818 write access only to @var{directory}, not to the
   19819 repository.
   19820 It can also be used to put the locks on a very fast
   19821 in-memory file system to speed up locking and unlocking
   19822 the repository.
   19823 You need to create @var{directory}, but
   19824 @sc{cvs} will create subdirectories of @var{directory} as it
   19825 needs them.  For information on @sc{cvs} locks, see
   19826 @ref{Concorrncia}.
   19827 
   19828 @c Mention this in Compatibility section?
   19829 Before enabling the LockDir option, make sure that you
   19830 have tracked down and removed any copies of @sc{cvs} 1.9 or
   19831 older.  Such versions neither support LockDir, nor will
   19832 give an error indicating that they don't support it.
   19833 The result, if this is allowed to happen, is that some
   19834 @sc{cvs} users will put the locks one place, and others will
   19835 put them another place, and therefore the repository
   19836 could become corrupted.  @sc{cvs} 1.10 does not support
   19837 LockDir but it will print a warning if run on a
   19838 repository with LockDir enabled.
   19839 
   19840 @cindex LogHistory, in CVSROOT/config
   19841 @item LogHistory=@var{value}
   19842 Control what is logged to the @file{CVSROOT/history} file (@pxref{history}).
   19843 Default of @samp{TOEFWUPCGMAR} (or simply @samp{all}) will log
   19844 all transactions.  Any subset of the default is
   19845 legal.  (For example, to only log transactions that modify the
   19846 @file{*,v} files, use @samp{LogHistory=TMAR}.)
   19847 
   19848 @cindex RereadLogAfterVerify, in CVSROOT/config
   19849 @cindex @file{verifymsg}, changing the log message
   19850 @item RereadLogAfterVerify=@var{value}
   19851 Modify the @samp{commit} command such that CVS will reread the
   19852 log message after running the program specified by @file{verifymsg}.
   19853 @var{value} may be one of @samp{yes} or @samp{always}, indicating that
   19854 the log message should always be reread; @samp{no}
   19855 or @samp{never}, indicating that it should never be
   19856 reread; or @var{value} may be @samp{stat}, indicating
   19857 that the file should be checked with the filesystem
   19858 @samp{stat()} function to see if it has changed (see warning below)
   19859 before rereading.  The default value is @samp{always}.
   19860 
   19861 @strong{Note: the `stat' mode can cause CVS to pause for up to
   19862 one extra second per directory committed.  This can be less IO and
   19863 CPU intensive but is not recommended for use with large repositories}
   19864 
   19865 @xref{verifymsg}, for more information on how verifymsg
   19866 may be used.
   19867 
   19868 @cindex UserAdminOptions, in CVSROOT/config
   19869 @item UserAdminOptions=@var{value}
   19870 Control what options will be allowed with the @code{cvs admin}
   19871 command (@pxref{admin}) for users not in the @code{cvsadmin} group.
   19872 The @var{value} string is a list of single character options
   19873 which should be allowed.  If a user who is not a member of the
   19874 @code{cvsadmin} group tries to execute any @code{cvs admin}
   19875 option which is not listed they will will receive an error message
   19876 reporting that the option is restricted.
   19877 
   19878 If no @code{cvsadmin} group exists on the server, @sc{cvs} will
   19879 ignore the @code{UserAdminOptions} keyword (@pxref{admin}).
   19880 
   19881 When not specified, @code{UserAdminOptions} defaults to
   19882 @samp{k}.  In other words, it defaults to allowing
   19883 users outside of the @code{cvsadmin} group to use the
   19884 @code{cvs admin} command only to change the default keyword
   19885 expansion mode for files.
   19886 
   19887 As an example, to restrict users not in the @code{cvsadmin}
   19888 group to using @code{cvs admin} to change the default keyword
   19889 substitution mode, lock revisions, unlock revisions, and
   19890 replace the log message, use @samp{UserAdminOptions=klum}.
   19891 @end table
   19892 
   19893 @c ---------------------------------------------------------------------
   19894 @c <en>@node Environment variables
   19895 @node Variveis de ambiente
   19896 @c <en>@appendix All environment variables which affect CVS
   19897 @appendix Todas as variveis de ambiente que afetam o CVS
   19898 @c <en>@cindex Environment variables
   19899 @cindex Environment variables
   19900 @c <en>@cindex Reference manual for variables
   19901 @cindex Reference manual for variables
   19902 
   19903 This is a complete list of all environment variables
   19904 that affect @sc{cvs}.
   19905 
   19906 @table @code
   19907 @cindex CVSIGNORE, environment variable
   19908 @item $CVSIGNORE
   19909 A whitespace-separated list of file name patterns that
   19910 @sc{cvs} should ignore. @xref{cvsignore}.
   19911 
   19912 @cindex CVSWRAPPERS, environment variable
   19913 @item $CVSWRAPPERS
   19914 A whitespace-separated list of file name patterns that
   19915 @sc{cvs} should treat as wrappers. @xref{Wrappers}.
   19916 
   19917 @cindex CVSREAD, environment variable
   19918 @cindex Read-only files, and CVSREAD
   19919 @item $CVSREAD
   19920 If this is set, @code{checkout} and @code{update} will
   19921 try hard to make the files in your working directory
   19922 read-only.  When this is not set, the default behavior
   19923 is to permit modification of your working files.
   19924 
   19925 @cindex CVSREADONLYFS, environment variable
   19926 @item $CVSREADONLYFS
   19927 Turns on read-only repository mode. This allows one to
   19928 check out from a read-only repository, such as within
   19929 an anoncvs server, or from a CDROM repository.
   19930 
   19931 It has the same effect as if the @samp{-R} command-line
   19932 option is used. This can also allow the use of
   19933 read-only NFS repositories.
   19934 
   19935 @c <en>@item $CVSUMASK
   19936 @item $CVSUMASK
   19937 @c <en>Controls permissions of files in the repository.  See
   19938 @c <en>@ref{File permissions}.
   19939 Controls permissions of files in the repository.  See
   19940 @ref{Permisses de arquivos}.
   19941 
   19942 @item $CVSROOT
   19943 Should contain the full pathname to the root of the @sc{cvs}
   19944 source repository (where the @sc{rcs} files are
   19945 kept).  This information must be available to @sc{cvs} for
   19946 most commands to execute; if @code{$CVSROOT} is not set,
   19947 or if you wish to override it for one invocation, you
   19948 can supply it on the command line: @samp{cvs -d cvsroot
   19949 cvs_command@dots{}} Once you have checked out a working
   19950 directory, @sc{cvs} stores the appropriate root (in
   19951 the file @file{CVS/Root}), so normally you only need to
   19952 worry about this when initially checking out a working
   19953 directory.
   19954 
   19955 @c <en>@item $CVSEDITOR
   19956 @item $CVSEDITOR
   19957 @c <en>@cindex CVSEDITOR, environment variable
   19958 @cindex CVSEDITOR, environment variable
   19959 @c <en>@itemx $EDITOR
   19960 @itemx $EDITOR
   19961 @c <en>@cindex EDITOR, environment variable
   19962 @cindex EDITOR, environment variable
   19963 @c <en>@itemx $VISUAL
   19964 @itemx $VISUAL
   19965 @c <en>@cindex VISUAL, environment variable
   19966 @cindex VISUAL, environment variable
   19967 @c <en>Specifies the program to use for recording log messages
   19968 @c <en>during commit.  @code{$CVSEDITOR} overrides
   19969 @c <en>@code{$EDITOR}, which overrides @code{$VISUAL}.
   19970 @c <en>See @ref{Committing your changes} for more or
   19971 @c <en>@ref{Global options} for alternative ways of specifying a
   19972 @c <en>log editor.
   19973 Specifies the program to use for recording log messages
   19974 during commit.  @code{$CVSEDITOR} overrides
   19975 @code{$EDITOR}, which overrides @code{$VISUAL}.
   19976 See @ref{Efetivando suas alteraes} for more or
   19977 @ref{Opes globais} for alternative ways of specifying a
   19978 log editor.
   19979 
   19980 @cindex PATH, environment variable
   19981 @item $PATH
   19982 If @code{$RCSBIN} is not set, and no path is compiled
   19983 into @sc{cvs}, it will use @code{$PATH} to try to find all
   19984 programs it uses.
   19985 
   19986 @cindex HOME, environment variable
   19987 @item $HOME
   19988 @cindex HOMEPATH, environment variable
   19989 @item $HOMEPATH
   19990 @cindex HOMEDRIVE, environment variable
   19991 @item $HOMEDRIVE
   19992 Used to locate the directory where the @file{.cvsrc}
   19993 file, and other such files, are searched.  On Unix, @sc{cvs}
   19994 just checks for @code{HOME}.  On Windows NT, the system will
   19995 set @code{HOMEDRIVE}, for example to @samp{d:} and @code{HOMEPATH},
   19996 for example to @file{\joe}.  On Windows 95, you'll
   19997 probably need to set @code{HOMEDRIVE} and @code{HOMEPATH} yourself.
   19998 @c We are being vague about whether HOME works on
   19999 @c Windows; see long comment in windows-NT/filesubr.c.
   20000 
   20001 @c <en>@cindex CVS_RSH, environment variable
   20002 @cindex CVS_RSH, environment variable
   20003 @c <en>@item $CVS_RSH
   20004 @item $CVS_RSH
   20005 @c <en>Specifies the external program which @sc{cvs} connects with,
   20006 @c <en>when @code{:ext:} access method is specified.
   20007 @c <en>@pxref{Connecting via rsh}.
   20008 Specifies the external program which @sc{cvs} connects with,
   20009 when @code{:ext:} access method is specified.
   20010 @pxref{Se conectando via rsh}.
   20011 
   20012 @c <en>@item $CVS_SERVER
   20013 @item $CVS_SERVER
   20014 @c <en>Used in client-server mode when accessing a remote
   20015 @c <en>repository using @sc{rsh}.  It specifies the name of
   20016 @c <en>the program to start on the server side (and any
   20017 @c <en>necessary arguments) when accessing a remote repository
   20018 @c <en>using the @code{:ext:}, @code{:fork:}, or @code{:server:} access methods.
   20019 @c <en>The default value for @code{:ext:} and @code{:server:} is @code{cvs};
   20020 @c <en>the default value for @code{:fork:} is the name used to run the client.
   20021 @c <en>@pxref{Connecting via rsh}
   20022 Used in client-server mode when accessing a remote
   20023 repository using @sc{rsh}.  It specifies the name of
   20024 the program to start on the server side (and any
   20025 necessary arguments) when accessing a remote repository
   20026 using the @code{:ext:}, @code{:fork:}, or @code{:server:} access methods.
   20027 The default value for @code{:ext:} and @code{:server:} is @code{cvs};
   20028 the default value for @code{:fork:} is the name used to run the client.
   20029 @pxref{Se conectando via rsh}
   20030 
   20031 @c <en>@item $CVS_PASSFILE
   20032 @item $CVS_PASSFILE
   20033 @c <en>Used in client-server mode when accessing the @code{cvs
   20034 @c <en>login server}.  Default value is @file{$HOME/.cvspass}.
   20035 @c <en>@pxref{Password authentication client}
   20036 Used in client-server mode when accessing the @code{cvs
   20037 login server}.  Default value is @file{$HOME/.cvspass}.
   20038 @pxref{Cliente de autenticao por senha}
   20039 
   20040 @c <en>@item $CVS_CLIENT_PORT
   20041 @item $CVS_CLIENT_PORT
   20042 @c <en>Used in client-server mode to set the port to use when accessing the server
   20043 @c <en>via Kerberos, GSSAPI, or @sc{cvs}'s password authentication protocol
   20044 @c <en>if the port is not specified in the CVSROOT.
   20045 @c <en>@pxref{Remote repositories}
   20046 Used in client-server mode to set the port to use when accessing the server
   20047 via Kerberos, GSSAPI, or @sc{cvs}'s password authentication protocol
   20048 if the port is not specified in the CVSROOT.
   20049 @pxref{Repositrios remotos}
   20050 
   20051 @cindex CVS_RCMD_PORT, environment variable
   20052 @item $CVS_RCMD_PORT
   20053 Used in client-server mode.  If set, specifies the port
   20054 number to be used when accessing the @sc{rcmd} demon on
   20055 the server side. (Currently not used for Unix clients).
   20056 
   20057 @cindex CVS_CLIENT_LOG, environment variable
   20058 @item $CVS_CLIENT_LOG
   20059 Used for debugging only in client-server
   20060 mode.  If set, everything sent to the server is logged
   20061 into @file{@code{$CVS_CLIENT_LOG}.in} and everything
   20062 sent from the server is logged into
   20063 @file{@code{$CVS_CLIENT_LOG}.out}.
   20064 
   20065 @cindex CVS_SERVER_SLEEP, environment variable
   20066 @item $CVS_SERVER_SLEEP
   20067 Used only for debugging the server side in
   20068 client-server mode.  If set, delays the start of the
   20069 server child process the specified amount of
   20070 seconds so that you can attach to it with a debugger.
   20071 
   20072 @cindex CVS_IGNORE_REMOTE_ROOT, environment variable
   20073 @item $CVS_IGNORE_REMOTE_ROOT
   20074 For @sc{cvs} 1.10 and older, setting this variable
   20075 prevents @sc{cvs} from overwriting the @file{CVS/Root}
   20076 file when the @samp{-d} global option is specified.
   20077 Later versions of @sc{cvs} do not rewrite
   20078 @file{CVS/Root}, so @code{CVS_IGNORE_REMOTE_ROOT} has no
   20079 effect.
   20080 
   20081 @cindex CVS_LOCAL_BRANCH_NUM, environment variable
   20082 @item $CVS_LOCAL_BRANCH_NUM
   20083 Setting this variable allows some control over the
   20084 branch number that is assigned. This is specifically to
   20085 support the local commit feature of CVSup. If one sets
   20086 @code{CVS_LOCAL_BRANCH_NUM} to (say) 1000 then branches
   20087 the local repository, the revision numbers will look
   20088 like 1.66.1000.xx. There is almost a dead-set certainty
   20089 that there will be no conflicts with version numbers.
   20090 
   20091 @cindex COMSPEC, environment variable
   20092 @item $COMSPEC
   20093 Used under OS/2 only.  It specifies the name of the
   20094 command interpreter and defaults to @sc{cmd.exe}.
   20095 
   20096 @c <en>@cindex TMPDIR, environment variable
   20097 @cindex TMPDIR, environment variable
   20098 @c <en>@item $TMPDIR
   20099 @item $TMPDIR
   20100 @c <en>@cindex TMP, environment variable
   20101 @cindex TMP, environment variable
   20102 @c <en>@itemx $TMP
   20103 @itemx $TMP
   20104 @c <en>@cindex TEMP, environment variable
   20105 @cindex TEMP, environment variable
   20106 @c <en>@itemx $TEMP
   20107 @itemx $TEMP
   20108 @c <en>@cindex Temporary files, location of
   20109 @cindex Temporary files, location of
   20110 @c This is quite nuts.  We don't talk about tempnam
   20111 @c or mkstemp which we sometimes use.  The discussion
   20112 @c of "Global options" is semi-incoherent.
   20113 @c I'm not even sure those are the only inaccuracies.
   20114 @c Furthermore, the conventions are
   20115 @c pretty crazy and they should be simplified.
   20116 @c <en>Directory in which temporary files are located.
   20117 @c <en>The @sc{cvs} server uses
   20118 @c <en>@code{TMPDIR}.  @xref{Global options}, for a
   20119 @c <en>description of how to specify this.
   20120 @c <en>Some parts of @sc{cvs} will always use @file{/tmp} (via
   20121 @c <en>the @code{tmpnam} function provided by the system).
   20122 Directory in which temporary files are located.
   20123 The @sc{cvs} server uses
   20124 @code{TMPDIR}.  @xref{Opes globais}, for a
   20125 description of how to specify this.
   20126 Some parts of @sc{cvs} will always use @file{/tmp} (via
   20127 the @code{tmpnam} function provided by the system).
   20128 
   20129 On Windows NT, @code{TMP} is used (via the @code{_tempnam}
   20130 function provided by the system).
   20131 
   20132 The @code{patch} program which is used by the @sc{cvs}
   20133 client uses @code{TMPDIR}, and if it is not set, uses
   20134 @file{/tmp} (at least with GNU patch 2.1).  Note that
   20135 if your server and client are both running @sc{cvs}
   20136 1.9.10 or later, @sc{cvs} will not invoke an external
   20137 @code{patch} program.
   20138 
   20139 @cindex CVS_PID, environment variable
   20140 @item $CVS_PID
   20141 This is the process identification (aka pid) number of
   20142 the @sc{cvs} process. It is often useful in the
   20143 programs and/or scripts specified by the
   20144 @file{commitinfo}, @file{verifymsg}, @file{loginfo}
   20145 files.
   20146 @end table
   20147 
   20148 @c <en>@node Compatibility
   20149 @node Compatibilidade
   20150 @c <en>@appendix Compatibility between CVS Versions
   20151 @appendix Compatibility between CVS Versions
   20152 
   20153 @cindex CVS, versions of
   20154 @cindex Versions, of CVS
   20155 @cindex Compatibility, between CVS versions
   20156 @c We don't mention versions older than CVS 1.3
   20157 @c on the theory that it would clutter it up for the vast
   20158 @c majority of people, who don't have anything that old.
   20159 @c
   20160 @c <en>The repository format is compatible going back to
   20161 @c <en>@sc{cvs} 1.3.  But see @ref{Watches Compatibility}, if
   20162 @c <en>you have copies of @sc{cvs} 1.6 or older and you want
   20163 @c <en>to use the optional developer communication features.
   20164 The repository format is compatible going back to
   20165 @sc{cvs} 1.3.  But see @ref{Compatibilidade de ???Watches???}, if
   20166 you have copies of @sc{cvs} 1.6 or older and you want
   20167 to use the optional developer communication features.
   20168 @c If you "cvs rm" and commit using 1.3, then you'll
   20169 @c want to run "rcs -sdead <file,v>" on each of the
   20170 @c files in the Attic if you then want 1.5 and
   20171 @c later to recognize those files as dead (I think the
   20172 @c symptom if this is not done is that files reappear
   20173 @c in joins).  (Wait: the above will work but really to
   20174 @c be strictly correct we should suggest checking
   20175 @c in a new revision rather than just changing the
   20176 @c state of the head revision, shouldn't we?).
   20177 @c The old convert.sh script was for this, but it never
   20178 @c did get updated to reflect use of the RCS "dead"
   20179 @c state.
   20180 @c Note: this is tricky to document without confusing
   20181 @c people--need to carefully say what CVS version we
   20182 @c are talking about and keep in mind the distinction
   20183 @c between a
   20184 @c repository created with 1.3 and on which one now
   20185 @c uses 1.5+, and a repository on which one wants to
   20186 @c use both versions side by side (e.g. during a
   20187 @c transition period).
   20188 @c Wait, can't CVS just detect the case in which a file
   20189 @c is in the Attic but the head revision is not dead?
   20190 @c Not sure whether this should produce a warning or
   20191 @c something, and probably needs further thought, but
   20192 @c it would appear that the situation can be detected.
   20193 @c
   20194 @c We might want to separate out the 1.3 compatibility
   20195 @c section (for repository & working directory) from the
   20196 @c rest--that might help avoid confusing people who
   20197 @c are upgrading (for example) from 1.6 to 1.8.
   20198 @c
   20199 @c A minor incompatibility is if a current version of CVS
   20200 @c puts "Nfoo" into CVS/Tag, then CVS 1.9 or older will
   20201 @c see this as if there is no tag.  Seems to me this is
   20202 @c too obscure to mention.
   20203 
   20204 The working directory format is compatible going back
   20205 to @sc{cvs} 1.5.  It did change between @sc{cvs} 1.3
   20206 and @sc{cvs} 1.5.  If you run @sc{cvs} 1.5 or newer on
   20207 a working directory checked out with @sc{cvs} 1.3,
   20208 @sc{cvs} will convert it, but to go back to @sc{cvs}
   20209 1.3 you need to check out a new working directory with
   20210 @sc{cvs} 1.3.
   20211 
   20212 The remote protocol is interoperable going back to @sc{cvs} 1.5, but no
   20213 further (1.5 was the first official release with the remote protocol,
   20214 but some older versions might still be floating around).  In many
   20215 cases you need to upgrade both the client and the server to take
   20216 advantage of new features and bugfixes, however.
   20217 
   20218 @c Perhaps should be saying something here about the
   20219 @c "D" lines in Entries (written by CVS 1.9; 1.8 and
   20220 @c older don't use them).  These are supposed to be
   20221 @c compatible in both directions, but I'm not sure
   20222 @c they quite are 100%.  One common gripe is if you
   20223 @c "rm -r" a directory and 1.9 gets confused, as it
   20224 @c still sees it in Entries.  That one is fixed in
   20225 @c (say) 1.9.6.  Someone else reported problems with
   20226 @c starting with a directory which was checked out with
   20227 @c an old version, and then using a new version, and
   20228 @c some "D" lines appeared, but not for every
   20229 @c directory, causing some directories to be skipped.
   20230 @c They weren't sure how to reproduce this, though.
   20231 
   20232 @c ---------------------------------------------------------------------
   20233 @c <en>@node Troubleshooting
   20234 @node Resoluo de problemas
   20235 @c <en>@appendix Troubleshooting
   20236 @appendix Resoluo de problemas
   20237 
   20238 If you are having trouble with @sc{cvs}, this appendix
   20239 may help.  If there is a particular error message which
   20240 you are seeing, then you can look up the message
   20241 alphabetically.  If not, you can look through the
   20242 section on other problems to see if your problem is
   20243 mentioned there.
   20244 
   20245 @menu
   20246 @c <en>* Error messages::              Partial list of CVS errors
   20247 * Mensagens de erro::             Partial list of CVS errors
   20248 @c <en>* Connection::                  Trouble making a connection to a CVS server
   20249 * Conexo::                       Trouble making a connection to a CVS server
   20250 @c <en>* Other problems::              Problems not readily listed by error message
   20251 * Outros problemas::              Problems not readily listed by error message
   20252 @end menu
   20253 
   20254 @ignore
   20255 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   20256 @c @node Bad administrative files
   20257 @appendixsec Bad administrative files
   20258 
   20259 @c -- Give hints on how to fix them
   20260 @end ignore
   20261 
   20262 @c <en>@node Error messages
   20263 @node Mensagens de erro
   20264 @c <en>@appendixsec Partial list of error messages
   20265 @appendixsec Partial list of error messages
   20266 
   20267 Here is a partial list of error messages that you may
   20268 see from @sc{cvs}.  It is not a complete list---@sc{cvs}
   20269 is capable of printing many, many error messages, often
   20270 with parts of them supplied by the operating system,
   20271 but the intention is to list the common and/or
   20272 potentially confusing error messages.
   20273 
   20274 The messages are alphabetical, but introductory text
   20275 such as @samp{cvs update: } is not considered in
   20276 ordering them.
   20277 
   20278 In some cases the list includes messages printed by old
   20279 versions of @sc{cvs} (partly because users may not be
   20280 sure which version of @sc{cvs} they are using at any
   20281 particular moment).
   20282 @c If we want to start retiring messages, perhaps we
   20283 @c should pick a cutoff version (for example, no more
   20284 @c messages which are specific to versions before 1.9)
   20285 @c and then move the old messages to an "old messages"
   20286 @c node rather than deleting them completely.
   20287 
   20288 @table @code
   20289 @c FIXME: What is the correct way to format a multiline
   20290 @c error message here?  Maybe @table is the wrong
   20291 @c choice?  Texinfo gurus?
   20292 @c <en>@item @var{file}:@var{line}: Assertion '@var{text}' failed
   20293 @item @var{file}:@var{line}: Assertion '@var{text}' failed
   20294 @c <en>The exact format of this message may vary depending on
   20295 @c <en>your system.  It indicates a bug in @sc{cvs}, which can
   20296 @c <en>be handled as described in @ref{BUGS}.
   20297 The exact format of this message may vary depending on
   20298 your system.  It indicates a bug in @sc{cvs}, which can
   20299 be handled as described in @ref{Paus}.
   20300 
   20301 @c <en>@item cvs @var{command}: authorization failed: server @var{host} rejected access
   20302 @item cvs @var{command}: authorization failed: server @var{host} rejected access
   20303 @c <en>This is a generic response when trying to connect to a
   20304 @c <en>pserver server which chooses not to provide a
   20305 @c <en>specific reason for denying authorization.  Check that
   20306 @c <en>the username and password specified are correct and
   20307 @c <en>that the @code{CVSROOT} specified is allowed by @samp{--allow-root}
   20308 @c <en>in @file{inetd.conf}.  See @ref{Password authenticated}.
   20309 This is a generic response when trying to connect to a
   20310 pserver server which chooses not to provide a
   20311 specific reason for denying authorization.  Check that
   20312 the username and password specified are correct and
   20313 that the @code{CVSROOT} specified is allowed by @samp{--allow-root}
   20314 in @file{inetd.conf}.  See @ref{Autenticao por senha}.
   20315 
   20316 @item cvs @var{command}: conflict: removed @var{file} was modified by second party
   20317 This message indicates that you removed a file, and
   20318 someone else modified it.  To resolve the conflict,
   20319 first run @samp{cvs add @var{file}}.  If desired, look
   20320 at the other party's modification to decide whether you
   20321 still want to remove it.  If you don't want to remove
   20322 it, stop here.  If you do want to remove it, proceed
   20323 with @samp{cvs remove @var{file}} and commit your
   20324 removal.
   20325 @c Tests conflicts2-142b* in sanity.sh test for this.
   20326 
   20327 @item cannot change permissions on temporary directory
   20328 @example
   20329 Operation not permitted
   20330 @end example
   20331 This message has been happening in a non-reproducible,
   20332 occasional way when we run the client/server testsuite,
   20333 both on Red Hat Linux 3.0.3 and 4.1.  We haven't been
   20334 able to figure out what causes it, nor is it known
   20335 whether it is specific to linux (or even to this
   20336 particular machine!).  If the problem does occur on
   20337 other unices, @samp{Operation not permitted} would be
   20338 likely to read @samp{Not owner} or whatever the system
   20339 in question uses for the unix @code{EPERM} error.  If
   20340 you have any information to add, please let us know as
   20341 described in @ref{Paus}.  If you experience this error
   20342 while using @sc{cvs}, retrying the operation which
   20343 produced it should work fine.
   20344 @c This has been seen in a variety of tests, including
   20345 @c multibranch-2, multibranch-5, and basic1-24-rm-rm,
   20346 @c so it doesn't seem particularly specific to any one
   20347 @c test.
   20348 
   20349 @c <en>@item cvs [server aborted]: Cannot check out files into the repository itself
   20350 @item cvs [server aborted]: Cannot check out files into the repository itself
   20351 @c <en>The obvious cause for this message (especially for
   20352 @c <en>non-client/server @sc{cvs}) is that the @sc{cvs} root
   20353 @c <en>is, for example, @file{/usr/local/cvsroot} and you try
   20354 @c <en>to check out files when you are in a subdirectory, such
   20355 @c <en>as @file{/usr/local/cvsroot/test}.  However, there is a
   20356 @c <en>more subtle cause, which is that the temporary
   20357 @c <en>directory on the server is set to a subdirectory of the
   20358 @c <en>root (which is also not allowed).  If this is the
   20359 @c <en>problem, set the temporary directory to somewhere else,
   20360 @c <en>for example @file{/var/tmp}; see @code{TMPDIR} in
   20361 @c <en>@ref{Environment variables}, for how to set the
   20362 @c <en>temporary directory.
   20363 The obvious cause for this message (especially for
   20364 non-client/server @sc{cvs}) is that the @sc{cvs} root
   20365 is, for example, @file{/usr/local/cvsroot} and you try
   20366 to check out files when you are in a subdirectory, such
   20367 as @file{/usr/local/cvsroot/test}.  However, there is a
   20368 more subtle cause, which is that the temporary
   20369 directory on the server is set to a subdirectory of the
   20370 root (which is also not allowed).  If this is the
   20371 problem, set the temporary directory to somewhere else,
   20372 for example @file{/var/tmp}; see @code{TMPDIR} in
   20373 @ref{Variveis de ambiente}, for how to set the
   20374 temporary directory.
   20375 
   20376 @item cannot commit files as 'root'
   20377 See @samp{'root' is not allowed to commit files}.
   20378 
   20379 @c For one example see basica-1a10 in the testsuite
   20380 @c For another example, "cvs co ." on NT; see comment
   20381 @c at windows-NT/filesubr.c (expand_wild).
   20382 @c For another example, "cvs co foo/bar" where foo exists.
   20383 @c <en>@item cannot open CVS/Entries for reading: No such file or directory
   20384 @item cannot open CVS/Entries for reading: No such file or directory
   20385 @c <en>This generally indicates a @sc{cvs} internal error, and
   20386 @c <en>can be handled as with other @sc{cvs} bugs
   20387 @c <en>(@pxref{BUGS}).  Usually there is a workaround---the
   20388 @c <en>exact nature of which would depend on the situation but
   20389 @c <en>which hopefully could be figured out.
   20390 This generally indicates a @sc{cvs} internal error, and
   20391 can be handled as with other @sc{cvs} bugs
   20392 (@pxref{Paus}).  Usually there is a workaround---the
   20393 exact nature of which would depend on the situation but
   20394 which hopefully could be figured out.
   20395 
   20396 @c This is more obscure than it might sound; it only
   20397 @c happens if you run "cvs init" from a directory which
   20398 @c contains a CVS/Root file at the start.
   20399 @item cvs [init aborted]: cannot open CVS/Root: No such file or directory
   20400 This message is harmless.  Provided it is not
   20401 accompanied by other errors, the operation has
   20402 completed successfully.  This message should not occur
   20403 with current versions of @sc{cvs}, but it is documented
   20404 here for the benefit of @sc{cvs} 1.9 and older.
   20405 
   20406 @c <en>@item cvs server: cannot open /root/.cvsignore: Permission denied
   20407 @item cvs server: cannot open /root/.cvsignore: Permission denied
   20408 @c <en>@itemx cvs [server aborted]: can't chdir(/root): Permission denied
   20409 @itemx cvs [server aborted]: can't chdir(/root): Permission denied
   20410 @c <en>See @ref{Connection}.
   20411 See @ref{Conexo}.
   20412 
   20413 @c <en>@item cvs [checkout aborted]: cannot rename file @var{file} to CVS/,,@var{file}: Invalid argument
   20414 @item cvs [checkout aborted]: cannot rename file @var{file} to CVS/,,@var{file}: Invalid argument
   20415 @c <en>This message has been reported as intermittently
   20416 @c <en>happening with @sc{cvs} 1.9 on Solaris 2.5.  The cause is
   20417 @c <en>unknown; if you know more about what causes it, let us
   20418 @c <en>know as described in @ref{BUGS}.
   20419 This message has been reported as intermittently
   20420 happening with @sc{cvs} 1.9 on Solaris 2.5.  The cause is
   20421 unknown; if you know more about what causes it, let us
   20422 know as described in @ref{Paus}.
   20423 
   20424 @c <en>@item cvs [@var{command} aborted]: cannot start server via rcmd
   20425 @item cvs [@var{command} aborted]: cannot start server via rcmd
   20426 @c <en>This, unfortunately, is a rather nonspecific error
   20427 @c <en>message which @sc{cvs} 1.9 will print if you are
   20428 @c <en>running the @sc{cvs} client and it is having trouble
   20429 @c <en>connecting to the server.  Current versions of @sc{cvs}
   20430 @c <en>should print a much more specific error message.  If
   20431 @c <en>you get this message when you didn't mean to run the
   20432 @c <en>client at all, you probably forgot to specify
   20433 @c <en>@code{:local:}, as described in @ref{Repository}.
   20434 This, unfortunately, is a rather nonspecific error
   20435 message which @sc{cvs} 1.9 will print if you are
   20436 running the @sc{cvs} client and it is having trouble
   20437 connecting to the server.  Current versions of @sc{cvs}
   20438 should print a much more specific error message.  If
   20439 you get this message when you didn't mean to run the
   20440 client at all, you probably forgot to specify
   20441 @code{:local:}, as described in @ref{Repositrio}.
   20442 
   20443 @item ci: @var{file},v: bad diff output line: Binary files - and /tmp/T2a22651 differ
   20444 @sc{cvs} 1.9 and older will print this message
   20445 when trying to check in a binary file if
   20446 @sc{rcs} is not correctly installed.  Re-read the
   20447 instructions that came with your @sc{rcs} distribution
   20448 and the @sc{install} file in the @sc{cvs}
   20449 distribution.  Alternately, upgrade to a current
   20450 version of @sc{cvs}, which checks in files itself
   20451 rather than via @sc{rcs}.
   20452 
   20453 @c <en>@item cvs checkout: could not check out @var{file}
   20454 @item cvs checkout: could not check out @var{file}
   20455 @c <en>With @sc{cvs} 1.9, this can mean that the @code{co} program
   20456 @c <en>(part of @sc{rcs}) returned a failure.  It should be
   20457 @c <en>preceded by another error message, however it has been
   20458 @c <en>observed without another error message and the cause is
   20459 @c <en>not well-understood.  With the current version of @sc{cvs},
   20460 @c <en>which does not run @code{co}, if this message occurs
   20461 @c <en>without another error message, it is definitely a @sc{cvs}
   20462 @c <en>bug (@pxref{BUGS}).
   20463 With @sc{cvs} 1.9, this can mean that the @code{co} program
   20464 (part of @sc{rcs}) returned a failure.  It should be
   20465 preceded by another error message, however it has been
   20466 observed without another error message and the cause is
   20467 not well-understood.  With the current version of @sc{cvs},
   20468 which does not run @code{co}, if this message occurs
   20469 without another error message, it is definitely a @sc{cvs}
   20470 bug (@pxref{Paus}).
   20471 @c My current suspicion is that the RCS in the rcs (not
   20472 @c cvs/winnt/rcs57nt.zip) directory on the _Practical_
   20473 @c CD is bad (remains to be confirmed).
   20474 @c There is also a report of something which looks
   20475 @c very similar on SGI, Irix 5.2, so I dunno.
   20476 
   20477 @c <en>@item cvs [login aborted]: could not find out home directory
   20478 @item cvs [login aborted]: could not find out home directory
   20479 @c <en>This means that you need to set the environment
   20480 @c <en>variables that @sc{cvs} uses to locate your home directory.
   20481 @c <en>See the discussion of @code{HOME}, @code{HOMEDRIVE}, and @code{HOMEPATH} in
   20482 @c <en>@ref{Environment variables}.
   20483 This means that you need to set the environment
   20484 variables that @sc{cvs} uses to locate your home directory.
   20485 See the discussion of @code{HOME}, @code{HOMEDRIVE}, and @code{HOMEPATH} in
   20486 @ref{Variveis de ambiente}.
   20487 
   20488 @item cvs update: could not merge revision @var{rev} of @var{file}: No such file or directory
   20489 @sc{cvs} 1.9 and older will print this message if there was
   20490 a problem finding the @code{rcsmerge} program.  Make
   20491 sure that it is in your @code{PATH}, or upgrade to a
   20492 current version of @sc{cvs}, which does not require
   20493 an external @code{rcsmerge} program.
   20494 
   20495 @item cvs [update aborted]: could not patch @var{file}: No such file or directory
   20496 This means that there was a problem finding the
   20497 @code{patch} program.  Make sure that it is in your
   20498 @code{PATH}.  Note that despite appearances the message
   20499 is @emph{not} referring to whether it can find @var{file}.
   20500 If both the client and the server are running a current
   20501 version of @sc{cvs}, then there is no need for an
   20502 external patch program and you should not see this
   20503 message.  But if either client or server is running
   20504 @sc{cvs} 1.9, then you need @code{patch}.
   20505 
   20506 @item cvs update: could not patch @var{file}; will refetch
   20507 This means that for whatever reason the client was
   20508 unable to apply a patch that the server sent.  The
   20509 message is nothing to be concerned about, because
   20510 inability to apply the patch only slows things down and
   20511 has no effect on what @sc{cvs} does.
   20512 @c xref to update output.  Or File status?
   20513 @c Or some place else that
   20514 @c explains this whole "patch"/P/Needs Patch thing?
   20515 
   20516 @c <en>@item dying gasps from @var{server} unexpected
   20517 @item dying gasps from @var{server} unexpected
   20518 @c <en>There is a known bug in the server for @sc{cvs} 1.9.18
   20519 @c <en>and older which can cause this.  For me, this was
   20520 @c <en>reproducible if I used the @samp{-t} global option.  It
   20521 @c <en>was fixed by Andy Piper's 14 Nov 1997 change to
   20522 @c <en>src/filesubr.c, if anyone is curious.
   20523 @c <en>If you see the message,
   20524 @c <en>you probably can just retry the operation which failed,
   20525 @c <en>or if you have discovered information concerning its
   20526 @c <en>cause, please let us know as described in @ref{BUGS}.
   20527 There is a known bug in the server for @sc{cvs} 1.9.18
   20528 and older which can cause this.  For me, this was
   20529 reproducible if I used the @samp{-t} global option.  It
   20530 was fixed by Andy Piper's 14 Nov 1997 change to
   20531 src/filesubr.c, if anyone is curious.
   20532 If you see the message,
   20533 you probably can just retry the operation which failed,
   20534 or if you have discovered information concerning its
   20535 cause, please let us know as described in @ref{Paus}.
   20536 
   20537 @c <en>@item end of file from server (consult above messages if any)
   20538 @item end of file from server (consult above messages if any)
   20539 @c <en>The most common cause for this message is if you are
   20540 @c <en>using an external @code{rsh} program and it exited with
   20541 @c <en>an error.  In this case the @code{rsh} program should
   20542 @c <en>have printed a message, which will appear before the
   20543 @c <en>above message.  For more information on setting up a
   20544 @c <en>@sc{cvs} client and server, see @ref{Remote repositories}.
   20545 The most common cause for this message is if you are
   20546 using an external @code{rsh} program and it exited with
   20547 an error.  In this case the @code{rsh} program should
   20548 have printed a message, which will appear before the
   20549 above message.  For more information on setting up a
   20550 @sc{cvs} client and server, see @ref{Repositrios remotos}.
   20551 
   20552 @c <en>@item cvs [update aborted]: EOF in key in RCS file @var{file},v
   20553 @item cvs [update aborted]: EOF in key in RCS file @var{file},v
   20554 @c <en>@itemx cvs [checkout aborted]: EOF while looking for end of string in RCS file @var{file},v
   20555 @itemx cvs [checkout aborted]: EOF while looking for end of string in RCS file @var{file},v
   20556 @c <en>This means that there is a syntax error in the given
   20557 @c <en>@sc{rcs} file.  Note that this might be true even if @sc{rcs} can
   20558 @c <en>read the file OK; @sc{cvs} does more error checking of
   20559 @c <en>errors in the RCS file.  That is why you may see this
   20560 @c <en>message when upgrading from @sc{cvs} 1.9 to @sc{cvs}
   20561 @c <en>1.10.  The likely cause for the original corruption is
   20562 @c <en>hardware, the operating system, or the like.  Of
   20563 @c <en>course, if you find a case in which @sc{cvs} seems to
   20564 @c <en>corrupting the file, by all means report it,
   20565 @c <en>(@pxref{BUGS}).
   20566 @c <en>There are quite a few variations of this error message,
   20567 @c <en>depending on exactly where in the @sc{rcs} file @sc{cvs}
   20568 @c <en>finds the syntax error.
   20569 This means that there is a syntax error in the given
   20570 @sc{rcs} file.  Note that this might be true even if @sc{rcs} can
   20571 read the file OK; @sc{cvs} does more error checking of
   20572 errors in the RCS file.  That is why you may see this
   20573 message when upgrading from @sc{cvs} 1.9 to @sc{cvs}
   20574 1.10.  The likely cause for the original corruption is
   20575 hardware, the operating system, or the like.  Of
   20576 course, if you find a case in which @sc{cvs} seems to
   20577 corrupting the file, by all means report it,
   20578 (@pxref{Paus}).
   20579 There are quite a few variations of this error message,
   20580 depending on exactly where in the @sc{rcs} file @sc{cvs}
   20581 finds the syntax error.
   20582 
   20583 @cindex mkmodules
   20584 @item cvs commit: Executing 'mkmodules'
   20585 This means that your repository is set up for a version
   20586 of @sc{cvs} prior to @sc{cvs} 1.8.  When using @sc{cvs}
   20587 1.8 or later, the above message will be preceded by
   20588 
   20589 @example
   20590 cvs commit: Rebuilding administrative file database
   20591 @end example
   20592 
   20593 If you see both messages, the database is being rebuilt
   20594 twice, which is unnecessary but harmless.  If you wish
   20595 to avoid the duplication, and you have no versions of
   20596 @sc{cvs} 1.7 or earlier in use, remove @code{-i mkmodules}
   20597 every place it appears in your @code{modules}
   20598 file.  For more information on the @code{modules} file,
   20599 see @ref{modules}.
   20600 
   20601 @c This message comes from "co", and I believe is
   20602 @c possible only with older versions of CVS which call
   20603 @c co.  The problem with being able to create the bogus
   20604 @c RCS file still exists, though (and I think maybe
   20605 @c there is a different symptom(s) now).
   20606 @c FIXME: Would be nice to have a more exact wording
   20607 @c for this message.
   20608 @item missing author
   20609 Typically this can happen if you created an RCS file
   20610 with your username set to empty.  @sc{cvs} will, bogusly,
   20611 create an illegal RCS file with no value for the author
   20612 field.  The solution is to make sure your username is
   20613 set to a non-empty value and re-create the RCS file.
   20614 @c "make sure your username is set" is complicated in
   20615 @c and of itself, as there are the environment
   20616 @c variables the system login name, &c, and it depends
   20617 @c on the version of CVS.
   20618 
   20619 @c <en>@item cvs [checkout aborted]: no such tag @var{tag}
   20620 @item cvs [checkout aborted]: no such tag @var{tag}
   20621 @c <en>This message means that @sc{cvs} isn't familiar with
   20622 @c <en>the tag @var{tag}.  Usually this means that you have
   20623 @c <en>mistyped a tag name; however there are (relatively
   20624 @c <en>obscure) cases in which @sc{cvs} will require you to
   20625 @c <en>@c Search sanity.sh for "no such tag" to see some of
   20626 @c <en>@c the relatively obscure cases.
   20627 @c <en>try a few other @sc{cvs} commands involving that tag,
   20628 @c <en>before you find one which will cause @sc{cvs} to update
   20629 This message means that @sc{cvs} isn't familiar with
   20630 the tag @var{tag}.  Usually this means that you have
   20631 mistyped a tag name; however there are (relatively
   20632 obscure) cases in which @sc{cvs} will require you to
   20633 @c Search sanity.sh for "no such tag" to see some of
   20634 @c the relatively obscure cases.
   20635 try a few other @sc{cvs} commands involving that tag,
   20636 before you find one which will cause @sc{cvs} to update
   20637 @c <en>@cindex CVSROOT/val-tags file, forcing tags into
   20638 @cindex CVSROOT/val-tags file, forcing tags into
   20639 @c <en>@cindex val-tags file, forcing tags into
   20640 @cindex val-tags file, forcing tags into
   20641 @c <en>the @file{val-tags} file; see discussion of val-tags in
   20642 @c <en>@ref{File permissions}.  You only need to worry about
   20643 @c <en>this once for a given tag; when a tag is listed in
   20644 @c <en>@file{val-tags}, it stays there.  Note that using
   20645 @c <en>@samp{-f} to not require tag matches does not override
   20646 @c <en>this check; see @ref{Common options}.
   20647 the @file{val-tags} file; see discussion of val-tags in
   20648 @ref{Permisses de arquivos}.  You only need to worry about
   20649 this once for a given tag; when a tag is listed in
   20650 @file{val-tags}, it stays there.  Note that using
   20651 @samp{-f} to not require tag matches does not override
   20652 this check; see @ref{Opes comuns}.
   20653 
   20654 @c <en>@item *PANIC* administration files missing
   20655 @item *PANIC* administration files missing
   20656 @c <en>This typically means that there is a directory named
   20657 @c <en>@sc{cvs} but it does not contain the administrative files
   20658 @c <en>which @sc{cvs} puts in a CVS directory.  If the problem is
   20659 @c <en>that you created a CVS directory via some mechanism
   20660 @c <en>other than @sc{cvs}, then the answer is simple, use a name
   20661 @c <en>other than @sc{cvs}.  If not, it indicates a @sc{cvs} bug
   20662 @c <en>(@pxref{BUGS}).
   20663 This typically means that there is a directory named
   20664 @sc{cvs} but it does not contain the administrative files
   20665 which @sc{cvs} puts in a CVS directory.  If the problem is
   20666 that you created a CVS directory via some mechanism
   20667 other than @sc{cvs}, then the answer is simple, use a name
   20668 other than @sc{cvs}.  If not, it indicates a @sc{cvs} bug
   20669 (@pxref{Paus}).
   20670 
   20671 @item rcs error: Unknown option: -x,v/
   20672 This message will be followed by a usage message for
   20673 @sc{rcs}.  It means that you have an old version of
   20674 @sc{rcs} (probably supplied with your operating
   20675 system), as well as an old version of @sc{cvs}.
   20676 @sc{cvs} 1.9.18 and earlier only work with @sc{rcs} version 5 and
   20677 later; current versions of @sc{cvs} do not run @sc{rcs} programs.
   20678 @c For more information on installing @sc{cvs}, see
   20679 @c (FIXME: where?  it depends on whether you are
   20680 @c getting binaries or sources or what).
   20681 @c The message can also say "ci error" or something
   20682 @c instead of "rcs error", I suspect.
   20683 
   20684 @c <en>@item cvs [server aborted]: received broken pipe signal
   20685 @item cvs [server aborted]: received broken pipe signal
   20686 @c <en>This message seems to be caused by a hard-to-track-down
   20687 @c <en>bug in @sc{cvs} or the systems it runs on (we don't
   20688 @c <en>know---we haven't tracked it down yet!).  It seems to
   20689 @c <en>happen only after a @sc{cvs} command has completed, and
   20690 @c <en>you should be able to just ignore the message.
   20691 @c <en>However, if you have discovered information concerning its
   20692 @c <en>cause, please let us know as described in @ref{BUGS}.
   20693 This message seems to be caused by a hard-to-track-down
   20694 bug in @sc{cvs} or the systems it runs on (we don't
   20695 know---we haven't tracked it down yet!).  It seems to
   20696 happen only after a @sc{cvs} command has completed, and
   20697 you should be able to just ignore the message.
   20698 However, if you have discovered information concerning its
   20699 cause, please let us know as described in @ref{Paus}.
   20700 
   20701 @item 'root' is not allowed to commit files
   20702 When committing a permanent change, @sc{cvs} makes a log entry of
   20703 who committed the change.  If you are committing the change logged
   20704 in as "root" (not under "su" or other root-priv giving program),
   20705 @sc{cvs} cannot determine who is actually making the change.
   20706 As such, by default, @sc{cvs} disallows changes to be committed by users
   20707 logged in as "root".  (You can disable this option by passing the
   20708 @code{--enable-rootcommit} option to @file{configure} and recompiling @sc{cvs}.
   20709 On some systems this means editing the appropriate @file{config.h} file
   20710 before building @sc{cvs}.)
   20711 
   20712 @item Too many arguments!
   20713 This message is typically printed by the @file{log.pl}
   20714 script which is in the @file{contrib} directory in the
   20715 @sc{cvs} source distribution.  In some versions of
   20716 @sc{cvs}, @file{log.pl} has been part of the default
   20717 @sc{cvs} installation.  The @file{log.pl} script gets
   20718 called from the @file{loginfo} administrative file.
   20719 Check that the arguments passed in @file{loginfo} match
   20720 what your version of @file{log.pl} expects.  In
   20721 particular, the @file{log.pl} from @sc{cvs} 1.3 and
   20722 older expects the logfile as an argument whereas the
   20723 @file{log.pl} from @sc{cvs} 1.5 and newer expects the
   20724 logfile to be specified with a @samp{-f} option.  Of
   20725 course, if you don't need @file{log.pl} you can just
   20726 comment it out of @file{loginfo}.
   20727 
   20728 @item cvs [update aborted]: unexpected EOF reading @var{file},v
   20729 See @samp{EOF in key in RCS file}.
   20730 
   20731 @c <en>@item cvs [login aborted]: unrecognized auth response from @var{server}
   20732 @item cvs [login aborted]: unrecognized auth response from @var{server}
   20733 @c <en>This message typically means that the server is not set
   20734 @c <en>up properly.  For example, if @file{inetd.conf} points
   20735 @c <en>to a nonexistent cvs executable.  To debug it further,
   20736 @c <en>find the log file which inetd writes
   20737 @c <en>(@file{/var/log/messages} or whatever inetd uses on
   20738 @c <en>your system).  For details, see @ref{Connection}, and
   20739 @c <en>@ref{Password authentication server}.
   20740 This message typically means that the server is not set
   20741 up properly.  For example, if @file{inetd.conf} points
   20742 to a nonexistent cvs executable.  To debug it further,
   20743 find the log file which inetd writes
   20744 (@file{/var/log/messages} or whatever inetd uses on
   20745 your system).  For details, see @ref{Conexo}, and
   20746 @ref{Servidor de autenticao por senha}.
   20747 
   20748 @c <en>@item cvs commit: Up-to-date check failed for `@var{file}'
   20749 @item cvs commit: Up-to-date check failed for `@var{file}'
   20750 @c <en>This means that someone else has committed a change to
   20751 @c <en>that file since the last time that you did a @code{cvs
   20752 @c <en>update}.  So before proceeding with your @code{cvs
   20753 @c <en>commit} you need to @code{cvs update}.  @sc{cvs} will merge
   20754 @c <en>the changes that you made and the changes that the
   20755 @c <en>other person made.  If it does not detect any conflicts
   20756 @c <en>it will report @samp{M @var{file}} and you are ready
   20757 @c <en>to @code{cvs commit}.  If it detects conflicts it will
   20758 @c <en>print a message saying so, will report @samp{C @var{file}},
   20759 @c <en>and you need to manually resolve the
   20760 @c <en>conflict.  For more details on this process see
   20761 @c <en>@ref{Conflicts example}.
   20762 This means that someone else has committed a change to
   20763 that file since the last time that you did a @code{cvs
   20764 update}.  So before proceeding with your @code{cvs
   20765 commit} you need to @code{cvs update}.  @sc{cvs} will merge
   20766 the changes that you made and the changes that the
   20767 other person made.  If it does not detect any conflicts
   20768 it will report @samp{M @var{file}} and you are ready
   20769 to @code{cvs commit}.  If it detects conflicts it will
   20770 print a message saying so, will report @samp{C @var{file}},
   20771 and you need to manually resolve the
   20772 conflict.  For more details on this process see
   20773 @ref{Exemplo de conflitos}.
   20774 
   20775 @item Usage:	diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 file2 file3
   20776 @example
   20777 Only one of [exEX3] allowed
   20778 @end example
   20779 This indicates a problem with the installation of
   20780 @code{diff3} and @code{rcsmerge}.  Specifically
   20781 @code{rcsmerge} was compiled to look for GNU diff3, but
   20782 it is finding unix diff3 instead.  The exact text of
   20783 the message will vary depending on the system.  The
   20784 simplest solution is to upgrade to a current version of
   20785 @sc{cvs}, which does not rely on external
   20786 @code{rcsmerge} or @code{diff3} programs.
   20787 
   20788 @item warning: unrecognized response `@var{text}' from cvs server
   20789 If @var{text} contains a valid response (such as
   20790 @samp{ok}) followed by an extra carriage return
   20791 character (on many systems this will cause the second
   20792 part of the message to overwrite the first part), then
   20793 it probably means that you are using the @samp{:ext:}
   20794 access method with a version of rsh, such as most
   20795 non-unix rsh versions, which does not by default
   20796 provide a transparent data stream.  In such cases you
   20797 probably want to try @samp{:server:} instead of
   20798 @samp{:ext:}.  If @var{text} is something else, this
   20799 may signify a problem with your @sc{cvs} server.
   20800 Double-check your installation against the instructions
   20801 for setting up the @sc{cvs} server.
   20802 @c FIXCVS: should be printing CR as \r or \015 or some
   20803 @c such, probably.
   20804 
   20805 @c <en>@item cvs commit: [@var{time}] waiting for @var{user}'s lock in @var{directory}
   20806 @item cvs commit: [@var{time}] waiting for @var{user}'s lock in @var{directory}
   20807 @c <en>This is a normal message, not an error.  See
   20808 @c <en>@ref{Concurrency}, for more details.
   20809 This is a normal message, not an error.  See
   20810 @ref{Concorrncia}, for more details.
   20811 
   20812 @item cvs commit: warning: editor session failed
   20813 @cindex Exit status, of editor
   20814 This means that the editor which @sc{cvs} is using exits with a nonzero
   20815 exit status.  Some versions of vi will do this even when there was not
   20816 a problem editing the file.  If so, point the
   20817 @code{CVSEDITOR} environment variable to a small script
   20818 such as:
   20819 
   20820 @example
   20821 #!/bin/sh
   20822 vi $*
   20823 exit 0
   20824 @end example
   20825 
   20826 @c "warning: foo was lost" and "no longer pertinent" (both normal).
   20827 @c Would be nice to write these up--they are
   20828 @c potentially confusing for the new user.
   20829 @end table
   20830 
   20831 @c <en>@node Connection
   20832 @node Conexo
   20833 @c <en>@appendixsec Trouble making a connection to a CVS server
   20834 @appendixsec Trouble making a connection to a CVS server
   20835 
   20836 This section concerns what to do if you are having
   20837 trouble making a connection to a @sc{cvs} server.  If
   20838 you are running the @sc{cvs} command line client
   20839 running on Windows, first upgrade the client to
   20840 @sc{cvs} 1.9.12 or later.  The error reporting in
   20841 earlier versions provided much less information about
   20842 what the problem was.  If the client is non-Windows,
   20843 @sc{cvs} 1.9 should be fine.
   20844 
   20845 If the error messages are not sufficient to track down
   20846 the problem, the next steps depend largely on which
   20847 access method you are using.
   20848 
   20849 @table @code
   20850 @cindex :ext:, troubleshooting
   20851 @item :ext:
   20852 Try running the rsh program from the command line.  For
   20853 example: "rsh servername cvs -v" should print @sc{cvs}
   20854 version information.  If this doesn't work, you need to
   20855 fix it before you can worry about @sc{cvs} problems.
   20856 
   20857 @cindex :server:, troubleshooting
   20858 @item :server:
   20859 You don't need a command line rsh program to use this
   20860 access method, but if you have an rsh program around,
   20861 it may be useful as a debugging tool.  Follow the
   20862 directions given for :ext:.
   20863 
   20864 @cindex :pserver:, troubleshooting
   20865 @item :pserver:
   20866 Errors along the lines of "connection refused" typically indicate
   20867 that inetd isn't even listening for connections on port 2401
   20868 whereas errors like "connection reset by peer",
   20869 "received broken pipe signal", "recv() from server: EOF",
   20870 or "end of file from server"
   20871 typically indicate that inetd is listening for
   20872 connections but is unable to start @sc{cvs} (this is frequently
   20873 caused by having an incorrect path in @file{inetd.conf}
   20874 or by firewall software rejecting the connection).
   20875 "unrecognized auth response" errors are caused by a bad command
   20876 line in @file{inetd.conf}, typically an invalid option or forgetting
   20877 to put the @samp{pserver} command at the end of the line.
   20878 Another less common problem is invisible control characters that
   20879 your editor "helpfully" added without you noticing.
   20880 
   20881 One good debugging tool is to "telnet servername
   20882 2401".  After connecting, send any text (for example
   20883 "foo" followed by return).  If @sc{cvs} is working
   20884 correctly, it will respond with
   20885 
   20886 @example
   20887 cvs [pserver aborted]: bad auth protocol start: foo
   20888 @end example
   20889 
   20890 If instead you get:
   20891 
   20892 @example
   20893 Usage: cvs [cvs-options] command [command-options-and-arguments]
   20894 ...
   20895 @end example
   20896 
   20897 @noindent
   20898 then you're missing the @samp{pserver} command at the end of the
   20899 line in @file{inetd.conf}; check to make sure that the entire command
   20900 is on one line and that it's complete.
   20901 
   20902 Likewise, if you get something like:
   20903 
   20904 @example
   20905 Unknown command: `pserved'
   20906 
   20907 CVS commands are:
   20908         add          Add a new file/directory to the repository
   20909 ...
   20910 @end example
   20911 
   20912 @noindent
   20913 then you've misspelled @samp{pserver} in some way.  If it isn't
   20914 obvious, check for invisible control characters (particularly
   20915 carriage returns) in @file{inetd.conf}.
   20916 
   20917 If it fails to work at all, then make sure inetd is working
   20918 right.  Change the invocation in @file{inetd.conf} to run the
   20919 echo program instead of cvs.  For example:
   20920 
   20921 @example
   20922 2401  stream  tcp  nowait  root /bin/echo echo hello
   20923 @end example
   20924 
   20925 After making that change and instructing inetd to
   20926 re-read its configuration file, "telnet servername
   20927 2401" should show you the text hello and then the
   20928 server should close the connection.  If this doesn't
   20929 work, you need to fix it before you can worry about
   20930 @sc{cvs} problems.
   20931 
   20932 On AIX systems, the system will often have its own
   20933 program trying to use port 2401.  This is AIX's problem
   20934 in the sense that port 2401 is registered for use with
   20935 @sc{cvs}.  I hear that there is an AIX patch available
   20936 to address this problem.
   20937 
   20938 Another good debugging tool is the @samp{-d}
   20939 (debugging) option to inetd.  Consult your system
   20940 documentation for more information.
   20941 
   20942 If you seem to be connecting but get errors like:
   20943 
   20944 @example
   20945 cvs server: cannot open /root/.cvsignore: Permission denied
   20946 cvs [server aborted]: can't chdir(/root): Permission denied
   20947 @end example
   20948 
   20949 @noindent
   20950 then you probably haven't specified @samp{-f} in @file{inetd.conf}.
   20951 (In releases prior to @sc{cvs} 1.11.1, this problem can be caused by
   20952 your system setting the @code{$HOME} environment variable
   20953 for programs being run by inetd.  In this case, you can either
   20954 have inetd run a shell script that unsets @code{$HOME} and then runs
   20955 @sc{cvs}, or you can use @code{env} to run @sc{cvs} with a pristine
   20956 environment.)
   20957 
   20958 If you can connect successfully for a while but then can't,
   20959 you've probably hit inetd's rate limit.
   20960 (If inetd receives too many requests for the same service
   20961 in a short period of time, it assumes that something is wrong
   20962 and temporarily disables the service.)
   20963 Check your inetd documentation to find out how to adjust the
   20964 rate limit (some versions of inetd have a single rate limit,
   20965 others allow you to set the limit for each service separately.)
   20966 @end table
   20967 
   20968 @c <en>@node Other problems
   20969 @node Outros problemas
   20970 @c <en>@appendixsec Other common problems
   20971 @appendixsec Other common problems
   20972 
   20973 Here is a list of problems which do not fit into the
   20974 above categories.  They are in no particular order.
   20975 
   20976 @itemize @bullet
   20977 @item
   20978 @c <en>On Windows, if there is a 30 second or so delay when
   20979 @c <en>you run a @sc{cvs} command, it may mean that you have
   20980 @c <en>your home directory set to @file{C:/}, for example (see
   20981 @c <en>@code{HOMEDRIVE} and @code{HOMEPATH} in
   20982 @c <en>@ref{Environment variables}).  @sc{cvs} expects the home
   20983 @c <en>directory to not end in a slash, for example @file{C:}
   20984 @c <en>or @file{C:\cvs}.
   20985 On Windows, if there is a 30 second or so delay when
   20986 you run a @sc{cvs} command, it may mean that you have
   20987 your home directory set to @file{C:/}, for example (see
   20988 @code{HOMEDRIVE} and @code{HOMEPATH} in
   20989 @ref{Variveis de ambiente}).  @sc{cvs} expects the home
   20990 directory to not end in a slash, for example @file{C:}
   20991 or @file{C:\cvs}.
   20992 @c FIXCVS: CVS should at least detect this and print an
   20993 @c error, presumably.
   20994 
   20995 @item
   20996 @c <en>If you are running @sc{cvs} 1.9.18 or older, and
   20997 @c <en>@code{cvs update} finds a conflict and tries to
   20998 @c <en>merge, as described in @ref{Conflicts example}, but
   20999 @c <en>doesn't tell you there were conflicts, then you may
   21000 @c <en>have an old version of @sc{rcs}.  The easiest solution
   21001 @c <en>probably is to upgrade to a current version of
   21002 @c <en>@sc{cvs}, which does not rely on external @sc{rcs}
   21003 @c <en>programs.
   21004 If you are running @sc{cvs} 1.9.18 or older, and
   21005 @code{cvs update} finds a conflict and tries to
   21006 merge, as described in @ref{Exemplo de conflitos}, but
   21007 doesn't tell you there were conflicts, then you may
   21008 have an old version of @sc{rcs}.  The easiest solution
   21009 probably is to upgrade to a current version of
   21010 @sc{cvs}, which does not rely on external @sc{rcs}
   21011 programs.
   21012 @end itemize
   21013 
   21014 @c ---------------------------------------------------------------------
   21015 @c <en>@node Credits
   21016 @node Crditos
   21017 @c <en>@appendix Credits
   21018 @appendix Crditos
   21019 
   21020 @cindex Contributors (manual)
   21021 @cindex Credits (manual)
   21022 Roland Pesch, then of Cygnus Support <@t{roland@@wrs.com}>
   21023 wrote the manual pages which were distributed with
   21024 @sc{cvs} 1.3.  Much of their text was copied into this
   21025 manual.  He also read an early draft
   21026 of this manual and contributed many ideas and
   21027 corrections.
   21028 
   21029 The mailing-list @code{info-cvs} is sometimes
   21030 informative. I have included information from postings
   21031 made by the following persons:
   21032 David G. Grubbs <@t{dgg@@think.com}>.
   21033 
   21034 Some text has been extracted from the man pages for
   21035 @sc{rcs}.
   21036 
   21037 The @sc{cvs} @sc{faq} by David G. Grubbs has provided
   21038 useful material.  The @sc{faq} is no longer maintained,
   21039 however, and this manual is about the closest thing there
   21040 is to a successor (with respect to documenting how to
   21041 use @sc{cvs}, at least).
   21042 
   21043 In addition, the following persons have helped by
   21044 telling me about mistakes I've made:
   21045 
   21046 @display
   21047 Roxanne Brunskill <@t{rbrunski@@datap.ca}>,
   21048 Kathy Dyer <@t{dyer@@phoenix.ocf.llnl.gov}>,
   21049 Karl Pingle <@t{pingle@@acuson.com}>,
   21050 Thomas A Peterson <@t{tap@@src.honeywell.com}>,
   21051 Inge Wallin <@t{ingwa@@signum.se}>,
   21052 Dirk Koschuetzki <@t{koschuet@@fmi.uni-passau.de}>
   21053 and Michael Brown <@t{brown@@wi.extrel.com}>.
   21054 @end display
   21055 
   21056 The list of contributors here is not comprehensive; for a more
   21057 complete list of who has contributed to this manual see
   21058 the file @file{doc/ChangeLog} in the @sc{cvs} source
   21059 distribution.
   21060 
   21061 @c ---------------------------------------------------------------------
   21062 @c <en>@node BUGS
   21063 @node Paus
   21064 @c <en>@appendix Dealing with bugs in CVS or this manual
   21065 @appendix Dealing with bugs in CVS or this manual
   21066 
   21067 @cindex Bugs in this manual or CVS
   21068 Neither @sc{cvs} nor this manual is perfect, and they
   21069 probably never will be.  If you are having trouble
   21070 using @sc{cvs}, or think you have found a bug, there
   21071 are a number of things you can do about it.  Note that
   21072 if the manual is unclear, that can be considered a bug
   21073 in the manual, so these problems are often worth doing
   21074 something about as well as problems with @sc{cvs} itself.
   21075 
   21076 @cindex Reporting bugs
   21077 @cindex Bugs, reporting
   21078 @cindex Errors, reporting
   21079 @itemize @bullet
   21080 @item
   21081 If you want someone to help you and fix bugs that you
   21082 report, there are companies which will do that for a
   21083 fee.  One such company is:
   21084 
   21085 @cindex Ximbiot
   21086 @cindex Support, getting CVS support
   21087 @example
   21088 Ximbiot
   21089 319 S. River St.
   21090 Harrisburg, PA  17104-1657
   21091 USA
   21092 Email: info@@ximbiot.com
   21093 Phone: (717) 579-6168
   21094 Fax:   (717) 234-3125
   21095 @url{http://ximbiot.com/}
   21096 
   21097 @end example
   21098 
   21099 @item
   21100 If you got @sc{cvs} through a distributor, such as an
   21101 operating system vendor or a vendor of freeware
   21102 @sc{cd-rom}s, you may wish to see whether the
   21103 distributor provides support.  Often, they will provide
   21104 no support or minimal support, but this may vary from
   21105 distributor to distributor.
   21106 
   21107 @item
   21108 If you have the skills and time to do so, you may wish
   21109 to fix the bug yourself.  If you wish to submit your
   21110 fix for inclusion in future releases of @sc{cvs}, see
   21111 the file @sc{hacking} in the @sc{cvs} source
   21112 distribution.  It contains much more information on the
   21113 process of submitting fixes.
   21114 
   21115 @item
   21116 There may be resources on the net which can help.  Two
   21117 good places to start are:
   21118 
   21119 @example
   21120 @url{http://cvs.nongnu.org/}
   21121 @end example
   21122 
   21123 If you are so inspired, increasing the information
   21124 available on the net is likely to be appreciated.  For
   21125 example, before the standard @sc{cvs} distribution
   21126 worked on Windows 95, there was a web page with some
   21127 explanation and patches for running @sc{cvs} on Windows
   21128 95, and various people helped out by mentioning this
   21129 page on mailing lists or newsgroups when the subject
   21130 came up.
   21131 
   21132 @item
   21133 It is also possible to report bugs to @email{bug-cvs@@nongnu.org}.
   21134 Note that someone may or may not want to do anything
   21135 with your bug report---if you need a solution consider
   21136 one of the options mentioned above.  People probably do
   21137 want to hear about bugs which are particularly severe
   21138 in consequences and/or easy to fix, however.  You can
   21139 also increase your odds by being as clear as possible
   21140 about the exact nature of the bug and any other
   21141 relevant information.  The way to report bugs is to
   21142 send email to @email{bug-cvs@@nongnu.org}.  Note
   21143 that submissions to @email{bug-cvs@@nongnu.org} may be distributed
   21144 under the terms of the @sc{gnu} Public License, so if
   21145 you don't like this, don't submit them.  There is
   21146 usually no justification for sending mail directly to
   21147 one of the @sc{cvs} maintainers rather than to
   21148 @email{bug-cvs@@nongnu.org}; those maintainers who want to hear
   21149 about such bug reports read @email{bug-cvs@@nongnu.org}.  Also note
   21150 that sending a bug report to other mailing lists or
   21151 newsgroups is @emph{not} a substitute for sending it to
   21152 @email{bug-cvs@@nongnu.org}.  It is fine to discuss @sc{cvs} bugs on
   21153 whatever forum you prefer, but there are not
   21154 necessarily any maintainers reading bug reports sent
   21155 anywhere except @email{bug-cvs@@nongnu.org}.
   21156 @end itemize
   21157 
   21158 @cindex Known bugs in this manual or CVS
   21159 People often ask if there is a list of known bugs or
   21160 whether a particular bug is a known one.  The file
   21161 @sc{bugs} in the @sc{cvs} source distribution is one
   21162 list of known bugs, but it doesn't necessarily try to
   21163 be comprehensive.  Perhaps there will never be a
   21164 comprehensive, detailed list of known bugs.
   21165 
   21166 @c ---------------------------------------------------------------------
   21167 @c <en>@node Index
   21168 @node Indice
   21169 @c <en>@unnumbered Index
   21170 @unnumbered ndice
   21171 @c <en>@cindex Index
   21172 @cindex ndice
   21173 
   21174 @printindex cp
   21175 
   21176 @summarycontents
   21177 
   21178 @contents
   21179 
   21180 @bye
   21181 
   21183 Local Variables:
   21184 fill-column: 55
   21185 End:
   21186