--- cvs-1.12.13+real.orig/doc/cvs.texinfo
+++ cvs-1.12.13+real/doc/cvs.texinfo
@@ -1,6 +1,18 @@
 \input texinfo  @c -*-texinfo-*-
 @comment Documentation for CVS.
 @setfilename cvs.info
+@set MBSDPATCHLEVEL -MirOS-0AB8.1
+@tex
+ % set PA4 paper size (can print on both DIN ISO A4 and US Letter)
+ \globaldefs = 1%
+ \afourpaper%
+ \internalpagesizes{46\baselineskip}{160mm}%
+  {\voffset}{\hoffset}%
+  {\bindingoffset}{36pt}%
+  {28truecm}{21truecm}%
+ \globaldefs = 0%
+@end tex
+@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvs.texinfo,v 1.37 2017/11/18 22:37:49 tg Exp $
 @macro copyleftnotice
 @noindent
 Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
@@ -9,7 +21,11 @@
 
 @multitable @columnfractions .12 .88
 @item Portions
-@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005
+@item @tab Copyright @copyright{} 2003, 2004, 2005, 2007, 2009, 2010, 2011,
+                                  2013, 2014, 2015, 2016, 2017
+                                  mirabilos, The MirOS Project
+@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+                                  2007
                                   Derek R. Price,
 @item @tab Copyright @copyright{} 2002, 2003, 2004, 2005
                                   Ximbiot @url{http://ximbiot.com},
@@ -51,6 +67,15 @@
 @comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 @comment GNU General Public License for more details.
 
+@comment It should be noted that the Texinfo manual is distributed
+@comment under the above notice in all forms, except for the manpage
+@comment generated from it, and that the manual and the source code
+@comment of CVS often need to stay synchronised; therefore, exchanging
+@comment between these three entities under these two licences seems
+@comment to be granted, and the statement above can be interpreted as
+@comment explicit dual-licence grant. As a major contributor to this
+@comment documentation for MirBSD, I do not oppose.  --mirabilos
+
 @c See ../README for A4 vs. US letter size.
 @c When we provided A4 postscript, and people tried to
 @c print it on US letter, the usual complaint was that the
@@ -103,7 +128,7 @@
 @end direntry
 @dircategory Individual utilities
 @direntry
-* cvs: (cvs)CVS commands.       Concurrent Versions System
+* cvs: (cvs)CVS command list.   Concurrent Versions System
 @end direntry
 
 @comment The titlepage section does not appear in the Info file.
@@ -111,12 +136,12 @@
 @sp 4
 @comment The title is printed in a large font.
 @center @titlefont{Version Management}
-@sp
+@sp 1
 @center @titlefont{with}
-@sp
+@sp 1
 @center @titlefont{CVS}
 @sp 2
-@center for @sc{cvs} @value{VERSION}
+@center for @sc{cvs} @value{VERSION}@value{MBSDPATCHLEVEL}
 @comment -release-
 @sp 3
 @center Per Cederqvist et al
@@ -141,13 +166,20 @@
 @node    Top
 @top
 
+@ifnotinfo
+@anchor{Cederqvist}
+@end ifnotinfo
 This info manual describes how to use and administer
-@sc{cvs} version @value{VERSION}.
+@sc{cvs} version @value{VERSION}@value{MBSDPATCHLEVEL} and up.
 @end ifnottex
 
 @ifinfo
 @copyleftnotice
+@anchor{Cederqvist}
 @end ifinfo
+@iftex
+@anchor{Cederqvist}
+@end iftex
 
 @c This menu is pretty long.  Not sure how easily that
 @c can be fixed (no brilliant ideas right away)...
@@ -181,6 +213,7 @@
 * Troubleshooting::             Some tips when nothing works
 * Credits::                     Some of the contributors to this manual
 * BUGS::                        Dealing with bugs in CVS or this manual
+* CVS command list::            Alphabetical list of all CVS commands
 * Index::                       Index
 @end menu
 
@@ -327,7 +360,7 @@
 you wind up requiring the entire repository to be
 checked out.
 
-If you modularize your work, and construct a build
+If you modularise your work, and construct a build
 system that will share files (via links, mounts,
 @code{VPATH} in @file{Makefile}s, etc.), you can
 arrange your disk usage however you like.
@@ -483,11 +516,11 @@
 As a way of introducing @sc{cvs}, we'll go through a
 typical work-session using @sc{cvs}.  The first thing
 to understand is that @sc{cvs} stores all files in a
-centralized @dfn{repository} (@pxref{Repository}); this
+centralised @dfn{repository} (@pxref{Repository}); this
 section assumes that a repository is set up.
 @c I'm not sure that the sentence concerning the
 @c repository quite tells the user what they need to
-@c know at this point.  Might need to expand on "centralized"
+@c know at this point.  Might need to expand on "centralised"
 @c slightly (maybe not here, maybe further down in the example?)
 
 Suppose you are working on a simple compiler.  The source
@@ -742,7 +775,7 @@
 @c /home/joe/sources.  But this node is too long
 @c as it is; need a little reorganization...
 
-@cindex :local:, setting up
+@cindex local method, setting up
 @sc{cvs} can access a repository by a variety of
 means.  It might be on the local computer, or it might
 be on a computer across the room or across the world.
@@ -1037,10 +1070,6 @@
 if you want to allow read-only access to some directories
 (@pxref{config}).
 
-@c CVS seems to use CVSUMASK in picking permissions for
-@c val-tags, but maybe we should say more about this.
-@c Like val-tags gets created by someone who doesn't
-@c have CVSUMASK set right?
 @cindex CVSROOT/val-tags file, and read-only access to projects
 @cindex val-tags file, and read-only access to projects
 Also note that users must have write access to the
@@ -1072,7 +1101,7 @@
 @c FIXME: Need more discussion of which
 @c group should own the file in the repository.
 @c Include a somewhat detailed example of the usual
-@c case where CVSUMASK is 007, the developers are all
+@c case where CVSUMASK is 002, the developers are all
 @c in a group, and that group owns stuff in the
 @c repository.  Need to talk about group ownership of
 @c newly-created directories/files (on some unices,
@@ -1152,7 +1181,7 @@
 sure).
 
 If you are using local @sc{cvs} and the repository is on a
-networked file system which is served by the Samba SMB
+networked filesystem which is served by the Samba SMB
 server, some people have reported problems with
 permissions.  Enabling WRITE=YES in the samba
 configuration is said to fix/workaround it.
@@ -1551,7 +1580,7 @@
 This file lists the files and directories in the
 working directory.
 The first character of each line indicates what sort of
-line it is.  If the character is unrecognized, programs
+line it is.  If the character is unrecognised, programs
 reading the file should silently skip that line, to
 allow for future expansion.
 
@@ -1780,7 +1809,7 @@
 @cindex CVSROOT, module name
 @cindex Defining modules (intro)
 
-@c FIXME: this node should be reorganized into "general
+@c FIXME: this node should be reorganised into "general
 @c information about admin files" and put the "editing
 @c admin files" stuff up front rather than jumping into
 @c the details of modules right away.  Then the
@@ -1931,14 +1960,23 @@
 on what each developer uses).
 
 The repository should be accessible
-(directly or via a networked file system) from all
+(directly or via a networked filesystem) from all
 machines which want to use @sc{cvs} in server or local
 mode; the client machines need not have any access to
 it other than via the @sc{cvs} protocol.  It is not
-possible to use @sc{cvs} to read from a repository
+normally possible to use @sc{cvs} to read from a repository
 which one only has read access to; @sc{cvs} needs to be
 able to create lock files (@pxref{Concurrency}).
 
+If the environment variable @code{$CVSREADONLYFS} is defined,
+however, CVS will allow read-only access without creating any
+history entries or reader lock files.  This allows doing most
+usual repository operations except checkin in a fast way,
+although if any other user is accessing the same data at the
+same time, it may lead to corrupt data.  This mode is best used
+for publicly accessible anonymous CVS mirrors, not the main
+working repository.
+
 @cindex init (subcommand)
 To create a repository, run the @code{cvs init}
 command.  It will set up an empty repository in the
@@ -1954,9 +1992,18 @@
 you run @code{cvs init} on an already set-up
 repository.
 
-@code{cvs init} will enable history logging; if you
-don't want that, remove the history file after running
-@code{cvs init}.  @xref{history file}.
+The repository is created honouring the @code{$CVSUMASK}
+setting (@pxref{CVSUMASK}), even the @file{history} and
+@file{val-tags} files are not created world-writable any
+more as in previous CVS versions.  History logging is,
+accordingly, configured to log write operations only; if
+you don’t want that, edit or remove the @samp{LogHistory}
+entry in the @file{config} file (@pxref{config}) and make
+sure that all users who need to write that file can do so,
+for example by using a @code{$CVSUMASK} of 002 (which is
+also the default) and putting everyone into the same Unix
+group (consider the security implications if you really
+want to enable world-writable logging).
 
 @node Backing up
 @section Backing up a repository
@@ -2103,6 +2150,9 @@
 * Write proxies::               Distributing load across several CVS servers
 @end menu
 
+For the protocol specification,
+@pxref{Top, the CVS client/server protocol,, cvsclient, The CVS client/server protocol}.
+
 @node Server requirements
 @subsection Server requirements
 
@@ -2236,7 +2286,7 @@
 through and @var{port} is the port number on the HTTP proxy server to connect
 via.  @var{port} defaults to 8080.
 
-@strong{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy
+@emph{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy
 server - please see @ref{Write proxies} for more on @sc{cvs} write proxies.}
 
 For example, to connect pserver via a web proxy listening on port 8000 of
@@ -2246,7 +2296,7 @@
 :pserver;proxy=www.myproxy.net;proxyport=8000:@var{pserver_connection_string}
 @end example
 
-@strong{NOTE: In the above example, @var{pserver_connection_string} is still
+@emph{NOTE: In the above example, @var{pserver_connection_string} is still
 required to connect and authenticate to the CVS server, as noted in the
 upcoming sections on password authentication, @code{gserver}, and
 @code{kserver}.  The example above only demonstrates a modification to the
@@ -2369,7 +2419,7 @@
 machine to the filename of the server you want to use,
 for example @file{/usr/local/bin/cvs-1.6}.
 For the @code{ext} and @code{fork} methods, you may
-also specify @var{CVS_SERVER} as an otpion in the
+also specify @var{CVS_SERVER} as an option in the
 @var{CVSROOT} so that you may use different servers for
 differnt roots. See @ref{Remote repositories} for more
 details.
@@ -2377,21 +2427,23 @@
 There is no need to edit @file{inetd.conf} or start a
 @sc{cvs} server daemon.
 
-@cindex :server:, setting up
-@cindex :ext:, setting up
+@cindex server method, setting up
+@cindex ext method, setting up
 @cindex Kerberos, using kerberized rsh
 @cindex SSH (rsh replacement)
 @cindex rsh replacements (Kerberized, SSH, &c)
 There are two access methods that you use in @code{CVSROOT}
 for rsh.  @code{:server:} specifies an internal rsh
 client, which is supported only by some @sc{cvs} ports.
+This is not supported on most Unix-style systems.
 @code{:ext:} specifies an external rsh program.  By
 default this is @code{rsh} (unless otherwise specified
 by the @file{--with-rsh} flag to configure) but you may set the
 @code{CVS_RSH} environment variable to invoke another
 program which can access the remote server (for
 example, @code{remsh} on HP-UX 9 because @code{rsh} is
-something different).  It must be a program which can
+something different, or @code{ssh} to allow the use of secure
+and/or compressed connections).  It must be a program which can
 transmit data to and from the server without modifying
 it; for example the Windows NT @code{rsh} is not
 suitable since it by default translates between CRLF
@@ -2405,6 +2457,12 @@
 to be inapplicable; consult the documentation for your rsh
 replacement.
 
+In the Debian and MirBSD versions of @sc{cvs}, you can
+also specify @code{:extssh:} to force use of the Secure
+Shell, or @code{:ext=prog:} or @code{:ext=/path/to/prog:}
+to specify the remote shell to use without needing to
+touch the @code{CVS_RSH} environment variable.
+
 You may choose to specify the @var{CVS_RSH} option as a method option
 in the @var{CVSROOT} string to allow you to use different connection tools
 for different roots (@pxref{The connection method}).  For example, allowing
@@ -2501,15 +2559,19 @@
 The @samp{--allow-root} option specifies the allowable
 @sc{cvsroot} directory.  Clients which attempt to use a
 different @sc{cvsroot} directory will not be allowed to
-connect.  If there is more than one @sc{cvsroot}
-directory which you want to allow, repeat the option.
+connect.  To allow a whole class of @sc{cvsroot}, specify
+a POSIX extended regular expression to match allowed
+directories with the @samp{--allow-root-regexp} option.
+These options may be used in conjunction, and both options
+may be repeated to allow access to multiple @sc{cvsroot}
+directories and classes of directories.
 (Unfortunately, many versions of @code{inetd} have very small
 limits on the number of arguments and/or the total length
 of the command.  The usual solution to this problem is
 to have @code{inetd} run a shell script which then invokes
 @sc{cvs} with the necessary arguments.)
 
-        If your @code{inetd} wants a symbolic service
+If your @code{inetd} wants a symbolic service
 name instead of a raw port number, then put this in
 @file{/etc/services}:
 
@@ -2675,7 +2737,7 @@
 (@code{info-cvs@@nongnu.org} or @code{bug-cvs@@nongnu.org}) if you use the 
 @sc{cvs} PAM support.
 
-@strong{WARNING: Using PAM gives the system administrator much more 
+@emph{WARNING: Using PAM gives the system administrator much more 
 flexibility about how @sc{cvs} users are authenticated but 
 no more security than other methods.  See below for more.} 
 
@@ -2776,7 +2838,7 @@
 @cindex Login (subcommand)
 @cindex Password client, using
 @cindex Authenticated client, using
-@cindex :pserver:, setting up
+@cindex pserver method, setting up
 To run a @sc{cvs} command on a remote repository via
 the password-authenticating server, one specifies the
 @code{pserver} protocol, optional username, repository host, an
@@ -2887,7 +2949,7 @@
 @c FIXME: The bit about "access to the repository
 @c implies general access to the system is *not* specific
 @c to pserver; it applies to kerberos and SSH and
-@c everything else too.  Should reorganize the
+@c everything else too.  Should reorganise the
 @c documentation to make this clear.
 The separate @sc{cvs} password file (@pxref{Password
 authentication server}) allows people
@@ -2940,8 +3002,8 @@
 
 @cindex GSSAPI
 @cindex Security, GSSAPI
-@cindex :gserver:, setting up
-@cindex Kerberos, using :gserver:
+@cindex gserver method, setting up
+@cindex Kerberos, using gserver method
 GSSAPI is a generic interface to network security
 systems such as Kerberos 5.
 If you have a working GSSAPI library, you can have
@@ -2992,9 +3054,9 @@
 @node Kerberos authenticated
 @subsection Direct connection with Kerberos
 
-@cindex Kerberos, using :kserver:
+@cindex Kerberos, using kserver method
 @cindex Security, Kerberos
-@cindex :kserver:, setting up
+@cindex kserver method, setting up
 The easiest way to use Kerberos is to use the Kerberos
 @code{rsh}, as described in @ref{Connecting via rsh}.
 The main disadvantage of using rsh is that all the data
@@ -3039,7 +3101,7 @@
 @subsection Connecting with fork
 
 @cindex fork, access method
-@cindex :fork:, setting up
+@cindex fork method, setting up
 This access method allows you to connect to a
 repository on your local disk via the remote protocol.
 In other words it does pretty much the same thing as
@@ -3065,7 +3127,7 @@
 cvs -d :fork:/usr/local/cvsroot checkout foo
 @end example
 
-@cindex CVS_SERVER, and :fork:
+@cindex CVS_SERVER, and fork method
 As with @code{:ext:}, the server is called @samp{cvs}
 by default, or the value of the @code{CVS_SERVER}
 environment variable.
@@ -3994,7 +4056,7 @@
 tag.
 
 @noindent
-@strong{WARNING: the commands in this section are
+@emph{WARNING: the commands in this section are
 dangerous; they permanently discard historical
 information and it can be difficult or impossible to
 recover from errors.  If you are a @sc{cvs}
@@ -4024,7 +4086,7 @@
 trigger warnings and will not be deleted.
 
 @noindent
-@strong{WARNING: Moving branch tags is very dangerous!  If you think
+@emph{WARNING: Moving branch tags is very dangerous!  If you think
 you need the @code{-B} option, think again and ask your @sc{cvs}
 administrator about it (if that isn't you).  There is almost certainly
 another way to accomplish what you want to accomplish.}
@@ -4055,7 +4117,7 @@
 name are ignored with a warning message.
 
 @noindent
-@strong{WARNING: Moving branch tags is very dangerous!  If you think you
+@emph{WARNING: Moving branch tags is very dangerous!  If you think you
 need the @code{-B} option, think again and ask your @sc{cvs}
 administrator about it (if that isn't you).  There is almost certainly
 another way to accomplish what you want to accomplish.}
@@ -4257,7 +4319,7 @@
 @c until it is ready for the main trunk.  The whole
 @c thing is generally speaking more akin to the
 @c "Revision management" node although it isn't clear to
-@c me whether policy matters should be centralized or
+@c me whether policy matters should be centralised or
 @c distributed throughout the relevant sections.
 Suppose that release 1.0 of tc has been made.  You are continuing to
 develop tc, planning to create release 1.1 in a couple of months.  After a
@@ -4904,7 +4966,7 @@
 directory need not change anything.  Therefore, there
 is no conflict.
 
-@strong{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a
+@emph{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a
 major problem with using @samp{-kk} on merges.  Namely, @samp{-kk}
 overrode any default keyword expansion mode set in the archive file in
 the repository.  This could, unfortunately for some users, cause data
@@ -5104,7 +5166,7 @@
 @file{backend.c} to the repository:
 
 @c This example used to specify
-@c     -m "Optimizer and code generation passes."
+@c     -m "Optimiser and code generation passes."
 @c to the cvs add command, but that doesn't work
 @c client/server (see log2 in sanity.sh).  Should fix CVS,
 @c but also seems strange to document things which
@@ -5266,7 +5328,7 @@
 cvs add: oj.c, version 1.1.1.1, resurrected
 @end example
 
-If you realize your mistake before you run the
+If you realise your mistake before you run the
 @code{remove} command you can use @code{update} to
 resurrect the file:
 
@@ -5712,12 +5774,12 @@
 @node user-defined logging
 @section User-defined logging
 
-@c FIXME: probably should centralize this information
+@c FIXME: probably should centralise this information
 @c here, at least to some extent.  Maybe by moving the
 @c loginfo, etc., nodes here and replacing
 @c the "user-defined logging" node with one node for
 @c each method.
-You can customize @sc{cvs} to log various kinds of
+You can customise @sc{cvs} to log various kinds of
 actions, in whatever manner you choose.  These
 mechanisms operate by executing a script at various
 times.  The script might append a message to a file
@@ -5736,7 +5798,7 @@
 @samp{-o}, @samp{-e}, and @samp{-t} options in the
 modules file.  For a more flexible way of giving
 notifications to various users, which requires less in
-the way of keeping centralized scripts up to date, use
+the way of keeping centralised scripts up to date, use
 the @code{cvs watch add} command (@pxref{Getting
 Notified}); this command is useful even if you are not
 using @code{cvs watch on}.
@@ -5968,7 +6030,7 @@
 locks, have all developers put "edit -c", "commit -c" in their
 .cvsrc file, and turn on watches in the repository.  This
 prevents them from doing a @code{cvs edit} if anyone is
-already editting the file.  It also may
+already editing the file.  It also may
 be possible to use plain watches together with suitable
 procedures (not enforced by software), to avoid having
 two people edit at the same time.
@@ -6451,7 +6513,7 @@
 You can now go ahead and commit this as revision 1.7.
 
 @example
-$ cvs commit -m "Initialize scanner. Use symbolic exit values." driver.c
+$ cvs commit -m "Initialise scanner. Use symbolic exit values." driver.c
 Checking in driver.c;
 /usr/local/cvsroot/yoyodyne/tc/driver.c,v  <--  driver.c
 new revision: 1.7; previous revision: 1.6
@@ -6630,7 +6692,7 @@
 put "edit -c" and "commit -c" into all .cvsrc files,
 and make files default to read only by turning on watches
 or putting "cvs -r" into all .cvsrc files.
-This prevents multiple people from editting a file at
+This prevents multiple people from editing a file at
 the same time (unless explicitly overriden with @samp{-f}).
 
 @c I'm a little dissatisfied with this presentation,
@@ -6875,7 +6937,7 @@
 There are two additional options that @code{cvs edit} understands as of
 @sc{cvs} client and server versions 1.12.10 but @code{cvs watch} does not.
 The first is @code{-c}, which causes @code{cvs edit} to fail if anyone else
-is editting the file.  This is probably only useful when @samp{edit -c} and
+is editing the file.  This is probably only useful when @samp{edit -c} and
 @samp{commit -c} are specified in all developers' @file{.cvsrc} files.  This
 behavior may be overriden this via the @code{-f} option, which overrides
 @code{-c} and allows multiple edits to succeed.
@@ -6992,7 +7054,7 @@
 cons.  Let it be said that a lot of this is a matter of
 opinion or what works given different groups' working
 styles, but here is a brief description of some of the
-issues.  There are many ways to organize a team of
+issues.  There are many ways to organise a team of
 developers.  @sc{cvs} does not try to enforce a certain
 organization.  It is a tool that can be used in several
 ways.
@@ -7014,7 +7076,7 @@
 many groups is that they occur rarely and usually are
 relatively straightforward to resolve.
 
-The rarity of serious conflicts may be surprising, until one realizes
+The rarity of serious conflicts may be surprising, until one realises
 that they occur only when two developers disagree on the proper design
 for a given section of code; such a disagreement suggests that the
 team has not been communicating properly in the first place.  In order
@@ -7182,6 +7244,15 @@
 @item $@splitrcskeyword{Date}$
 The date and time (UTC) the revision was checked in.
 
+@cindex Mdocdate keyword
+@item $@splitrcskeyword{Mdocdate}$
+The date (UTC) the revision was checked in, in a format suitable
+for the Berkeley mdoc macro processing.
+
+@example
+$Mdocdate: November 18 2017 $
+@end example
+
 @cindex Header keyword
 @item $@splitrcskeyword{Header}$
 A standard header containing the full pathname of the
@@ -7336,7 +7407,7 @@
 the source files so that it gets passed through to
 generated files.  For example, if you are managing
 computer program source code, you might include a
-variable which is initialized to contain that string.
+variable which is initialised to contain that string.
 Or some C compilers may provide a @code{#pragma ident}
 directive.  Or a document management system might
 provide a way to pass a string through to generated
@@ -7550,13 +7621,14 @@
 A list may be used. The this example:
 
 @example
-        # Add a "MyBSD" keyword and restrict keyword
-        # expansion to the MyBSD, Name and Date keywords.
+        # Add a "MyBSD" keyword and restrict keyword expansion
+        # to the MyBSD, Name, Date and Mdocdate keywords.
         LocalKeyword=MyBSD=CVSHeader
-        KeywordExpand=iMyBSD,Name,Date
+        KeywordExpand=iMyBSD,Name,Date,Mdocdate
 @end example
 
-would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and
+would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$,
+$@splitrcskeyword{Mdocdate} and
 $@splitrcskeyword{Date}$ to be expanded.
 
 It is also possible to configure an exclusion list
@@ -7595,7 +7667,7 @@
 has been around a long time. However, that patch
 implemented these features using @code{tag=} and
 @code{tagexpand=} keywords and those keywords are NOT
-recognized.
+recognised.
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node Log keyword
@@ -7742,7 +7814,7 @@
 $ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05
 @end example
 
-@strong{WARNING: If you use a release tag that already exists in one of the
+@emph{WARNING: If you use a release tag that already exists in one of the
 repository archives, files removed by an import may not be detected.}
 
 For files that have not been modified locally, the newly created
@@ -7786,7 +7858,12 @@
 
 You can also revert local changes completely and return
 to the latest vendor release by changing the `head'
-revision back to the vendor branch on all files.  For
+revision back to the vendor branch on all files.  This
+does, however, produce weird results if you should ever
+edit this file again, for anyone looking at the output
+from the @code{log} command or CVSweb.  To fix this,
+first commit a revision of the file which equals the
+vendor branch, then use @code{admin} @samp{-b}. For
 example, if you have a checked-out copy of the sources
 in @file{~/work.d/wdiff}, and you want to revert to the
 vendor's version for all the files in that directory,
@@ -7853,6 +7930,10 @@
 @code{cvs import}.  It takes as an argument the vendor
 branch to import to.  The default is @samp{-b 1.1.1}.
 
+Vendor branches can only be in the format 1.1.x where
+@samp{x} is an @emph{uneven} number, because branch
+tags use even numbers.
+
 For example, suppose that there are two teams, the red
 team and the blue team, that are sending you sources.
 You want to import the red team's efforts to branch
@@ -8030,7 +8111,7 @@
 
 When @code{PreservePermissions} is in use, some @sc{cvs}
 operations (such as @samp{cvs status}) will not
-recognize a file's hard link structure, and so will
+recognise a file's hard link structure, and so will
 emit spurious warnings about mismatching hard links.
 The reason is that @sc{cvs}'s internal structure does not
 make it easy for these operations to collect all the
@@ -8094,16 +8175,18 @@
 This appendix describes the overall structure of
 @sc{cvs} commands, and describes some commands in
 detail (others are described elsewhere; for a quick
-reference to @sc{cvs} commands, @pxref{Invoking CVS}).
+reference to @sc{cvs} commands, @pxref{Invoking CVS},
+and for an alphabetical list of all @sc{cvs} commands,
+@pxref{CVS command list}).
 @c The idea is that we want to move the commands which
 @c are described here into the main body of the manual,
 @c in the process reorganizing the manual to be
-@c organized around what the user wants to do, not
-@c organized around CVS commands.
+@c organised around what the user wants to do, not
+@c organised around CVS commands.
 @c
 @c Note that many users do expect a manual which is
-@c organized by command.  At least some users do.
-@c One good addition to the "organized by command"
+@c organised by command.  At least some users do.
+@c One good addition to the "organised by command"
 @c section (if any) would be "see also" links.
 @c The awk manual might be a good example; it has a
 @c reference manual which is more verbose than Invoking
@@ -8117,19 +8200,20 @@
 * Global options::              Options you give to the left of cvs_command
 * Common options::              Options you give to the right of cvs_command
 * Date input formats::		Acceptable formats for date specifications
-* admin::                       Administration
+* admin::                       Administration front-end for RCS
 * annotate::                    What revision modified each line of a file?
 * checkout::                    Checkout sources for editing
 * commit::                      Check files into the repository
 * diff::                        Show differences between revisions
 * export::                      Export sources from CVS, similar to checkout
-* history::                     Show status of files and users
+* history::                     Show repository access history
 * import::                      Import sources into CVS, using vendor branches
-* log::                         Show log messages for files
+* log::                         Print out history information for files
 * ls & rls::                    List files in the repository
-* rdiff::                       'patch' format diffs between releases
+* rdiff::                       Create 'patch' format diffs between revisions
 * release::                     Indicate that a directory is no longer in use
 * server & pserver::            Act as a server for a client on stdin/stdout
+* suck::                        Download RCS ,v file raw
 * update::                      Bring work tree in sync with repository
 @end menu
 
@@ -8375,6 +8459,31 @@
 @samp{-N} in the @file{~/.cvsrc} entry for @samp{log},
 you may need to use @samp{-f} to show the tag names.
 
+@item -g
+Forges group-writable permissions on files in the working copy.
+This option is typically used when you have multiple users sharing
+a single checked out source tree, allowing them to operate their
+shells with a less dangerous umask at the expense of @sc{cvs} security.
+To use this feature, create a directory to hold the checked-out
+source tree, set it to a private group, and set up the directory
+such that files created under it inherit the gid of the directory.
+On BSD systems, this occurs automatically. On SYSV systems and
+GNU/Linux, the sgid bit must be set on the directory for this.
+The users who are to share the checked out tree must be placed in
+that group which owns the directory.
+
+Note that the sharing of a single checked-out source tree is very
+different from giving several users access to a common @sc{cvs} repository.
+Access to a common @sc{cvs} repository already maintains shared group-write
+permissions and does not require this option.
+
+Due to the security implications, setting this option globally in
+your @file{.cvsrc} file is strongly discouraged; if you must, ensure
+all source checkouts are "firewalled" within a private group or a
+private mode 0700 directory.
+
+This option is a MidnightBSD extension merged into Debian and MirBSD @sc{cvs}.
+
 @item -H
 @itemx --help
 Display usage information about the specified @samp{cvs_command}
@@ -8498,7 +8607,7 @@
 which are listed with the individual commands, may have
 different behavior from one @sc{cvs} command to the other).
 
-@strong{Note: the @samp{history} command is an exception; it supports
+@emph{Note: the @samp{history} command is an exception; it supports
 many options that conflict even with these standard options.}
 
 @table @code
@@ -8523,7 +8632,7 @@
 slightly different way; @pxref{history options}).
 
 For a complete description of the date formats accepted by @sc{cvs},
-@ref{Date input formats}.
+@pxref{Date input formats}.
 @c What other formats should we accept?  I don't want
 @c to start accepting a whole mess of non-standard
 @c new formats (there are a lot which are in wide use in
@@ -8610,7 +8719,7 @@
 @code{annotate}, @code{checkout}, @code{export},
 @code{rdiff}, @code{rtag}, and @code{update}.
 
-@strong{WARNING:  The @code{commit} and @code{remove}
+@emph{WARNING:  The @code{commit} and @code{remove}
 commands also have a
 @samp{-f} option, but it has a different behavior for
 those commands.  See @ref{commit options}, and
@@ -8631,7 +8740,7 @@
 @code{checkout}, @code{diff}, @code{export}, @code{import},
 @code{rdiff}, and @code{update} commands.
 
-@strong{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
+@emph{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
 overrode the @samp{-kb} indication for a binary file.  This could
 sometimes corrupt binary files.  @xref{Merging and keywords}, for
 more.}
@@ -8660,7 +8769,7 @@
 specified to run in the modules
 database (@pxref{modules}); this option bypasses it).
 
-@strong{Note: this is not the same as the @samp{cvs -n}
+@emph{Note: this is not the same as the @samp{cvs -n}
 program option, which you can specify to the left of a cvs command!}
 
 Available with the @code{checkout}, @code{commit}, @code{export},
@@ -8688,14 +8797,21 @@
 @item -r @var{tag}[:@var{date}]
 @cindex HEAD, special tag
 @cindex BASE, special tag
+@cindex BASE, special date
 Use the revision specified by the @var{tag} argument (and the @var{date}
 argument for the commands which accept it) instead of the
 default @dfn{head} revision.  As well as arbitrary tags defined
 with the @code{tag} or @code{rtag} command, two special tags are
 always available: @samp{HEAD} refers to the most recent version
-available in the repository, and @samp{BASE} refers to the
+available in the repository (also known as the tip of the @samp{MAIN}
+branch, also known as trunk; the name of a branch refers to its tip;
+this version of @sc{cvs} introduces @samp{.bhead}, but only for the
+@sc{diff} command, for the same), and @samp{BASE} refers to the
 revision you last checked out into the current working directory.
 
+@c fixed: HEAD is changed now; .bhead is the name of the branch,
+@c but added for cases where it is unknown.
+@c --mirabilos
 @c FIXME: What does HEAD really mean?  I believe that
 @c the current answer is the head of the default branch
 @c for all cvs commands except diff.  For diff, it
@@ -8735,12 +8851,19 @@
 the name of a branch is interpreted as the most recent
 revision on that branch.
 
+As a Debian and MirBSD @sc{cvs} extension, specifying @samp{BASE} as the
+@var{date} portion of the argument yields the @emph{base revision} of the
+branch specified by the @var{tag} portion of the argument, i.e. the revision
+on the parent branch the @var{tag} branch split off, or, where both
+branches were the same.
+This option has not received very much testing, beware!
+
 Specifying the @samp{-q} global option along with the
 @samp{-r} command option is often useful, to suppress
 the warning messages when the @sc{rcs} file
 does not contain the specified tag.
 
-@strong{Note: this is not the same as the overall @samp{cvs -r} option,
+@emph{Note: this is not the same as the overall @samp{cvs -r} option,
 which you can specify to the left of a @sc{cvs} command!}
 
 @samp{-r @var{tag}} is available with the @code{commit} and @code{history}
@@ -8765,7 +8888,7 @@
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node admin
-@appendixsec admin---Administration
+@appendixsec admin---Administration front-end for RCS
 @cindex Admin (subcommand)
 
 @itemize @bullet
@@ -8863,7 +8986,7 @@
 a future release of @sc{cvs}.
 
 @item -i
-Useless with @sc{cvs}.  This creates and initializes a
+Useless with @sc{cvs}.  This creates and initialises a
 new @sc{rcs} file, without depositing a revision.  With
 @sc{cvs}, add files with the @code{cvs add} command
 (@pxref{Adding files}).
@@ -9135,7 +9258,10 @@
 
 @itemize @bullet
 @item
-Synopsis: annotate [options] files@dots{}
+Synopsis:
+annotate [options] files@dots{}
+
+rannotate [options] files@dots{}
 @item
 Requires: repository.
 @item
@@ -9144,7 +9270,10 @@
 
 For each file in @var{files}, print the head revision
 of the trunk, together with information on the last
-modification for each line.  
+modification for each line.  If backwards annotation
+is requested, show the first modification after the
+specified revision.  (Backwards annotation currently
+appears to be broken.)
 
 @menu
 * annotate options::            annotate options
@@ -9160,6 +9289,10 @@
 them):
 
 @table @code
+@item -b
+Backwards, show when a line was removed.
+Currently appears to be broken.
+
 @item -l
 Local directory only, no recursion.
 
@@ -9455,8 +9588,7 @@
 
 @itemize @bullet
 @item
-Synopsis: commit [-lnRf] [-m 'log_message' |
--F file] [-r revision] [files@dots{}]
+Synopsis: commit [-lnRf] [-m 'log_message' | -F file] [-r revision] [files@dots{}]
 @item
 Requires: working directory, repository.
 @item
@@ -9501,8 +9633,11 @@
 
 At @code{commit}, a unique commitid is placed in the @sc{rcs}
 file inside the repository. All files committed at once
-get the same commitid. The commitid can be retrieved with
-the @code{log} and @code{status} command; see @ref{log},
+get the same commitid, a string consisting only of hexadecimal
+digits (usually 16 in GNU @sc{cvs}, 19 in Debian and MirBSD @sc{cvs}).
+FSF GNU @sc{cvs} 1.11 and OpenBSD OpenCVS do not support commitids yet.
+The commitid can be retrieved with
+the @code{log} and @code{status} command; see @ref{log} and
 @ref{File status}.
 
 @menu
@@ -9621,7 +9756,7 @@
 group would like to work on this software with you, but
 without disturbing main-line development, you could
 commit your change to a new branch.  Others can then
-checkout your experimental stuff and utilize the full
+checkout your experimental stuff and utilise the full
 benefit of @sc{cvs} conflict resolution.  The scenario might
 look like:
 
@@ -9685,7 +9820,7 @@
 under them will be compared.
 
 The exit status for diff is different than for other
-@sc{cvs} commands; for details @ref{Exit status}.
+@sc{cvs} commands; for details @pxref{Exit status}.
 
 @menu
 * diff options::                diff options
@@ -10394,7 +10529,7 @@
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node history
-@appendixsec history---Show status of files and users
+@appendixsec history---Show repository access history
 @cindex history (subcommand)
 
 @itemize @bullet
@@ -10425,7 +10560,7 @@
 (@file{$CVSROOT/CVSROOT/history}) with read and write permissions for all
 users (@pxref{Creating a repository}).
 
-@strong{Note: @code{history} uses @samp{-f}, @samp{-l},
+@emph{Note: @code{history} uses @samp{-f}, @samp{-l},
 @samp{-n}, and @samp{-p} in ways that conflict with the
 normal use inside @sc{cvs} (@pxref{Common options}).}
 
@@ -10774,12 +10909,14 @@
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node log
-@appendixsec log---Print out log information for files
+@appendixsec log---Print out history information for files
 @cindex log (subcommand)
 
 @itemize @bullet
 @item
 Synopsis: log [options] [files@dots{}]
+
+rlog [options] [files@dots{}]
 @item
 Requires: repository, working directory.
 @item
@@ -10805,7 +10942,7 @@
 the @code{$TZ} environment variable, which can be set to
 govern how @code{log} displays dates.
 
-@strong{Note: @code{log} uses @samp{-R} in a way that conflicts
+@emph{Note: @code{log} uses @samp{-R} in a way that conflicts
 with the normal use inside @sc{cvs} (@pxref{Common options}).}
 
 @menu
@@ -10997,13 +11134,15 @@
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node ls & rls
-@appendixsec ls & rls
+@appendixsec ls & rls---List files in the repository
 @cindex ls (subcommand)
 @cindex rls (subcommand)
 
 @itemize @bullet
 @item
 ls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
+
+rls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
 @item
 Requires: repository for @code{rls}, repository & working directory for
 @code{ls}.
@@ -11095,7 +11234,7 @@
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node rdiff
-@appendixsec rdiff---'patch' format diffs between releases
+@appendixsec rdiff---Create 'patch' format diffs between revisions
 @cindex rdiff (subcommand)
 
 @itemize @bullet
@@ -11173,6 +11312,9 @@
 @item -c
 Use the context diff format.  This is the default format.
 
+@item -p
+Show which C function each change is in.
+
 @item -s
 Create a summary change report instead of a patch.  The
 summary includes information about files that were
@@ -11231,7 +11373,7 @@
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node release
-@appendixsec release---Indicate that a Module is no longer in use
+@appendixsec release---Indicate that a directory is no longer in use
 @cindex release (subcommand)
 
 @itemize @bullet
@@ -11282,7 +11424,7 @@
 succeeds.  If this flag is not given your files will
 remain in your working directory.
 
-@strong{WARNING:  The @code{release} command deletes
+@emph{WARNING:  The @code{release} command deletes
 all directories and files recursively.  This
 has the very serious side-effect that any directory
 that you have created inside your checked-out sources,
@@ -11386,6 +11528,25 @@
 @end table
 
 @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+@node suck
+@appendixsec suck---Download RCS ,v file raw
+@cindex suck (subcommand)
+
+@itemize @bullet
+@item
+suck module/pa/th
+@item
+Requires: repository
+@end itemize
+
+Locates the file module/pa/th,v or module/pa/Attic/th,v and downloads
+it raw as RCS comma-v file.
+
+Output consists of the real pathname of the comma-v file, relative to
+the CVS repository, followed by a newline and the binary file content
+immediately thereafter.
+
+@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 @node update
 @appendixsec update---Bring work tree in sync with repository
 @cindex update (subcommand)
@@ -11635,6 +11796,8 @@
 references to where each command or feature is
 described in detail.  For other references run the
 @code{cvs --help} command, or see @ref{Index}.
+For an alphabetical list of all @sc{cvs} commands,
+@pxref{CVS command list}).
 
 A @sc{cvs} command looks like:
 
@@ -11646,10 +11809,15 @@
 
 @table @code
 @item --allow-root=@var{rootdir}
-Specify legal @sc{cvsroot} directory (server only) (not
-in @sc{cvs} 1.9 and older).  See @ref{Password
+Specify acceptable @sc{cvsroot} directory (server only).
+Appeared in @sc{cvs} 1.10.  See @ref{Password
 authentication server}.
 
+@item --allow-root-regexp=@var{rootdir}
+Specify a POSIX extended regular expression which matches acceptable
+@sc{cvsroot} directories (server only).  Appeared in @sc{cvs}
+1.12.14.  See @ref{Password authentication server}.
+
 @item -a
 Authenticate all communication (client only) (not in @sc{cvs}
 1.9 and older).  See @ref{Global options}.
@@ -11669,6 +11837,10 @@
 Do not read the @file{~/.cvsrc} file.  See @ref{Global
 options}.
 
+@item -g
+Set the umask to allow group writable permissions in
+the working copy.  See @ref{Global options}.
+
 @item -H
 @itemx --help
 Print a help message.  See @ref{Global options}.
@@ -11730,6 +11902,7 @@
 @example
 $@splitrcskeyword{Author}: joe $
 $@splitrcskeyword{Date}: 1993/12/09 03:21:13 $
+$@splitrcskeyword{Mdocdate}: December 9 1993 $
 $@splitrcskeyword{CVSHeader}: files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
 $@splitrcskeyword{Header}: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
 $@splitrcskeyword{Id}: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
@@ -11756,6 +11929,7 @@
 
 @table @code
 @c ------------------------------------------------------------
+@anchor{add}
 @item add [@var{options}] [@var{files}@dots{}]
 Add a new file/directory.  See @ref{Adding files}.
 
@@ -11877,7 +12051,8 @@
 @item -j @var{tag}[:@var{date}]
 Merge in the change specified by @var{tag}, or when @var{date} is specified
 and @var{tag} is a branch tag, the version from the branch @var{tag} as it
-existed on @var{date}.  See @ref{checkout options}.
+existed on @var{date}.  See @ref{checkout options}.  Also,
+see @ref{Common options}.
 
 @item -k @var{kflag}
 Use @var{kflag} keyword expansion.  See
@@ -11907,7 +12082,7 @@
 @item -r @var{tag}[:@var{date}]
 Checkout the revision already tagged with @var{tag} or, when @var{date} is
 specified and @var{tag} is a branch tag, the version from the branch @var{tag}
-as it existed on @var{date}.  This .  See @ref{Common options}.
+as it existed on @var{date}.  See @ref{Common options}.
 
 @item -s
 Like -c, but include module status.  See @ref{checkout options}.
@@ -11992,6 +12167,7 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{edit}
 @item edit [@var{options}] [@var{files}@dots{}]
 Get ready to edit a watched file.  See @ref{Editing files}.
 
@@ -12003,7 +12179,7 @@
 @ref{Editing files}.
 
 @item -c
-Check edits: Edit fails if someone else is already editting the file.
+Check edits: Edit fails if someone else is already editing the file.
 Requires a @sc{cvs} client and server both of version 1.12.10 or greater.
 
 @item -f
@@ -12018,6 +12194,7 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{editors}
 @item editors [@var{options}] [@var{files}@dots{}]
 See who is editing a watched file.  See @ref{Watch information}.
 
@@ -12163,14 +12340,17 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{init}
 @item init
 Create a @sc{cvs} repository if it doesn't exist.  See
 @ref{Creating a repository}.
 
 @c ------------------------------------------------------------
+@anchor{kserver}
 @item kserver
 Kerberos authenticated server.
-See @ref{Kerberos authenticated}.
+@xref{server & pserver}.
+@xref{Kerberos authenticated}.
 
 @c ------------------------------------------------------------
 @item log [@var{options}] [@var{files}@dots{}]
@@ -12211,21 +12391,55 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{login}
 @item login
 Prompt for password for authenticating server.  See
 @ref{Password authentication client}.
 
 @c ------------------------------------------------------------
+@anchor{logout}
 @item logout
 Remove stored password for authenticating server.  See
 @ref{Password authentication client}.
 
 @c ------------------------------------------------------------
+@anchor{ls}
+@item ls [@var{options}] [@var{path}@dots{}]
+List files available from CVS. See @ref{ls & rls}.
+
+@table @code
+@item -d
+Show dead revisions (with tag when specified).
+See @ref{ls & rls options}.
+
+@item -e
+Display in CVS/Entries format.
+
+@item -l
+Display all details.
+
+@item -P
+Prune empty directories.  See @ref{Moving directories}.
+
+@item -R
+List recursively. @xref{Recursive behavior}.
+
+@item -D @var{date}
+Show files from date.  See @ref{Common options}.
+
+@item -r @var{rev}
+Show files with revision or tag.
+@end table
+
+@c ------------------------------------------------------------
+@anchor{pserver}
 @item pserver
 Password authenticated server.
-See @ref{Password authentication server}.
+@xref{server & pserver}.
+@xref{Password authentication server}.
 
 @c ------------------------------------------------------------
+@anchor{rannotate}
 @item rannotate [@var{options}] [@var{modules}@dots{}]
 Show last revision where each line was modified.  See
 @ref{annotate}.
@@ -12298,7 +12512,7 @@
 @end table
 
 @c ------------------------------------------------------------
-@item release [@var{options}] @var{directory}
+@item release [@var{options}] @var{directories}@dots{}
 Indicate that a directory is no longer in use.  See
 @ref{release}.
 
@@ -12308,6 +12522,7 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{remove}
 @item remove [@var{options}] [@var{files}@dots{}]
 Remove an entry from the repository.  See @ref{Removing files}.
 
@@ -12324,6 +12539,7 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{rlog}
 @item rlog [@var{options}] [@var{files}@dots{}]
 Print out history information for modules.  See @ref{log}.
 
@@ -12361,9 +12577,40 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{rls}
+@item rls [@var{options}] [@var{path}@dots{}]
+List files in a module. See @ref{ls & rls}.
+
+@table @code
+@item -d
+Show dead revisions (with tag when specified).
+See @ref{ls & rls options}.
+
+@item -e
+Display in CVS/Entries format.
+
+@item -l
+Display all details.
+
+@item -P
+Prune empty directories.  See @ref{Moving directories}.
+
+@item -R
+List recursively. @xref{Recursive behavior}.
+
+@item -D @var{date}
+Show files from date.  See @ref{Common options}.
+
+@item -r @var{rev}
+Show files with revision or tag.
+@end table
+
+@c ------------------------------------------------------------
+@anchor{rtag}
 @item rtag [@var{options}] @var{tag} @var{modules}@dots{}
 Add a symbolic tag to a module.
-See @ref{Revisions} and @ref{Branching and merging}.
+@xref{Tagging by date/tag}.
+@xref{Creating a branch}.
 
 @table @code
 @item -a
@@ -12407,10 +12654,18 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{server}
 @item server
-Rsh server.  See @ref{Connecting via rsh}.
+SSH/rsh server.
+@xref{server & pserver}.
+@xref{Connecting via rsh}.
 
 @c ------------------------------------------------------------
+@item suck @var{module/filename}
+Download RCS ,v file raw.  See @ref{suck}.
+
+@c ------------------------------------------------------------
+@anchor{status}
 @item status [@var{options}] @var{files}@dots{}
 Display status information in a working directory.  See
 @ref{File status}.
@@ -12427,9 +12682,11 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{tag}
 @item tag [@var{options}] @var{tag} [@var{files}@dots{}]
 Add a symbolic tag to checked out version of files.
-See @ref{Revisions} and @ref{Branching and merging}.
+@xref{Tagging the working directory}.
+@xref{Creating a branch}.
 
 @table @code
 @item -b
@@ -12465,6 +12722,7 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{unedit}
 @item unedit [@var{options}] [@var{files}@dots{}]
 Undo an edit command.  See @ref{Editing files}.
 
@@ -12541,6 +12799,7 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{version}
 @item version
 @cindex version (subcommand)
 
@@ -12548,6 +12807,7 @@
 is remote, display both the client and server versions.
 
 @c ------------------------------------------------------------
+@anchor{watch}
 @item watch [on|off|add|remove] [@var{options}] [@var{files}@dots{}]
 
 on/off: turn on/off read-only checkouts of files.  See
@@ -12572,6 +12832,7 @@
 @end table
 
 @c ------------------------------------------------------------
+@anchor{watchers}
 @item watchers [@var{options}] [@var{files}@dots{}]
 See who is watching a file.  See @ref{Watch information}.
 
@@ -12711,7 +12972,7 @@
 @item @var{mname} [ options ] @var{dir} [ @var{files}@dots{} ]
 In the simplest case, this form of module definition
 reduces to @samp{@var{mname} @var{dir}}.  This defines
-all the files in directory @var{dir} as module mname.
+all the files in directory @var{dir} as module @var{mname}.
 @var{dir} is a relative path (from @code{$CVSROOT}) to a
 directory of source in the source repository.  In this
 case, on checkout, a single directory called
@@ -12934,7 +13195,7 @@
 @sc{cvs} will execute this program on the server from a temporary
 directory. The path is searched for this program.
 
-If using ``local access'' (on a local or remote NFS file system, i.e.
+If using ``local access'' (on a local or remote NFS filesystem, i.e.
 repository set just to a path),
 the program will be executed from the newly checked-out tree, if
 found there, or alternatively searched for in the path if not.
@@ -12975,7 +13236,7 @@
 mechanisms outside @sc{cvs}, to insert any necessary
 changes.
 
-@strong{WARNING: do not use @code{COPY} with
+@emph{WARNING: do not use @code{COPY} with
 @sc{cvs} 1.9 or earlier - such versions of @sc{cvs} will
 copy one version of your file over the other, wiping
 out the previous contents.}
@@ -13353,7 +13614,7 @@
 
 There are three kinds of programs that can be run on
 commit.  They are specified in files in the repository,
-as described below.  The following table summarizes the
+as described below.  The following table summarises the
 file names and the purpose of the corresponding
 programs.
 
@@ -13466,10 +13727,10 @@
 your @file{loginfo} command line templates, you will most likely have to
 rewrite any scripts called by the hook to handle the new argument format.
 
-Also note that the way @samp{%} followed by unrecognized characters and by
+Also note that the way @samp{%} followed by unrecognised characters and by
 @samp{@{@}} was treated in past versions of CVS is not strictly adhered to as
 there were bugs in the old versions.  Specifically, @samp{%@{@}} would eat the
-next character and unrecognized strings resolved only to the empty string,
+next character and unrecognised strings resolved only to the empty string,
 which was counter to what was stated in the documentation.  This version will
 do what the documentation said it should have (if you were using only some
 combination of @samp{%@{sVv@}}, e.g. @samp{%@{sVv@}}, @samp{%@{sV@}}, or
@@ -13749,7 +14010,7 @@
 
 The @file{loginfo} file is used to control where log information is sent after
 versioned changes are made to repository archive files and after directories
-are added ot the repository.  @ref{posttag} for how to log tagging
+are added to the repository.  @ref{posttag} for how to log tagging
 information and @ref{postadmin} for how to log changes due to the @code{admin}
 command.
 
@@ -13779,14 +14040,11 @@
 @file{loginfo} supports:
 
 @table @t
-@item @{stVv@}
+@item @{sVv@}
 File attributes, where:
 @table @t
 @item s
 file name
-@item T
-tag name of destination, or the empty string when there is no associated
-tag name (this usually means the trunk)
 @item V
 old version number (pre-checkin)
 @item v
@@ -13795,7 +14053,7 @@
 @end table
 
 For example, some valid format strings are @samp{%%},
-@samp{%s}, @samp{%@{s@}}, and @samp{%@{stVv@}}.
+@samp{%s}, @samp{%@{s@}}, and @samp{%@{sVv@}}.
 
 @cindex loginfo (admin file), updating legacy repositories
 @cindex compatibility notes, loginfo admin file
@@ -14210,7 +14468,7 @@
 
 @itemize @bullet
 @item
-The list is initialized to include certain file name
+The list is initialised to include certain file name
 patterns: names associated with @sc{cvs}
 administration, or with other common source control
 systems; common names for patch files, object files,
@@ -14378,7 +14636,7 @@
 the server machine, and don't get any reasonable
 expansion if pserver (@pxref{Password authenticated})
 is in use; therefore user variables (see below) may be
-a better choice to customize behavior based on the user
+a better choice to customise behavior based on the user
 running @sc{cvs}.
 @c Based on these limitations, should we deprecate ~?
 @c What is it good for?  Are people using it?
@@ -14442,6 +14700,7 @@
 random string of printable characters of at least 16
 characters length. Users should assume that it may
 someday grow to at most 256 characters in length.
+Currently, Debian and MirBSD @sc{cvs} uses 19 characters.
 @end table
 
 If you want to pass a value to the administrative files
@@ -14613,7 +14872,7 @@
 @cindex KeywordExpand, in CVSROOT/config
 @item KeywordExpand=@var{value}
 Specify @samp{i} followed by a list of keywords to be expanded
-(for example, @samp{KeywordExpand=iMYCVS,Name,Date}),
+(for example, @samp{KeywordExpand=iMYCVS,Name,Date,Mdocdate}),
 or @samp{e} followed by a list of keywords not to be expanded
 (for example, @samp{KeywordExpand=eCVSHeader}).
 For more on keyword expansion, see @ref{Configuring keyword expansion}.
@@ -14632,7 +14891,7 @@
 write access only to @var{directory}, not to the
 repository.
 It can also be used to put the locks on a very fast
-in-memory file system to speed up locking and unlocking
+in-memory filesystem to speed up locking and unlocking
 the repository.
 You need to create @var{directory}, but
 @sc{cvs} will create subdirectories of @var{directory} as it
@@ -14657,7 +14916,9 @@
 Default of @samp{TOEFWUPCGMAR} (or simply @samp{all}) will log
 all transactions.  Any subset of the default is
 legal.  (For example, to only log transactions that modify the
-@file{*,v} files, use @samp{LogHistory=TMAR}.)  To disable history logging
+@file{*,v} files, use @samp{LogHistory=TMAR} which is nowadays
+set by @code{cvs init} by default.)
+To disable history logging
 completely, use @samp{LogHistory=}.
 
 @cindex MaxCommentLeaderLength, in CVSROOT/config
@@ -14743,11 +15004,11 @@
 the log message should always be reread; @samp{no}
 or @samp{never}, indicating that it should never be
 reread; or @var{value} may be @samp{stat}, indicating
-that the file should be checked with the file system
+that the file should be checked with the filesystem
 @samp{stat()} function to see if it has changed (see warning below)
 before rereading.  The default value is @samp{always}.
 
-@strong{Note: the `stat' mode can cause CVS to pause for up to
+@emph{Note: the `stat' mode can cause CVS to pause for up to
 one extra second per directory committed.  This can be less IO and
 CPU intensive but is not recommended for use with large repositories}
 
@@ -14879,11 +15140,12 @@
 check out from a read-only repository, such as within
 an anoncvs server, or from a @sc{cd-rom} repository.
 
-It has the same effect as if the @samp{-R} command-line
+Setting this has the same effect as if the @samp{-R} command-line
 option is used. This can also allow the use of
 read-only NFS repositories.
 
 @item $CVSUMASK
+@anchor{CVSUMASK}
 Controls permissions of files in the repository.  See
 @ref{File permissions}.
 
@@ -14977,11 +15239,24 @@
 
 @cindex CVS_CLIENT_LOG, environment variable
 @item $CVS_CLIENT_LOG
-Used for debugging only in client-server
-mode.  If set, everything sent to the server is logged
-into @file{@code{$CVS_CLIENT_LOG}.in} and everything
-sent from the server is logged into
-@file{@code{$CVS_CLIENT_LOG}.out}.
+Used for debugging only in client-server mode.
+If set and not empty, everything sent to the server is logged
+into @file{@code{$CVS_CLIENT_LOG}.in}, and everything received
+from the server is logged into @file{@code{$CVS_CLIENT_LOG}.out}.
+
+@cindex CVS_SECONDARY_LOG, environment variable
+@item $CVS_SECONDARY_LOG
+Used for debugging only in secondary write proxy mode.
+If set and not empty, everything sent to the primary server is logged
+into @file{@code{$CVS_SECONDARY_LOG}.in}, and everything received
+from the primary server is logged into @file{@code{$CVS_SECONDARY_LOG}.out}.
+
+@cindex CVS_SERVER_LOG, environment variable
+@item $CVS_SERVER_LOG
+Used for debugging only in client-server mode.
+If set and not empty, everything sent to the client is logged
+into @file{@code{$CVS_SERVER_LOG}.in}, and everything received
+from the client is logged into @file{@code{$CVS_SERVER_LOG}.out}.
 
 @cindex CVS_SERVER_SLEEP, environment variable
 @item $CVS_SERVER_SLEEP
@@ -15047,7 +15322,7 @@
 @c If you "cvs rm" and commit using 1.3, then you'll
 @c want to run "rcs -sdead <file,v>" on each of the
 @c files in the Attic if you then want 1.5 and
-@c later to recognize those files as dead (I think the
+@c later to recognise those files as dead (I think the
 @c symptom if this is not done is that files reappear
 @c in joins).  (Wait: the above will work but really to
 @c be strictly correct we should suggest checking
@@ -15172,6 +15447,7 @@
 specific reason for denying authorization.  Check that
 the username and password specified are correct and
 that the @code{CVSROOT} specified is allowed by @samp{--allow-root}
+or @samp{--allow-root-regexp}
 in @file{inetd.conf}.  See @ref{Password authenticated}.
 
 @item cvs @var{command}: conflict: removed @var{file} was modified by second party
@@ -15614,21 +15890,21 @@
 access method you are using.
 
 @table @code
-@cindex :ext:, troubleshooting
+@cindex ext method, troubleshooting
 @item :ext:
 Try running the rsh program from the command line.  For
 example: "rsh servername cvs -v" should print @sc{cvs}
 version information.  If this doesn't work, you need to
 fix it before you can worry about @sc{cvs} problems.
 
-@cindex :server:, troubleshooting
+@cindex server method, troubleshooting
 @item :server:
 You don't need a command line rsh program to use this
 access method, but if you have an rsh program around,
 it may be useful as a debugging tool.  Follow the
 directions given for :ext:.
 
-@cindex :pserver:, troubleshooting
+@cindex pserver method, troubleshooting
 @item :pserver:
 Errors along the lines of "connection refused" typically indicate
 that inetd isn't even listening for connections on port 2401
@@ -15806,6 +16082,16 @@
 the file @file{doc/ChangeLog} in the @sc{cvs} source
 distribution.
 
+The MirOS Project uses @sc{cvs} heavily in MirOS BSD and the
+MirPorts Framework and has enhanced it as well as packaged it
+as the "new" Debian CVS package. Responsible:
+
+@display
+Thorsten Glaser <@t{tg@@mirbsd.org}>
+@end display
+
+CVS Homepage: @url{http://www.nongnu.org/cvs/}
+
 @c ---------------------------------------------------------------------
 @node BUGS
 @appendix Dealing with bugs in CVS or this manual
@@ -15910,6 +16196,49 @@
 comprehensive, detailed list of known bugs.
 
 @c ---------------------------------------------------------------------
+@node CVS command list
+@appendix Alphabetical list of all CVS commands
+
+@xref{Cederqvist, the introduction into the manual, CVS manual Table of Contents}.
+
+@menu
+* add::          Add a new file/directory to the repository
+* admin::        Administration front-end for RCS
+* annotate::     Show last revision where each line was modified
+* checkout::     Checkout sources for editing
+* commit::       Check files into the repository
+* diff::         Show differences between revisions
+* edit::         Get ready to edit a watched file
+* editors::      See who is editing a watched file
+* export::       Export sources from CVS, similar to checkout
+* history::      Show repository access history
+* import::       Import sources into CVS, using vendor branches
+* init::         Create a CVS repository
+* kserver::      Act in Kerberos server mode
+* log::          Print out history information for files
+* login::        Prompt for password for authenticating server
+* logout::       Removes entry in .cvspass for remote repository
+* ls::           List files available from CVS
+* pserver::      Act in password server mode
+* rannotate::    Show last revision where each line of module was modified
+* rdiff::        Create 'patch' format diffs between revisions
+* release::      Indicate that a work subdirectory is no longer in use
+* remove::       Remove an entry from the repository
+* rlog::         Print out history information for a module
+* rls::          List files in a module
+* rtag::         Add a symbolic tag to a module
+* server::       Act in server mode
+* suck::         Download RCS ,v file raw
+* status::       Display status information on checked out files
+* tag::          Add a symbolic tag to checked out version of files
+* unedit::       Undo an edit command
+* update::       Bring work tree in sync with repository
+* version::      Show current CVS version(s)
+* watch::        Set watches
+* watchers::     See who is watching a file
+@end menu
+
+@c ---------------------------------------------------------------------
 @node Index
 @unnumbered Index
 @cindex Index
