{
    "mode": "info",
    "parameter": "rc",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/info/rc/json",
    "generated": "2026-06-08T23:10:46Z",
    "sections": {
        "GNU RCS": {
            "content": "This manual is for GNU RCS (version 5.10.1, 27 January 2022).\n\nCopyright (C) 2010-2022 Thien-Thi Nguyen\n\nPermission is granted to copy, distribute and/or modify this\ndocument under the terms of the GNU Free Documentation License,\nVersion 1.3 or any later version published by the Free Software\nFoundation; with no Invariant Sections, with no Front-Cover Texts,\nand with no Back-Cover Texts.  A copy of the license is included in\nthe appendix entitled \"GNU Free Documentation License\".\n\n* Menu:\n\n* Overview::            General purpose and information.\n* Usage::               How to use RCS.\n* Hacking::             With source, you can help improve things.\n* GNU FDL::             Copying and sharing this documentation.\n* Index::\n\n-- The Detailed Node Listing --\n\nOverview\n* Credits::             Who did what, and when.\n* Concepts::            What is a revision?  How can RCS help?\n* Quick tour::          A hands-on introduction to using RCS.\n\nUsage\n* Common elements::\n* ci::\n* co::\n* ident::\n* merge::\n* rcs::\n* rcsclean::\n* rcsdiff::\n* rcsmerge::\n* rlog::\n\nCommon elements\n* Revision options::\n* Date option::\n* Description option::\n* Substitution mode option::\n* Log message option::\n* State option::\n* Working file mtime option: minus-M.\n* Misc common options::\n* Delim-separated list::\n* Environment::\n\nHacking\n* File format::\n* Stamp resolution::\n* Still missing::\n* Reporting bugs::\n\nFile: rcs.info,  Node: Overview,  Next: Usage,  Prev: Top,  Up: Top\n",
            "subsections": []
        },
        "1 Overview": {
            "content": "GNU RCS (Revision Control System) manages multiple revisions of files.\nRCS can store, retrieve, log, identify, and merge revisions.  It is\nuseful for files that are revised frequently, e.g.  programs,\ndocumentation, graphics, and papers.  It can handle text as well as\nbinary files, although functionality is reduced for the latter.\n\nA normal installation includes the commands: ci, co, ident, merge,\nrcs, rcsclean, rcsdiff, rcsmerge and rlog (*note Usage::).  These are\nsmall and fast programs (amenable to scripting) and indeed the\ndistribution also includes the script rcsfreeze showing some of the\npossibilities.\n\nRCS works with versions stored on a single filesystem or machine,\nedited by one person at a time.  Other version control systems, such as\nBazaar (<http:///www.gnu.org/software/bazaar>), CVS, Subversion, and\nGit, support distributed access in various ways.  Which is more\nappropriate depends on the task at hand.\n\n* Menu:\n\n* Credits::             Who did what, and when.\n* Concepts::            What is a revision?  How can RCS help?\n* Quick tour::          A hands-on introduction to using RCS.\n\nFile: rcs.info,  Node: Credits,  Next: Concepts,  Up: Overview\n",
            "subsections": [
                {
                    "name": "1.1 Credits",
                    "content": "RCS was designed and built by Walter F. Tichy of Purdue University.  RCS\nversion 3 was released in 1983.\n\nAdam Hammer, Thomas Narten, and Daniel Trinkle of Purdue supported\nRCS through version 4.3, released in 1990.  Guy Harris of Sun\ncontributed many porting fixes.  Paul Eggert of System Development\nCorporation contributed bug fixes and tuneups.  Jay Lepreau contributed\n4.3BSD support.\n\nPaul Eggert of Twin Sun wrote the changes for RCS versions 5.5 and\n5.6 (1991).  Rich Braun of Kronos and Andy Glew of Intel contributed\nideas for new options.  Bill Hahn of Stratus contributed ideas for\nsetuid support.  Ideas for piece tables came from Joe Berkovitz of\nStratus and Walter F. Tichy.  Matt Cross of Stratus contributed test\ncase ideas.  Adam Hammer of Purdue QAed.\n\nPaul Eggert wrote most of the changes for RCS 5.7.  K. Richard Pixley\nof Cygnus Support contributed several bug fixes.  Robert Lupton of\nPrinceton and Daniel Trinkle contributed ideas for '$Name' expansion.\nBrendan Kehoe of Cygnus Support suggested rlog's '-N' option.  Paul\nD. Smith of Data General suggested improvements in option and error\nprocessing.  Adam Hammer of Purdue QAed.\n\nThien-Thi Nguyen is responsible for RCS 5.8.  He modernized the code\nbase, build system, and manual pages, fixing some bugs on the way.  He\nadded standard '--help', '--version' processing, and wrote the\ndocumentation you are reading (gladly taking inspiration from the\npaper(1) and manpages originally written by Walter F. Tichy).\n\n---------- Footnotes ----------\n\n(1) Source (troff) and several output formats are available from the\nRCS homepage (http://www.gnu.org/software/rcs/).\n\nFile: rcs.info,  Node: Concepts,  Next: Quick tour,  Prev: Credits,  Up: Overview\n"
                },
                {
                    "name": "1.2 Concepts",
                    "content": "The interaction model is straightforward.  For each working file, you\ninitialize its RCS file once, then enter a cycle of checkout,\nmodification, and checkin operations.  Along the way, you can tweak some\nof the RCS file's metadata, as well.  All of this is done through RCS\ncommands; you need not modify the RCS file directly (and in fact you\nshould probably avoid doing so lest RCS become confused).  This model is\nsomewhat analogous to using a library (of books).  With a library, you\nsign up for a library card (initialize), then enter a cycle of taking a\nbook home (checkout), enjoying it (NB: *without* modification, one\nhopes), and returning it to the library (checkin).\n\nFurthermore, you can compare revisions in the RCS file against each\nother, examine the user- (hopefully high) quality descriptions of the\nchanges each revision embodies, merge selected revisions, and so forth.\n\n\nRCS commands operate on one pair of files at a time.  The \"working file\"\nis what you normally view and edit (e.g., a file of C programming\nlanguage source code named 'a.c').  Because the working file's contents\ncan be extracted from the RCS file (called \"instantiating a working\nfile\"), it can be safely deleted to regain some disk space.\n\n\nThe \"RCS file\" is a separate file, conventionally placed in the\nsubdirectory 'RCS', wherein RCS commands organize the initial and\nsubsequent \"revisions\" of the working file, associating with each\nrevision a unique revision number along with the remembered particulars\nof the checkin that produced it.  It also contains a \"description\" of\nthe working file and various other metadata, described below.\n\nThe RCS file is also known (colloquially) as the \"comma-v file\", due\nto its name often ending in ',v' (e.g., 'a.c,v').\n\nA \"revision number\" is a branch number followed by a dot followed by\nan integer, and a \"branch number\" is an odd number of integers separated\nby dot.  A revision number with one dot (implying a branch number\nwithout any dots) is said to be \"on the trunk\".  All integers are\npositive.  For example:\n\n1.1         -- revision number for initial checkin (typically);\nbranch number: 1\n\n9.4.1.42    -- more complicated (perhaps after much gnarly hacking);\nbranch number: 9.4.1\n\n333.333.333 -- not a valid revision number;\nhowever, a perfectly valid branch number\n\nThe \"branch point\" of a non-trunk branch is the revision number formed\nby removing the branch's trailing integer.  To compute the \"next higher\"\nbranch or revision number, add one to the trailing integer.  The\nhighest-numbered revision on a branch is called the \"tip\" of the branch\n(or \"branch tip\").  Continuing the example:\n\n1.1         -- on trunk; no branch point;\nnext higher branch number:   2\nnext higher revision number: 1.2\n\n9.4.1.42    -- not on trunk; branch point:  9.4\nnext higher branch number:   9.4.2\nnext higher revision number: 9.4.1.43\n\n333.333.333 -- not on trunk; branch point:  333.333\nnext higher branch number:   333.333.334\nnext higher revision number: 333.333.333.1\n\nIn addition to this \"tree\" of thus-linked revisions, the RCS file keeps\ntrack of the \"default branch\", i.e., the branch whose tip corresponds to\nthe most recent checkin; as well as the \"symbolic names\", a list of\nassociations between a user-supplied (and presumably meaningful) symbol\nand an underlying branch or revision number.\n\nThe RCS file contains two pieces of information used to implement its\n\"access control policy\".  The first is a list of usernames.  If\nnon-empty, only those users listed can modify the RCS file (via RCS\ncommands).  The second is a list of \"locks\", i.e., association between a\nusername and a revision number.  If a lock 'USERNAME:REVNO' exists, that\nmeans only USERNAME may modify REVNO (that is, do a checkin operation to\ndeposit the next higher revision, or a higher revision number on the\nsame branch as REVNO).\n\n\nThe \"checkin\" operation records the contents of the working file in the\nRCS file, assigning it a new (normally the next higher) revision number\nand recording the username, timestamp, \"state\" (a short symbol), and\nuser-supplied \"log message\" (a textual description of the changes\nleading to that revision).  It uses diff to find the differences between\nthe tip of the default branch and the working file, thereby writing the\nminimal amount of information needed to be able to recreate the contents\nof the previous tip.\n\nThe \"checkout\" operation identifies a specific revision from the RCS\nfile and either displays the content to standard output or instantiates\na working file, overwriting any current instantiation with the selected\nrevision.  In either case, the content may undergo \"keyword expansion\",\nwhich replaces text of the form '$Keyword$' with (possibly) different\ntext comprising the keyword and its \"value\", depending on the current\nkeyword expansion mode (*note Substitution mode option::).\n\n\nThe keywords and their values are:\n\nAuthor\nThe login name of the user who checked in the revision.\n\nDate\nThe date and time the revision was checked in.  May include an\nappended timezone offset.\n\nHeader\nA standard header containing the absolute RCS filename, the\nrevision number, the date and time, the author, the state, and the\nlocker (if locked).  May include an appended timezone offset.\n\nId\nSame as 'Header', except that only the basename appears (no\ndirectory components).\n\nLocker\nThe login name of the user who locked the revision (empty if not\nlocked).\n\nLog\nThe log message supplied during checkin, preceded by a header\ncontaining the RCS filename, the revision number, the author, and\nthe date and time.  May include an appended timezone offset.\n\nExisting log messages are not replaced.  Instead, the new log\nmessage is inserted after '$Log:...$'.  This is useful for\naccumulating a complete change log in a source file.\n\nEach inserted line is prefixed by the string that prefixes the\n'$Log$' line.  For example, if the '$Log$' line is\n\n// $Log: tan.cc $\n\nthen RCS prefixes each line of the log with '// ' (slash, slash,\nspace).  This is useful for languages with comments that go to the\nend of the line.\n\nThe convention for other languages is to use a ' * ' (space,\nasterisk, space) prefix inside a multiline comment.  For example,\nthe initial log comment of a C program conventionally is of the\nfollowing form:\n\n/*\n* $Log$\n*/\n\nFor backwards compatibility with older versions of RCS, if the log\nprefix is '/*' or '(*' surrounded by optional white space, inserted\nlog lines contain a space instead of '/' or '('; however, this\nusage is obsolescent and should not be relied on.\n\nName\nThe symbolic name used to check out the revision, if any.  For\nexample, 'co -rJoe' generates '$Name: Joe $'.  Plain co generates\njust '$Name: $'.\n\nRCSfile\nThe basename of the RCS file.\n\nRevision\nThe revision number assigned to the revision.\n\nSource\nThe absolute RCS filename.\n\nState\nThe state assigned to the revision with the '-s' option of rcs or\nci.\n\nFile: rcs.info,  Node: Quick tour,  Prev: Concepts,  Up: Overview\n"
                },
                {
                    "name": "1.3 Quick tour",
                    "content": "This section complements the preceding section (*note Concepts::),\npresenting a handful of RCS commands in quick succession.  For details\non individual RCS commands, *Note Usage::.\n\nSuppose you have a file 'f.c' that you wish to put under control of\nRCS. If you have not already done so, make an 'RCS' directory with the\ncommand:\n\nmkdir RCS\n\nThen invoke the checkin command:\n\nci f.c\n\nThis command creates an RCS file in directory 'RCS', stores 'f.c' into\nit as revision 1.1, and deletes 'f.c'.  It also asks you for a\ndescription.  The description should be a synopsis of the contents of\nthe file.  All later checkin commands will ask you for a log entry,\nwhich should summarize the changes that you made.\n\nTo get back the working file 'f.c' in the previous example, use the\ncheckout command:\n\nco f.c\n\nThis command extracts the latest revision from the RCS file and writes\nit into 'f.c'.  If you want to edit 'f.c', you must lock it as you check\nit out, with the command:\n\nco -l f.c\n\nYou can now edit 'f.c'.  Suppose after some editing you want to know\nwhat changes that you have made.  The command:\n\nrcsdiff f.c\n\ntells you the difference between the most recently checked-in version\nand the working file.  You can check the file back in by invoking:\n\nci f.c\n\nThis increments the revision number properly.  If ci complains with the\nmessage:\n\nci error: no lock set by your name\n\nthen you have tried to check in a file even though you did not lock it\nwhen you checked it out.  Of course, it is too late now to do the\ncheckout with locking, because another checkout would overwrite your\nmodifications.  Instead, invoke:\n\nrcs -l f.c\n\nThis command will lock the latest revision for you, unless somebody else\ngot ahead of you already.  In this case, you'll have to negotiate with\nthat person.\n\nLocking assures that you, and only you, can check in the next update,\nand avoids nasty problems if several people work on the same file.  Even\nif a revision is locked, it can still be checked out for reading,\ncompiling, etc.  All that locking prevents is a checkin by anybody but\nthe locker.\n\nIf your RCS file is private, i.e., if you are the only person who is\ngoing to deposit revisions into it, strict locking is not needed and you\ncan turn it off.  If strict locking is turned off, the owner of the RCS\nfile need not have a lock for checkin; all others still do.  Turning\nstrict locking off and on is done with the commands:\n\nrcs -U f.c    # disable strict locking\nrcs -L f.c    # enable strict locking\n\nIf you don't want to clutter your working directory with RCS files,\ncreate a subdirectory called 'RCS' in your working directory, and move\nall your RCS files there.  RCS commands will look first into that\ndirectory to find needed files.  All the commands discussed above will\nstill work, without any modification.  *Note Common elements::.\n\nTo avoid the deletion of the working file during checkin (in case you\nwant to continue editing or compiling), invoke one of:\n\nci -l f.c     # checkin + locked checkout\nci -u f.c     # checkin + unlocked checkout\n\nThese commands check in 'f.c' as usual, then perform an implicit\ncheckout.  The first form also locks the checked in revision, the second\none doesn't.  Thus, these options save you one checkout operation.  The\nfirst form is useful if you want to continue editing, the second one if\nyou just want to read the file.  Both update the keyword substitutions\nin your working file *note Concepts::.\n\nYou can give ci the number you want assigned to a checked-in\nrevision.  Assume all your revisions were numbered 1.1, 1.2, 1.3, etc.,\nand you would like to start release 2.  Either of the commands:\n\nci -r2 f.c\nci -r2.1 f.c\n\nassigns the number 2.1 to the new revision.  From then on, ci will\nnumber the subsequent revisions with 2.2, 2.3, etc.  The corresponding\nco commands:\n\nco -r2 f.c\nco -r2.1 f.c\n\nretrieve the latest revision numbered 2.x and the revision 2.1,\nrespectively.  co without a revision number selects the latest revision\non the trunk, i.e.  the highest revision with a number consisting of two\nfields.  Numbers with more than two fields are needed for branches.  For\nexample, to start a branch at revision 1.3, invoke:\n\nci -r1.3.1 f.c\n\nThis command starts a branch numbered 1 at revision 1.3, and assigns the\nnumber 1.3.1.1 to the new revision.  Here is a diagram showing the new\nrevision in relation to its branch and the trunk.\n\n1.1  --  1.2  --  1.3  --  1.4  --  1.5\n|\n[1.3.1]  --  1.3.1.1\n\nFor more information about branches, *Note Concepts::.\n\nFile: rcs.info,  Node: Usage,  Next: Hacking,  Prev: Overview,  Up: Top\n"
                }
            ]
        },
        "2 Usage": {
            "content": "This chapter describes how to invoke RCS commands, including common\ncommand-line elements, as well options specific to each command.\n\n* Menu:\n\n* Common elements::\n* ci::\n* co::\n* ident::\n* merge::\n* rcs::\n* rcsclean::\n* rcsdiff::\n* rcsmerge::\n* rlog::\n\nFile: rcs.info,  Node: Common elements,  Next: ci,  Up: Usage\n",
            "subsections": [
                {
                    "name": "2.1 Common elements",
                    "content": "All RCS commands accept '--help' and '--version'.  *Note\n(standards)Command-Line Interfaces::.\n\nAside from '--help' and '--version', RCS commands take the form\n'-LETTER[ARG]', i.e., a hyphen followed by a single letter, optionally\nfollowed by extra information.  The square braces mean that the extra\ninformation is optional.  (No square braces means that the extra\ninformation is required.)  In any case, when specified, the extra\ninformation *must* abut the letter; there can be no intervening\nwhitespace.\n\nco -u 1.4 foo   # wrong, space between -u and 1.4\nco -u1.4  foo   # ok\n\nFurthermore, options must appear before file names (if any) on the\ncommand line.\n\nident foo -q    # wrong, option after file name\nident -q foo    # ok\n\nLastly, pairs of RCS and working files can be specified in three ways:\n(a) both are given, (b) only the working file is given, (c) only the RCS\nfile is given.  For (a), both RCS and working files may have arbitrary\ndirectory components; RCS commands pair them up intelligently.  For (b),\nRCS commands will look first into the directory './RCS', if it exists,\nto find the associated RCS file.\n\n* Menu:\n\n* Revision options::\n* Date option::\n* Description option::\n* Substitution mode option::\n* Log message option::\n* State option::\n* Working file mtime option: minus-M.\n* Misc common options::\n* Delim-separated list::\n* Environment::\n\nFile: rcs.info,  Node: Revision options,  Next: Date option,  Up: Common elements\n\n\nAs to be expected in a revision control system, many options are of the\nform '-FLAG[REV]', where FLAG is a single letter (e.g., 'r').  If\nommitted, REV defaults to the latest revision on the default branch.  A\nrevision can be specified in many ways:\n\nBR.N\nStraightforward dot-notation, where BR specifies the branch.\n\n.N\nLike BR.N, using the default branch.\n\nBR\nLike BR.N, using the a command-specific computation of N, given the\ncurrent tip I.  For ci (*note ci::), N would be 'I + 1', while for\nother commands N would be simply I.\n\nNAME\nThis is the symbolic name of a revision, as assigned previously by\na 'ci -n' or 'ci -N' command.\n\n$\nThe command computes the effective revision by examining the values\nof keyword expansions in the working file.\n\nFor commands that accept a range of revisions, the syntax is generally\n'REV1:REV2', i.e., two revisions (specified as described above)\nseparated by a colon.\n\nFile: rcs.info,  Node: Date option,  Next: Description option,  Prev: Revision options,  Up: Common elements\n\n\nSome commands accept an option of the form '-dDATE' to specify a \"date\",\nan absolute point in time (to second resolution), expressed in a \"date\nformat\".  These also accept '-zZONE' to specify the timezone.  The\nspecial value 'LT' stands for the \"local time zone\".  RCS recognizes\nmany date formats and time zones.  For example, the following dates are\nequivalent if local time is January 11, 1990, 8pm Pacific Standard Time,\neight hours west of Coordinated Universal Time (UTC):\n\n8:00 pm lt\n4:00 AM, Jan. 12, 1990           default is UTC\n1990-01-12 04:00:00+00           ISO 8601 (UTC)\n1990-01-11 20:00:00-08           ISO 8601 (local time)\n1990/01/12 04:00:00              traditional RCS format\nThu Jan 11 20:00:00 1990 LT      output of ctime(3) + LT\nThu Jan 11 20:00:00 PST 1990     output of date(1)\nFri Jan 12 04:00:00 GMT 1990\nThu, 11 Jan 1990 20:00:00 -0800  Internet RFC 822\n12-January-1990, 04:00 WET\n\nMost fields in the date and time can be defaulted.  The default time\nzone is normally UTC, but this can be overridden by the '-z' option.\nThe other defaults are determined in the order year, month, day, hour,\nminute, and second (most to least significant).  At least one of these\nfields must be provided.  For omitted fields that are of higher\nsignificance than the highest provided field, the time zone's current\nvalues are assumed.  For all other omitted fields, the lowest possible\nvalues are assumed.  For example, without '-z', the date '20, 10:30'\ndefaults to '10:30:00 UTC' of the 20th of the UTC time zone's current\nmonth and year.  Note that for the shell, the date/time must be quoted\nif it contains spaces.\n\nRCS also accepts some other formats which specify only the date\nportion (omitting the time portion).  In the following table, YEAR is\nthe four-digit year 'YYYY', and all examples specify 20 April 2018.\n\nformat           example          description\n\n---------------------------------------------------------------------------\nYEAR-DOY         '2018-110'       DOY is the day of year 'DDD', 1-366.\n\nYEAR-wWEEK-DOW   '2018-w16-5'     WEEK is the ISO week number 'WW', 0-53\n(actually, ISO week numbers are 1-53;\nweek 0 is a GNU RCS extension); and\nDOW is the ISO day number 'D', 1-7\n(Monday through Sunday).  Note the\nliteral 'w' that precedes WEEK.\n\nFile: rcs.info,  Node: Description option,  Next: Substitution mode option,  Prev: Date option,  Up: Common elements\n\n\nSome commands accept an option of the form '-t-TEXT' or '-tFILE-NAME'.\nThis option is to set or update the RCS file description text.  In the\nfirst form, TEXT is used directly, excluding the leading hyphen ('-')\nthat distinguishes the two forms.  In the second form, the description\ntext is taken from the contents of FILE-NAME.\n\nFile: rcs.info,  Node: Substitution mode option,  Next: Log message option,  Prev: Description option,  Up: Common elements\n\n\nSome commands accept an option of the form '-kSUBST', used to control\nhow keywords (*note Concepts::) are expanded in the working file.  In\nthe following table of SUBST values, the example keyword is 'Revision'\nand its value is '5.13'.\n\nkv\nGenerate '$Revision: 5.13 $' (dollar-sign, keyword, colon, space,\nvalue, space, dollar-sign).  A locker's name is inserted in the\nvalue of the 'Header', 'Id' and 'Locker' keyword strings only as a\nfile is being locked, i.e., by 'ci -l' and 'co -l'.  This is the\ndefault substitution mode.\n\nkvl\nLike '-kkv', except that a locker's name is always inserted if the\ngiven revision is currently locked.\n\nk\nGenerate '$Revision$' (dollar-sign, keyword, dollar-sign).  This is\nuseful when comparing different revisions of a file.  Log messages\nare inserted after 'Log' keywords even if '-kk' is specified, since\nthis tends to be more useful when merging changes.\n\no\nLike '-kkv', but use the old value present in the working file just\nbefore it was checked in.  This can be useful for file formats that\ncannot tolerate any changes to substrings that happen to take the\nform of keyword strings.\n\nb\nLike '-ko', but do all file i/o in binary mode.  This makes little\ndifference on POSIX and Unix hosts, but on DOS-like hosts one\nshould use 'rcs -i -kb' to initialize an RCS file intended to be\nused for binary files.  Also, on all hosts, rcsmerge normally\nrefuses to merge files when '-kb' is in effect.\n\nv\nGenerate '5.13' (value only).  Further keyword substitution cannot\nbe performed once the keyword names are removed, so this should be\nused with care.  Because of this danger of losing keywords, '-kv'\ncannot be combined with '-l', and the owner write permission of the\nworking file is turned off; to edit the file later, check it out\nagain without '-kv'.\n\nFile: rcs.info,  Node: Log message option,  Next: State option,  Prev: Substitution mode option,  Up: Common elements\n\n\nBoth 'ci' and 'rcs' allow a log message to be specified with the '-m'\noption.  If the MSG argument to this option is empty, RCS uses the\ndefault '* empty log message *'.  This particular message is handled\nspecially (i.e., filtered out) by 'rlog'.\n\nFile: rcs.info,  Node: State option,  Next: minus-M,  Prev: Log message option,  Up: Common elements\n\n\nSome commands accept an option of the form '-sSTATE' to specify a state\n(*note ci::, *note co::).  For frob (*note rcs::), you can also specify\na revision.  For log (*note rlog::), you can specify more than one state\n(*note Delim-separated list::).\n\nRCS uses 'Exp' (for \"experimental\") as the default state, but does\nnot attach any meaning to it or any state you choose.  Other common\nstates are 'Rel' (for \"release\"), 'Prod' (for \"production\"), 'Stable',\nand so on.  A state should be an 'id' (\"identifier\", *note comma-v\ngrammar::).\n\nFile: rcs.info,  Node: minus-M,  Next: Misc common options,  Prev: State option,  Up: Common elements\n\n\nTwo commands that mutate the working file (*note ci::, *note co::)\naccept an option of the form '-M' or '-MREV'.\n\nThis option works with '-u' or '-l' to specify that the working\nfile's modification time should be set to the date associated with\nrevision REV (defaults to the branch tip if unspecified).\n\nLike '-T', this can be useful when the working file is named in a\nMakefile target's list of prerequisites.\n\nFile: rcs.info,  Node: Misc common options,  Next: Delim-separated list,  Prev: minus-M,  Up: Common elements\n\n\nOther common options are '-I', '-q', '-T', '-V', '-w', '-x'.\n\n-I\nThis option enables \"interactive mode\".  More precisely, it\n*forces* interactive mode, whereby RCS commands believe that their\nstandard input is a terminal, normally a precondition for\ndisplaying a prompt to receive input (such as a log message on\ncheckin).  The intention of '-I' is for scripting situations where\nstandard input is actually not a terminal but you know beforehand\n(without prompting) that input is needed and you are ready to\nprovide it on standard input anyway.\n\n-q\nThis option enables \"quiet mode\".  Commands work silently (unless\nthere is an error condition), and suppress warnings and prompts.\n\n-T\nThis option controls how some commands (*note ci::, *note co::,\n*note rcs::, *note rcsclean::) timestamp the RCS file.  Normally,\nRCS commands set the RCS file's timestamp when modifying it in the\n\"natural\" way (without taking any particular care).  With '-T', on\nthe other hand, the commands either preserve the timestamp (for\nstandalone lock/unlock operations), or use the timestamp of the\nworking file (for ci).\n\nThis can be useful if the RCS file is found in a makefile target's\nlist of prerequisites (*note (make)Rule Syntax::), that is, if some\ntarget should be rebuilt if the RCS file is newer than it.  In that\ncase, you can do 'rcs -u -T', for example, to unlock a revision in\nthe RCS file without triggering a recompilation.\n\n*Note Stamp resolution::, for details on support for subsecond\nresolution.\n\n-V\nBehave like '--version', i.e., display command version information\nand exit successfully.  *NB*: This option is obsolete and its\n*support will be removed* in some future release.\n\n-VN\nN specifies the RCS (major) version to emulate.  Valid values for N\nare: 3, 4, 5.  Version 5 is the current version, so '-V5' does\nnothing special.\n\nIn versions prior to 5, RCS outputs '\\t' (tab, U+09) between the\n':' (colon) and the value (for keyword substitution) instead of\nspace, uses the RCS file 'comment' string to prefix each line in\nthe 'Log' expansion instead of computing it on the fly from the\ninput text, writes/reads localtime instead of UTC, and displays\nslightly different output for rlog.\n\nFor version 4, the 'Header' expansion unconditionally includes\n'Locker: LOCKER', as if the 'kvl' substitution mode were specified\n(*note Substitution mode option::).\n\nFor version 3, the 'Header' expansion omits the directories from\nthe filename and says only 'Locked' instead of the state.\n\n-wLOGIN\nSome commands accept an option of the form '-wLOGIN' to specify the\nlogin name of the author of a revision, i.e., \"who\" is responsible.\n\n-xSUFF\nSpecify SUFF as the slash-separated list of file name suffixes used\nto recognize an RCS file.  The default value is ',v/', that is,\nfirst try with ',v' then try with an empty suffix.\n\nThis \"basename search\" occurs within (i.e., starting from the\nbeginning) the larger \"directory search\" loop, which comprises two\ncandidates: 'd/RCS' and 'd', where D is the directory component of\nthe working file name.  For example, given the working file 'a.c'\nin the current directory, RCS tries, in order, these candidates:\n\n./RCS/a.c,v\n./RCS/a.c\n./a.c,v\n./a.c\n\nNote that the last candidate is impossible (and is in fact\ndiscarded), because the working and RCS files cannot have the same\nname.\n\nFile: rcs.info,  Node: Delim-separated list,  Next: Environment,  Prev: Misc common options,  Up: Common elements\n\n\nSome options that require (or allow) additional information can take\nmultiple items of that information in the form of a \"delim-separated\nlist\", a concatenation of items with one or more delimiter characters\nbetween adjacent items.  Multiple adjacent delim characters count as a\nsingle delimiter.\n\nMost often you will use comma (',' or U+2C), but RCS also permits\nothers, depending on context.  In the following table, \"SPC\" is the\nspace character (U+20), \"LF\" is the linefeed character (U+0A), \"TAB\" is\nthe tab character (U+09), and \"semi\" is ';' (U+3B).\n\ncontext            permitted delimiter characters, notes\n\n--------------------------------------------------------------------------\nco -jJOINS         SPC TAB comma\nJOINS is a delim-separated list, each item of which\nis a \"join pair\" of the form REV:REV.  *Note co::.\n\nrcs -aACCESSORS    SPC LF TAB comma\nrcs -eACCESSORS    ACCESSORS is a delim-separated list of logins.\n*Note rcs::.\n\nrcs -oREVSPECS     semi comma\nrlog -rREVSPECS    \"revspecs\" is a delim-separated list, each item of\nwhich has one of the forms:\n\nREV\nREV1:          REV1-\nREV1:REV2      REV1-REV2\n\nThe variants in the second column use hyphen ('-',\nU+2D).  They are obsolete and should be avoided.\nThey are ambiguous in the presence of symbolic\nbranch and revision names that include a hyphen in\nthe name (*note Revision options::).\n\n*Note rcs::, *Note rlog::.  Note that although the\n\"join pair\" for co -j above is identical to a\n'REV1:REV2' revspec, the set of delim characters is\ndifferent.\n\nrlog -lLOCKERS     SPC TAB LF semi comma\nrlog -w[AUTHORS]   Both LOCKERS and AUTHORS are a delim-separated list\nof logins.  Note that AUTHORS is completely\noptional.  *Note rlog::.\n\nrlog -sSTATES      SPC TAB LF semi comma\nSTATES is a delim-separated list of states\n(*note State option::).  *Note rlog::.\n\nrlog -dDATES       SPC TAB LF semi comma\nDATES is a delim-separated list of date/time\nspecifications (*note Date option::).  *Note rlog::.\n\nMaintainer's Note: This embarrassment of choice for delim characters\nwill probably be reduced to simply one character in RCS 6: comma.\n\nFile: rcs.info,  Node: Environment,  Prev: Delim-separated list,  Up: Common elements\n\n\nVarious environment variables influence how RCS works.\n\n-- Environment Variable: RCSINIT\nAnother way to set common options is with the 'RCSINIT' environment\nvariable.  This is a space-separated list of options.  Use '\\'\n(backslash) to escape significant space.  For example:\n\n# Set the value; make it available to subsequent commands.\nRCSINIT=\"-q -x/,v -zLT\"\nexport RCSINIT\n\n# Use it (implicitly).\nrlog -L foo\n\nThis example, in Bourne shell syntax, arranges for RCS commands to\noperate as if each command-line had prepended '-q -x/,v -zLT' to\nthe rest of the command-line.  The effective command-line that rlog\nsees is thus '-q -x/,v -zLT -L foo'.\n\n-- Environment Variable: RCSMEMLIMIT\nNormally, for speed, commands either memory map or copy into memory\nthe RCS file if its size is less than the \"memory limit\", currently\ndefaulting to \"unlimited\".  Otherwise (or if the initially-tried\nspeedy ways fail), the commands fall back to using standard i/o\nroutines.\n\nYou can adjust the memory limit by setting the 'RCSMEMLIMIT'\nenvironment variable to a numeric value (measured in kilobytes).\nAn empty value is silently ignored.\n\nAs a side effect, specifying the memory limit inhibits fall-back to\nslower routines.  (This env var is mostly intended for testing RCS;\nnormally, you can leave it unset.  Probably it will be removed in a\nfuture release.)\n\n-- Environment Variable: TMPDIR\n-- Environment Variable: TMP\n-- Environment Variable: TEMP\nCommands sometimes create temporary files, normally in a\nsystem-dependent directory, such as '/tmp'.  You can override this\ndirectory by specifying another one as the value of one of the\nenvironment variables 'TMPDIR', 'TMP', or 'TEMP' (checked in that\norder).\n\n-- Environment Variable: LOGNAME\n-- Environment Variable: USER\nAbsent '-wLOGIN', or when LOGIN is omitted (*note Misc common\noptions::), commands check environment variables 'LOGNAME' and\n'USER' in that order(1).  If neither of these are set, RCS queries\nthe host for, and uses, your login.\n\n---------- Footnotes ----------\n\n(1) However, on systems where env var 'LOGNAME' is readonly at\nconfigure time, RCS checks 'USER' first.\n\nFile: rcs.info,  Node: ci,  Next: co,  Prev: Common elements,  Up: Usage\n"
                },
                {
                    "name": "2.2 Invoking ci",
                    "content": "rcs ci [options] file ...\n(or \"ci\" instead of \"rcs ci\")\n\nThe ci command adds a revision to the RCS file reflecting the current\nstate of the working file.  This operation is also known as \"checkin\".\n\n-f[REV]\nForce new entry, even if no content changed.\n\n-I[REV]\n-q[REV]\n*Note Misc common options::.\n\n-i[REV]\nInitial checkin; error if the RCS file already exists.\n\n-j[REV]\nJust checkin, don't initialize; error if the RCS file does not\nexist.\n\n-k[REV]\nCompute revision from working file keywords.\n\nDo not confuse this with '-kSUBST' (*note Substitution mode\noption::).\n\n-r\nRelease lock and delete working file.\n\n-rREV\nDo normal checkin.\n\n-l[REV]\nLike '-r', but immediately checkout locked ('co -l') afterwards.\n\n-u[REV]\nLike '-l', but checkout unlocked ('co -u').\n\n-M[REV]\n*Note minus-M::.\n\nMultiple flags in '-{fiIjklMqru}' may be given, except for '-r', '-l',\n'-u', which are mutually exclusive.  For a fully specified revision of\nthe form 'BR.N', N must be greater than any existing on BR, or BR must\nbe new.  If REV is omitted, compute it from the last lock ('co -l'),\nperhaps starting a new branch.  If there is no lock, use 'DEFBR.(L+1)'.\n*Note Revision options::.\n\n-d[DATE]\n-zZONE\n*Note Date option::.  If no DATE specified, use the working file\nmodification time.\n\n-m[MSG]\nUse MSG as the log message.  *Note Log message option::.\n\n-nNAME\n-NNAME\nAssign symbolic NAME to the entry.  For '-n', NAME must be new (no\nprevious assignment).  For '-N', overwrite any previous assignment.\n\n-sSTATE\nSet the state (*note State option::).\n\n-t-TEXT\n-tFILE-NAME\n*Note Description option::.\n\n-T\nSet the RCS file's modification time to the new revision's time if\nthe former precedes the latter and there is a new revision;\npreserve the RCS file's modification time otherwise.  *Note Misc\ncommon options::.\n\n-wWHO\nUse WHO as the author.  *Note Misc common options::.\n\n-V\n-VN\n-xSUFF\n*Note Misc common options::.\n\nFile: rcs.info,  Node: co,  Next: ident,  Prev: ci,  Up: Usage\n"
                },
                {
                    "name": "2.3 Invoking co",
                    "content": "rcs co [options] file ...\n(or \"co\" instead of \"rcs co\")\n\nThe co command retrieves a revision from the RCS file, writing a new\nworking file.  This operation is also known as \"checkout\".\n\n-f[REV]\nForce overwrite of working file.\n\n-I[REV]\n-q[REV]\n*Note Misc common options::.\n\n-p[REV]\nWrite to standard output instead of the working file.\n\n-r[REV]\nNormal checkout.\n\n-l[REV]\nLike '-r', but also lock.\n\n-u[REV]\nLike '-l', but unlock.\n\n-M[REV]\n*Note minus-M::.\n\nMultiple flags in '-{fIlMpqru}' may be given, except for '-r', '-l',\n'-u', which are mutually exclusive.  *Note Revision options::.\n\n-kSUBST\n*Note Substitution mode option::.\n\n-dDATE\n-zZONE\n*Note Date option::.  Select latest before or on DATE.\n\n-jJOINS\nMerge using JOINS, a list of 'REV:REV' pairs.  *NB*: This option is\nobsolete (*note rcsmerge::).\n\n-sSTATE\nSelect matching state (*note State option::).\n\n-S\nEnable \"self-same\" mode.  In this mode, the owner of a lock is\nunimportant, just that it exists.  Effectively, this prevents you\nfrom checking out the same revision twice.\n\n$ whoami\nttn\n\n$ co -l -f z\nRCS/z,v  -->  z\nrevision 1.1 (locked)\ndone\n\n$ co -S -l -f z\nRCS/z,v  -->  z\nco: RCS/z,v: Revision 1.1 is already locked by ttn.\n\n-T\nPreserve the modification time on the RCS file even if it changes\nbecause a lock is added or removed.  *Note Misc common options::.\n\n-wWHO\nSelect matching login WHO.  *Note Misc common options::.\n\n-V\n-VN\n-xSUFF\n*Note Misc common options::.\n\nFile: rcs.info,  Node: ident,  Next: merge,  Prev: co,  Up: Usage\n"
                },
                {
                    "name": "2.4 Invoking ident",
                    "content": "ident [options] [file ...]\n\nIf no FILE is specified, scan standard input.  The ident command scans\nits input for keywords (*note Concepts::), displaying to standard output\nwhat it finds.\n\n-q\nNormally, if no patterns are found for a file, ident emits a\nwarning.  This option suppresses the warning.\n\n-V\nNote that '-VN' is not a valid option for ident, in contrast to\nmost other RCS commands (*note Misc common options::).\n\nIn addition to the normal keyword pattern, for Subversion 1.2 (and\nlater) compatibility(1), ident also recognizes patterns having one of\nthe forms:\n\n$KEYWORD:: TEXT $\n;; two colons and space after keyword\n;; space before ending $\n\n$KEYWORD:: TEXT#$\n;; two colons and space after keyword\n;; hash before ending $\n\n---------- Footnotes ----------\n\n(1) The \"fixed-length keyword syntax\" is described in detail in\nVersion Control with Subversion, chapter \"Advanced Topics\", section\n\"Keyword Substitution\".\n\nFile: rcs.info,  Node: merge,  Next: rcs,  Prev: ident,  Up: Usage\n"
                },
                {
                    "name": "2.5 Invoking merge",
                    "content": "merge [options] receiving-sibling parent other-sibling\n\nThe merge command combines the differences between a the parent and the\nother sibling, and the differences between the parent and the receiving\nsibling.  It writes the result to the receiving sibling.\n\n-A\n-E\n-e\nUse 'diff3' '-A', '-E' (default), or '-e', respectively.\n\n-p\nWrite to standard output instead of overwriting RECEIVING-SIBLING.\n\n-q\n*Note Misc common options::.  Suppress conflict warnings.\n\n-L LABEL\n(up to three times) Specify the conflict labels for\nRECEIVING-SIBLING, PARENT and OTHER-SIBLING, respectively.\n\n-V\nNote that '-VN' is not a valid option for merge, in contrast to\nmost other RCS commands (*note Misc common options::).\n\nFile: rcs.info,  Node: rcs,  Next: rcsclean,  Prev: merge,  Up: Usage\n"
                },
                {
                    "name": "2.6 Invoking rcs",
                    "content": "The rcs command is unique in the set of RCS programs in that it has two\nusages, the modern (for RCS 5.9.0 and later) and the legacy.\n\n\nrcs [options] command [command-arg ...]\n\nThis rcs usage dispatches to COMMAND, passing along COMMAND-ARG...\nwithout interpretation.\n\n--commands\nDisplay a list of available commands, including a one-line\ndescription, and exit successfully.\n\n--aliases\nDisplay a list of command aliases and exit successfully.\n\n--help COMMAND\nDisplay help for a particular COMMAND and exit successfully.  For\nexample, to display help for the legacy interface, use:\n--help frob\n\n\nrcs frob [options] file ...\n(or \"rcs\" instead of \"rcs frob\")\n\nThis rcs usage performs various administrative operations on the RCS\nfile, depending on the options given.\n\n-i\nCreate and initialize a new RCS file.\n\n-L\nSet strict locking.\n\n-U\nSet non-strict locking.\n\n-M\nDon't send mail when breaking someone else's lock.\n\nDo not confuse this with '-MREV' (*note minus-M::).\n\n-T\nPreserve the modification time on the RCS file unless a revision is\nremoved.\n\n-I\n-q\n*Note Misc common options::.\n\n-aLOGINS\nAppend LOGINS (*note Delim-separated list::) to access-list.\n\n-e[LOGINS]\nErase LOGINS (*note Delim-separated list::) from access-list.  If\nLOGINS is omitted, clear the access-list.\n\n-AFILE-NAME\nAppend access-list of FILE-NAME to current access-list.\n\n-b[REV]\nSet default branch to that of REV or highest branch on trunk if REV\nis omitted.\n\n-l[REV]\nLock a revision.\n\n-u[REV]\nUnlock a revision.\n\n-cSTRING\nSet comment leader to STRING.  *NB*: Don't use; obsolete.\n\n-kSUBST\n*Note Substitution mode option::.\n\n-mREV:[MSG]\nReplace log message with MSG.  *Note Log message option::.\n\n-nNAME[:[REV]]\nIf :REV is omitted, delete symbolic NAME.  Otherwise, associate\nNAME with REV; NAME must be new.\n\n-NNAME[:[REV]]\nLike '-n', but overwrite any previous assignment.\n\n-oRANGE\nDelete (also known as \"outdate\") revisions in RANGE:\n\nREV\nsingle revision\n\nBR\nlatest revision on branch BR\n\n'REV1:REV2'\nREV1 to REV2 on same branch, inclusive\n\n':REV'\nbeginning of branch to REV\n\n'REV:'\nREV to end of branch\n\n-sSTATE[:REV]\nSet state (*note State option::).\n\n-t-TEXT\n-tFILE-NAME\n*Note Description option::.  Replace description.\n\n-V\n-VN\n-xSUFF\n*Note Misc common options::.\n\nThese options have no effect, and are included solely for consistency\nwith other commands (*note Environment::): '-zZONE'.\n\nFile: rcs.info,  Node: rcsclean,  Next: rcsdiff,  Prev: rcs,  Up: Usage\n"
                },
                {
                    "name": "2.7 Invoking rcsclean",
                    "content": "rcs clean [options] [file ...]\n(or \"rcsclean\" instead of \"rcs clean\")\n\nThe rcsclean command removes working files that are not being worked on.\nIf given '-u', it also unlocks and removes working files that are being\nworked on but have not changed.  If no FILE is specified, operate on all\nthe working files in the current directory.\n\n-r[REV]\nSpecify revision.\n\n-u[REV]\nUnlock if is locked and no differences found.\n\n-n[REV]\nDry run (no act, don't operate).\n\n-q[REV]\n*Note Misc common options::.\n\n-kSUBST\n*Note Substitution mode option::.\n\n-T\nPreserve the modification time on the RCS file even it changes\nbecause a lock is removed.\n\n-V\n-VN\n-xSUFF\n*Note Misc common options::.\n\n-zZONE\n*Note Date option::.\n\nFile: rcs.info,  Node: rcsdiff,  Next: rcsmerge,  Prev: rcsclean,  Up: Usage\n"
                },
                {
                    "name": "2.8 Invoking rcsdiff",
                    "content": "rcs diff [options] file ...\n(or \"rcsdiff\" instead of \"rcs diff\")\n\nThe rcsdiff command runs diff to compare two revisions in an RCS file.\n*Note (diff)Invoking diff::.\n\n-rREV\n(zero, one, or two times) Name a revision.  If given two revisions\n('-rREV1 -rREV2'), compare those revisions.  If given only one\nrevision ('-rREV'), compare the working file with it.  If given no\nrevisions, compare the working file with the latest revision on the\ndefault branch.\n\n-kSUBST\n*Note Substitution mode option::.\n\n-q\n*Note Misc common options::.\n\n-V\n-VN\n-xSUFF\n*Note Misc common options::.\n\n-zZONE\n*Note Date option::.\n\nThese options have no effect, and are included solely for consistency\nwith other commands (*note Environment::): '-T'.\n\nAdditionally, the following options (and their argument, if any) are\npassed to the underlying diff command:\n\n-0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -B, -C, -D, -F, -H, -I,\n-L, -U, -W, -a, -b, -c, -d, -e, -f, -h, -i, -n, -p, -t, -u, -w, -y,\nlong options (that start with \"--\")\n\n(Not all of these options are meaningful.)\n\nFile: rcs.info,  Node: rcsmerge,  Next: rlog,  Prev: rcsdiff,  Up: Usage\n"
                },
                {
                    "name": "2.9 Invoking rcsmerge",
                    "content": "rcs merge [options] file\n(or \"rcsmerge\" instead of \"rcs merge\")\n\nThe rcsmerge command incorporates the changes between two revisions of\nan RCS file into the corresponding working file.\n\n-A\n-E\n-e\nPassed to the diff3 command.  The default if none are specified is\n'-E'.  With '-e', suppress warnings on conflict.  The '-A' style\ngenerates the most verbose output.  *Note (diff)Invoking diff3::.\n\n-p[REV]\nWrite to standard output instead of overwriting the working file.\n\n-q[REV]\n*Note Misc common options::.\n\n-rREV\n(one or two times) specify a revision.\n\nOne or two revisions must be specified (using '-p', '-q', '-r').  If\nonly one is specified, the second revision defaults to the latest\nrevision on the default branch.\n\n-kSUBST\n*Note Substitution mode option::.\n\n-V\n-VN\n-xSUFF\n*Note Misc common options::.\n\n-zZONE\n*Note Date option::.\n\nThese options have no effect, and are included solely for consistency\nwith other commands (*note Environment::): '-T'.\n\nFile: rcs.info,  Node: rlog,  Prev: rcsmerge,  Up: Usage\n"
                },
                {
                    "name": "2.10 Invoking rlog",
                    "content": "rcs log [options] file ...\n(or \"rlog\" instead of \"rcs log\")\n\nThe rlog command displays information about RCS files.\n\n-L\nIgnore RCS files with no locks set.\n\n-R\nPrint only the name of the RCS file.\n\n-h\nPrint only the \"header\" information.\n\n-t\nLike '-h', but also include the description.\n\n-N\nOmit symbolic names.\n\n-b\nSelect the default branch.\n\n-dDATES\n*Note Date option::.  Select revisions based on timestamp, in the\nrange DATES, with spec:\n\nD\nsingle revision D or earlier\n\nD1<D2\nD2>D1\nbetween D1 and D2, exclusive\n\n<D\nD>\nbefore D\n\n>D\nD<\nafter D\n\nInstead of '<' or '>', you can use '<=' or '>=', respectively, to\nspecify inclusive ranges.  DATES may also be a list of\nsemicolon-separated specs.\n\n-l[WHO]\nSelect revisions locked by WHO (*note Delim-separated list::) only,\nor by anyone if WHO is omitted.\n\n-r[REVS]\nSelect revisions in REVS (*note Delim-separated list::), one of:\nREV, 'REV:', ':REV', 'REV1:REV2'.\n\n-sSTATE[,STATE...]\nSelect revisions with specified state(s) (*note State option::).\n\n-w[WHO]\nSelect revisions checked in by WHO (*note Delim-separated list::),\nor by the user if WHO is omitted.\n\n-V\n-VN\n-xSUFF\n*Note Misc common options::.\n\n-zZONE\n*Note Date option::.  This option also changes the output format of\nthe date to use hyphens instead of slashes.  For example:\n\n$ rlog t,v  # without -z\n...\ndate: 2010/10/02 04:35:26;  [...]\n...\n\n$ rlog -z+0200 t,v\n...\ndate: 2010-10-02 06:35:26+02;  [...]\n...\n\nThese options have no effect, and are included solely for consistency\nwith other commands (*note Environment::): '-q', '-T'.\n\nFile: rcs.info,  Node: Hacking,  Next: GNU FDL,  Prev: Usage,  Up: Top\n"
                }
            ]
        },
        "3 Hacking": {
            "content": "This chapter, in contrast to the previous (*note Usage::), is\nintrospective.  It describes important aspects of RCS interop with other\nprograms, and development ideas and methods.\n\n* Menu:\n\n* File format::         What is stored on disk.\n* Stamp resolution::    At times, whole numbers barely satisfy.\n* Still missing::       What RCS lacks, perhaps perpetually.\n* Reporting bugs::      Sending bug reports and feature suggestions.\n\nFile: rcs.info,  Node: File format,  Next: Stamp resolution,  Up: Hacking\n",
            "subsections": [
                {
                    "name": "3.1 File format",
                    "content": "An RCS file's contents are described by the grammar below(1).  Overall,\nthe format is free-format text.  In most environments RCS uses the ISO\n8859/1 encoding: visible graphic characters are (octal) codes 041-176\nand 240-377, and whitespace characters are codes 010-015 and 040.\n*TODO:*  Discuss or point to encoding compatibility issues.\n\n* Menu:\n\n* comma-v grammar::\n* comma-v particulars::\n\n---------- Footnotes ----------\n\n(1) This section is adapted from the 'rcsfile(5)' manpage, written by\nWalter F. Tichy.\n\nFile: rcs.info,  Node: comma-v grammar,  Next: comma-v particulars,  Up: File format\n\n\nThe meta syntax in this section uses the following conventions: '|'\n(U+7C) separates alternatives; '{' (U+7B) and '}' (U+7D) enclose\noptional phrases; '{' and '}*' (trailing U+2A) enclose phrases that can\nbe repeated zero or more times; '{' and '}+' (trailing U+2B) enclose\nphrases that must appear at least once and can be repeated; terminal\nsymbols are in '\"\"' (two U+22).\n\nrcstext   ::=  admin {delta}* desc {deltatext}*\n\nadmin     ::=  \"head\"         {num} \";\"\n{ \"branch\"     {num} \";\" }\n\"access\"       {id}* \";\"\n\"symbols\"      { sym \":\" num }* \";\"\n\"locks\"        { id \":\" num }* \";\"\n{ \"strict\" \";\" }\n{ \"integrity \" {intstring} \";\" }\n{ \"comment\"    {string} \";\" }\n{ \"expand\"     {string} \";\" }\n\ndelta     ::=  num\n\"date\"       num \";\"\n\"author\"     id \";\"\n\"state\"      {id} \";\"\n\"branches\"   {num}* \";\"\n\"next\"       {num} \";\"\n{ \"commitid\" sym \";\" }\n\ndesc      ::=  \"desc\"  string\n\ndeltatext ::=  num\n\"log\"   string\n\"text\"  string\n\nnum       ::=  { digit | \".\" }+\n\ndigit     ::=  \"0\" through \"9\"\n\nid        ::=  { idchar | \".\" }+\n\nsym       ::=  {idchar}+\n\nidchar    ::=  any visible graphic character except special\n\nspecial   ::=  \"$\" | \",\" | \".\" | \":\" | \";\" | \"@\"\n\nstring    ::=  \"@\" { any character, with @ doubled }* \"@\"\n\nword      ::=  id | num | string | \":\"\n\nintchar   ::=  any character, except @\n\nthirdp    ::=  \"^L\" {intchar}*\n\nintstring ::= \"@\" {intchar}* {thirdp}* \"@\"\n\nFile: rcs.info,  Node: comma-v particulars,  Prev: comma-v grammar,  Up: File format\n\n\n* In releases prior to 5.8 (2011-08-30), the grammar included the\nproduction:\n\nnewphrase ::= id word* \";\"\n\nand used it in the 'admin', 'delta' and 'deltatext' productions.\nThis allowed third-party programs to interoperate with RCS by\nstoring opaque (to RCS) data in the file.\n\nAs of 5.8, in the name of progress (towards more systematic file\nintegrity support), the only area reserved for third-party interop\nis in the 'string' value of the 'integrity' field, specifically\nafter the first formfeed (U+0C).  A further restriction (for all\nprograms) is that the 'integrity' value must not contain '@'.\n\n*Warning*: This change means you cannot use 'rlog' (or 'rcs log')\nas a workalike for 'cvs log' for versions of CVS that write other\nkinds of metadata into the file.  If you use CVS and have access to\nthe '*,v' files it writes, you can determine if they require 'cvs\nlog' by the following command:\n\nif grep -E -q '^(deltatype|permissions|kopt)' *,v\nthen echo 'must use \"cvs log\"'\nelse echo 'probably safe to use \"rcs log\" (for now)'\nfi\n\nThe \"(for now)\" bit is a nod to the most probable trajectory for\nboth RCS and CVS: away from interop.\n\n* Whitespace has no significance except in 'string' values.  However,\nwhitespace cannot appear within an 'id', 'num', or 'sym', and an\nRCS file must end with newline (U+0A).  A 'string' value is\nenclosed by '@' (U+40) with internal '@' characters doubled.  All\nother bytes (arbitrary binary data) represent themselves.  For\nexample:\n\nconceptual string             persistent representation\n\n--------------------------------------------------------------------------\na string of five words        @a string of five words@\n\nanother, with one '@' char    @another, with one '@@' char@\n\nwith newline                  @with newline\nand unquoted @                and unquoted @@@\n\n* Identifiers are case sensitive.  Keywords are in lower case only.\nThe sets of keywords and identifiers can overlap.\n\n* Dates, which appear after the 'date' keyword, are of the form\n'Y.m.d.H.M.S', where 'Y' is the year, 'm' the month (01-12), 'd'\nthe day (01-31), 'H' the hour (00-23), 'M' the minute (00-59), and\n'S' the second (00-60).  (These correspond to 'strftime' format\nstrings, with the exception of 'Y', which depends on the particular\nyear.)\n\n'Y' contains just the last two digits of the year for years from\n1900 through 1999, and all the digits of years thereafter.  Dates\nuse the Gregorian calendar; times use UTC.\n\n* The 'delta' nodes form a tree.  All nodes whose numbers consist of\na single pair, e.g.:\n\n2.3\n2.1\n1.3\n\nare on the trunk, and are linked through the 'next' field in order\nof decreasing numbers.  The 'head' field in the 'admin' node points\nto the head of that sequence (i.e., contains the highest pair).\nThe 'branch' node in the 'admin' node indicates the default branch\n(or revision) for most RCS operations.  If empty, the default\nbranch is the highest branch on the trunk.\n\nAll 'delta' nodes whose numbers consist of 2N fields (N ??? 2), e.g.:\n\n3.1.1.1\n2.1.2.2\n\nare linked as follows.  All nodes whose first 2N-1 number fields\nare identical are linked through the 'next' field in order of\nincreasing numbers.  For each such sequence, the 'delta' node whose\nnumber is identical to the first 2N-2 number fields of the 'delta'\nnodes on that sequence is called the \"branchpoint\".\n\nThe 'branches' field of a node contains a list of the numbers of\nthe first nodes of all sequences for which it is a branchpoint.\nThis list is ordered in increasing numbers.  *Note Figure 3.1:\nExample RCS File Organization.\n\nHead\n|\nv                        / \\\n---------                   /   \\\n/ \\          / \\      |       |      / \\         /     \\\n/   \\        /   \\     |  2.1  |     /   \\       /       \\\n/     \\      /     \\    |       |    /     \\     /         \\\n/1.2.1.3\\    /1.3.1.1\\   |       |   /1.2.2.2\\   /1.2.2.1.1.1\\\n---------    ---------   ---------   ---------   -------------\n^            ^           |           ^             ^\n|            |           v           |             |\n/ \\           |       ---------      / \\            |\n/   \\          |       \\  1.3  /     /   \\           |\n/     \\         ---------\\     /     /     \\-----------\n/1.2.1.1\\      1.3.1       \\   /     /1.2.2.1\\     1.2.2.1.1\n---------                   \\ /      ---------\n^                        |           ^\n|                        v           |\n|                    ---------       |\n|                    \\  1.2  /       |\n----------------------\\     /---------\n1.2.1                    \\   /       1.2.2\n\\ /\n|\n\\  1.1  /\n\\     /\n\\   /\n\\ /\n\n\n\nFigure 3.1: The organization of an example RCS file.\n\nFile: rcs.info,  Node: Stamp resolution,  Next: Still missing,  Prev: File format,  Up: Hacking\n"
                },
                {
                    "name": "3.2 Stamp resolution",
                    "content": "Regarding RCS, recorded timestamps come into play in two places:\n\n* The 'delta' production of the file format grammar includes\ncomponent 'date' (*note comma-v grammar::).  The recorded\ninformation has second (whole number) resolution.\n\n* The metadata of a file on the filesystem usually includes its\n\"modification time\".  The resolution of this information depends on\nthe capabilities of the filesystem; modern ones -- e.g., ext4\n(https://en.wikipedia.org/wiki/Ext4) -- tend to support subsecond\n(fractional) resolution.\n\nHistorically, up through version 5.9.4, RCS behaved \"agnostically\"\nwith respect to the subsecond component of the file modification time,\nrelying on the operating system and filesystem to take care of things at\nwhatever resolution was available at the time, with the single exception\nof the '-T' option (*note Misc common options::).  In the presence of\nthis option, RCS would:\n\n* (reading) Ignore the subsecond component.\n* (writing) Specify 0 as the subsecond component.\n\nFor versions after 5.9.4, if the filesystem supports it, RCS reads\nand writes file modification time with subsecond resolution, given the\n'-T' option.\n\nIt's important to keep in mind that by design, the delta 'date'\ncomponent is limited to second resolution, so subsecond resolution is\nonly guaranteed for operations where the file modification time\noriginates from a file actually existing on the filesystem (i.e., via\nthe 'stat(2)' system call).\n\nFile: rcs.info,  Node: Still missing,  Next: Reporting bugs,  Prev: Stamp resolution,  Up: Hacking\n"
                },
                {
                    "name": "3.3 Still missing",
                    "content": "RCS is still missing some features.  The following is an unordered list\nof \"to-do musings\" kept by the RCS maintainers.  If you would like to\nhack on an item, *Note Reporting bugs::.\n\n* Add an option to rcsmerge so that it can use an arbitrary program\nto do the 3-way merge, instead of the default merge.  Likewise for\nrcsdiff and diff.  It should be possible to pass arbitrary options\nto these programs, and to the subsidiary co invocations.\n\n* Add format options for finer control over the output of ident and\nrlog.  E.g.  there should be an easy way for rlog to output lines\nlike 'src/main.c 2.4 wft', one for each locked revision.  rlog\noptions should have three orthogonal types: selecting files,\nselecting revisions, and selecting rlog format.\n\n* Add format options for finer control over the output of keyword\nstrings.  E.g.  there should be some way to prepend '@(#)', and\nthere should be some way to change '$' to some other character to\ndisable further substitution.  These options should make the\nresulting files uneditable, like '-kv'.\n\n* Add long options, e.g.  '--keyword-substitution'.  Unfortunately\nRCS's option syntax is incompatible with getopt.  Perhaps the best\nway is to overload rcs, e.g., 'rcs diff --keyword-substitution=old\nfile' instead of 'rcsdiff -ko file'.\n\n* 'rlog -rM:N' should work even if M and N have different numbers of\nfields, so long as M is an ancestor of N or vice versa.\n\n* rcs should evaluate options in order; this allows 'rcs -oS -nS'.\n\n* Be able to redo your most recent checkin with minor changes.\n\n* 'co -u' shouldn't complain about a '+w' working file if contents\ndon't change.\n\n* Add a '-' option to take the list of file names from standard\ninput.  Perhaps the file names should be null-terminated, not\nnewline-terminated, so that those that contain newlines are handled\nproperly.\n\n* Permit multiple option-filename pairs, e.g., 'co -r1.4 a -r1.5 b'.\n\n* Add an option to break a symbolic link to an RCS file, instead of\nbreaking the hard link that it points to.\n\n* Add ways to specify the earliest revision, the most recent\nrevision, the earliest or latest revision on a particular branch,\nand the parent or child of some other revision.\n\n* If a user has multiple locks, perhaps ci should fall back on the\nmethod of 'ci -k' to figure out which revision to use.\n\n* Add an option to rcsclean to clean directories recursively.\n\n* Write an rcsck program that repairs corrupted RCS files, much as\nfsck repairs corrupted file systems.  For example, it should remove\nstale lock files.\n\n* Update the date parser to use the more modern 'getdate.y' by\nBellovin, Salz, and Berets, or the even more modern 'getdate' by\nMoraes.  None of these getdate implementations are as robust as\nRCS's old warhorse in avoiding problems like arithmetic overflow,\nso they'll have to be fixed first.  (Perhaps we can use gnulib\nmodule 'getdate'.)\n\n* Break up the code into a library so that it's easier to write new\nprograms that manipulate RCS files, and so that useless code is\nremoved from the existing programs.  For example, the rcs command\ncontains unnecessary keyword substitution baggage, and the merge\ncommand can be greatly pruned.\n\n* Make it easier to use your favorite text editor to edit log\nmessages, etc., instead of having to type them in irretrievably at\nthe terminal.\n\n* Let the user specify a search path for default branches, e.g., to\nuse L as the default branch if it works, and M otherwise.  Let the\nuser require that at least one entry in the search path works.  Let\nthe user say that later entries in the search path are read only,\ni.e.  one cannot check in changes to them.  This should be an\noption settable by 'RCSINIT'.\n\n* Add a way for a user to see which revisions affected which lines.\n\n* Have 'rlog -nN F' print just the revision number that N translates\nto.  E.g., 'rlog -nB. F' would print the highest revision on the\nbranch B. Use this to add an option '-bB' to rcsbranch, to freeze\nthe named branch.  This should interact well with default branches.\n\n* Add a co option that prints the revision number before each line,\nas SCCS's 'get -m' does.  [I implemented this for Emacs 22 as a\nsubroutine of 'vc-annotate', q.v.  --ttn]\n\nFile: rcs.info,  Node: Reporting bugs,  Prev: Still missing,  Up: Hacking\n"
                },
                {
                    "name": "3.4 Reporting bugs",
                    "content": "To report bugs or suggest enhancements for GNU RCS, please visit its\nhomepage (<http://www.gnu.org/software/rcs/>) to find directions on how\nto \"file a bug report\" online, or send electronic mail to\n<help-rcs@gnu.org>.  (If you use the web interface, you don't need to\nalso send email, since that is done automatically.)\n\nFor bug reports, please include enough information for the\nmaintainers to reproduce the problem.  Generally speaking, that means:\n\n* The RCS version, command(s) and manual section(s) involved.\n* Hardware and operating system names and versions.\n* The contents of any input files necessary to reproduce the bug.\n* The expected behavior and/or output.\n* A description of the problem and samples of any erroneous output.\n* Options you gave to 'configure' other than specifying installation\ndirectories.\n* Anything else that you think would be helpful.\n\nWhen in doubt whether something is needed or not, include it.  It's\nbetter to include too much than to leave out something important.\n\nPatches are welcome; if possible, please make them with 'git\nformat-patch' and include 'ChangeLog' entries (*note (emacs)Change\nLog::).  Please see file 'HACKING' in the repo, for coding standards.\n\nFile: rcs.info,  Node: GNU FDL,  Next: Index,  Prev: Hacking,  Up: Top\n"
                }
            ]
        },
        "Appendix A GNU Free Documentation License": {
            "content": "Version 1.3, 3 November 2008\n\nCopyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.\n<https://fsf.org/>\n\nEveryone is permitted to copy and distribute verbatim copies\nof this license document, but changing it is not allowed.\n\n0. PREAMBLE\n\nThe purpose of this License is to make a manual, textbook, or other\nfunctional and useful document \"free\" in the sense of freedom: to\nassure everyone the effective freedom to copy and redistribute it,\nwith or without modifying it, either commercially or\nnoncommercially.  Secondarily, this License preserves for the\nauthor and publisher a way to get credit for their work, while not\nbeing considered responsible for modifications made by others.\n\nThis License is a kind of \"copyleft\", which means that derivative\nworks of the document must themselves be free in the same sense.\nIt complements the GNU General Public License, which is a copyleft\nlicense designed for free software.\n\nWe have designed this License in order to use it for manuals for\nfree software, because free software needs free documentation: a\nfree program should come with manuals providing the same freedoms\nthat the software does.  But this License is not limited to\nsoftware manuals; it can be used for any textual work, regardless\nof subject matter or whether it is published as a printed book.  We\nrecommend this License principally for works whose purpose is\ninstruction or reference.\n\n1. APPLICABILITY AND DEFINITIONS\n\nThis License applies to any manual or other work, in any medium,\nthat contains a notice placed by the copyright holder saying it can\nbe distributed under the terms of this License.  Such a notice\ngrants a world-wide, royalty-free license, unlimited in duration,\nto use that work under the conditions stated herein.  The\n\"Document\", below, refers to any such manual or work.  Any member\nof the public is a licensee, and is addressed as \"you\".  You accept\nthe license if you copy, modify or distribute the work in a way\nrequiring permission under copyright law.\n\nA \"Modified Version\" of the Document means any work containing the\nDocument or a portion of it, either copied verbatim, or with\nmodifications and/or translated into another language.\n\nA \"Secondary Section\" is a named appendix or a front-matter section\nof the Document that deals exclusively with the relationship of the\npublishers or authors of the Document to the Document's overall\nsubject (or to related matters) and contains nothing that could\nfall directly within that overall subject.  (Thus, if the Document\nis in part a textbook of mathematics, a Secondary Section may not\nexplain any mathematics.)  The relationship could be a matter of\nhistorical connection with the subject or with related matters, or\nof legal, commercial, philosophical, ethical or political position\nregarding them.\n\nThe \"Invariant Sections\" are certain Secondary Sections whose\ntitles are designated, as being those of Invariant Sections, in the\nnotice that says that the Document is released under this License.\nIf a section does not fit the above definition of Secondary then it\nis not allowed to be designated as Invariant.  The Document may\ncontain zero Invariant Sections.  If the Document does not identify\nany Invariant Sections then there are none.\n\nThe \"Cover Texts\" are certain short passages of text that are\nlisted, as Front-Cover Texts or Back-Cover Texts, in the notice\nthat says that the Document is released under this License.  A\nFront-Cover Text may be at most 5 words, and a Back-Cover Text may\nbe at most 25 words.\n\nA \"Transparent\" copy of the Document means a machine-readable copy,\nrepresented in a format whose specification is available to the\ngeneral public, that is suitable for revising the document\nstraightforwardly with generic text editors or (for images composed\nof pixels) generic paint programs or (for drawings) some widely\navailable drawing editor, and that is suitable for input to text\nformatters or for automatic translation to a variety of formats\nsuitable for input to text formatters.  A copy made in an otherwise\nTransparent file format whose markup, or absence of markup, has\nbeen arranged to thwart or discourage subsequent modification by\nreaders is not Transparent.  An image format is not Transparent if\nused for any substantial amount of text.  A copy that is not\n\"Transparent\" is called \"Opaque\".\n\nExamples of suitable formats for Transparent copies include plain\nASCII without markup, Texinfo input format, LaTeX input format,\nSGML or XML using a publicly available DTD, and standard-conforming\nsimple HTML, PostScript or PDF designed for human modification.\nExamples of transparent image formats include PNG, XCF and JPG.\nOpaque formats include proprietary formats that can be read and\nedited only by proprietary word processors, SGML or XML for which\nthe DTD and/or processing tools are not generally available, and\nthe machine-generated HTML, PostScript or PDF produced by some word\nprocessors for output purposes only.\n\nThe \"Title Page\" means, for a printed book, the title page itself,\nplus such following pages as are needed to hold, legibly, the\nmaterial this License requires to appear in the title page.  For\nworks in formats which do not have any title page as such, \"Title\nPage\" means the text near the most prominent appearance of the\nwork's title, preceding the beginning of the body of the text.\n\nThe \"publisher\" means any person or entity that distributes copies\nof the Document to the public.\n\nA section \"Entitled XYZ\" means a named subunit of the Document\nwhose title either is precisely XYZ or contains XYZ in parentheses\nfollowing text that translates XYZ in another language.  (Here XYZ\nstands for a specific section name mentioned below, such as\n\"Acknowledgements\", \"Dedications\", \"Endorsements\", or \"History\".)\nTo \"Preserve the Title\" of such a section when you modify the\nDocument means that it remains a section \"Entitled XYZ\" according\nto this definition.\n\nThe Document may include Warranty Disclaimers next to the notice\nwhich states that this License applies to the Document.  These\nWarranty Disclaimers are considered to be included by reference in\nthis License, but only as regards disclaiming warranties: any other\nimplication that these Warranty Disclaimers may have is void and\nhas no effect on the meaning of this License.\n\n2. VERBATIM COPYING\n\nYou may copy and distribute the Document in any medium, either\ncommercially or noncommercially, provided that this License, the\ncopyright notices, and the license notice saying this License\napplies to the Document are reproduced in all copies, and that you\nadd no other conditions whatsoever to those of this License.  You\nmay not use technical measures to obstruct or control the reading\nor further copying of the copies you make or distribute.  However,\nyou may accept compensation in exchange for copies.  If you\ndistribute a large enough number of copies you must also follow the\nconditions in section 3.\n\nYou may also lend copies, under the same conditions stated above,\nand you may publicly display copies.\n\n3. COPYING IN QUANTITY\n\nIf you publish printed copies (or copies in media that commonly\nhave printed covers) of the Document, numbering more than 100, and\nthe Document's license notice requires Cover Texts, you must\nenclose the copies in covers that carry, clearly and legibly, all\nthese Cover Texts: Front-Cover Texts on the front cover, and\nBack-Cover Texts on the back cover.  Both covers must also clearly\nand legibly identify you as the publisher of these copies.  The\nfront cover must present the full title with all words of the title\nequally prominent and visible.  You may add other material on the\ncovers in addition.  Copying with changes limited to the covers, as\nlong as they preserve the title of the Document and satisfy these\nconditions, can be treated as verbatim copying in other respects.\n\nIf the required texts for either cover are too voluminous to fit\nlegibly, you should put the first ones listed (as many as fit\nreasonably) on the actual cover, and continue the rest onto\nadjacent pages.\n\nIf you publish or distribute Opaque copies of the Document\nnumbering more than 100, you must either include a machine-readable\nTransparent copy along with each Opaque copy, or state in or with\neach Opaque copy a computer-network location from which the general\nnetwork-using public has access to download using public-standard\nnetwork protocols a complete Transparent copy of the Document, free\nof added material.  If you use the latter option, you must take\nreasonably prudent steps, when you begin distribution of Opaque\ncopies in quantity, to ensure that this Transparent copy will\nremain thus accessible at the stated location until at least one\nyear after the last time you distribute an Opaque copy (directly or\nthrough your agents or retailers) of that edition to the public.\n\nIt is requested, but not required, that you contact the authors of\nthe Document well before redistributing any large number of copies,\nto give them a chance to provide you with an updated version of the\nDocument.\n\n4. MODIFICATIONS\n\nYou may copy and distribute a Modified Version of the Document\nunder the conditions of sections 2 and 3 above, provided that you\nrelease the Modified Version under precisely this License, with the\nModified Version filling the role of the Document, thus licensing\ndistribution and modification of the Modified Version to whoever\npossesses a copy of it.  In addition, you must do these things in\nthe Modified Version:\n\nA. Use in the Title Page (and on the covers, if any) a title\ndistinct from that of the Document, and from those of previous\nversions (which should, if there were any, be listed in the\nHistory section of the Document).  You may use the same title\nas a previous version if the original publisher of that\nversion gives permission.\n\nB. List on the Title Page, as authors, one or more persons or\nentities responsible for authorship of the modifications in\nthe Modified Version, together with at least five of the\nprincipal authors of the Document (all of its principal\nauthors, if it has fewer than five), unless they release you\nfrom this requirement.\n\nC. State on the Title page the name of the publisher of the\nModified Version, as the publisher.\n\nD. Preserve all the copyright notices of the Document.\n\nE. Add an appropriate copyright notice for your modifications\nadjacent to the other copyright notices.\n\nF. Include, immediately after the copyright notices, a license\nnotice giving the public permission to use the Modified\nVersion under the terms of this License, in the form shown in\nthe Addendum below.\n\nG. Preserve in that license notice the full lists of Invariant\nSections and required Cover Texts given in the Document's\nlicense notice.\n\nH. Include an unaltered copy of this License.\n\nI. Preserve the section Entitled \"History\", Preserve its Title,\nand add to it an item stating at least the title, year, new\nauthors, and publisher of the Modified Version as given on the\nTitle Page.  If there is no section Entitled \"History\" in the\nDocument, create one stating the title, year, authors, and\npublisher of the Document as given on its Title Page, then add\nan item describing the Modified Version as stated in the\nprevious sentence.\n\nJ. Preserve the network location, if any, given in the Document\nfor public access to a Transparent copy of the Document, and\nlikewise the network locations given in the Document for\nprevious versions it was based on.  These may be placed in the\n\"History\" section.  You may omit a network location for a work\nthat was published at least four years before the Document\nitself, or if the original publisher of the version it refers\nto gives permission.\n\nK. For any section Entitled \"Acknowledgements\" or \"Dedications\",\nPreserve the Title of the section, and preserve in the section\nall the substance and tone of each of the contributor\nacknowledgements and/or dedications given therein.\n\nL. Preserve all the Invariant Sections of the Document, unaltered\nin their text and in their titles.  Section numbers or the\nequivalent are not considered part of the section titles.\n\nM. Delete any section Entitled \"Endorsements\".  Such a section\nmay not be included in the Modified Version.\n\nN. Do not retitle any existing section to be Entitled\n\"Endorsements\" or to conflict in title with any Invariant\nSection.\n\nO. Preserve any Warranty Disclaimers.\n\nIf the Modified Version includes new front-matter sections or\nappendices that qualify as Secondary Sections and contain no\nmaterial copied from the Document, you may at your option designate\nsome or all of these sections as invariant.  To do this, add their\ntitles to the list of Invariant Sections in the Modified Version's\nlicense notice.  These titles must be distinct from any other\nsection titles.\n\nYou may add a section Entitled \"Endorsements\", provided it contains\nnothing but endorsements of your Modified Version by various\nparties--for example, statements of peer review or that the text has\nbeen approved by an organization as the authoritative definition of\na standard.\n\nYou may add a passage of up to five words as a Front-Cover Text,\nand a passage of up to 25 words as a Back-Cover Text, to the end of\nthe list of Cover Texts in the Modified Version.  Only one passage\nof Front-Cover Text and one of Back-Cover Text may be added by (or\nthrough arrangements made by) any one entity.  If the Document\nalready includes a cover text for the same cover, previously added\nby you or by arrangement made by the same entity you are acting on\nbehalf of, you may not add another; but you may replace the old\none, on explicit permission from the previous publisher that added\nthe old one.\n\nThe author(s) and publisher(s) of the Document do not by this\nLicense give permission to use their names for publicity for or to\nassert or imply endorsement of any Modified Version.\n\n5. COMBINING DOCUMENTS\n\nYou may combine the Document with other documents released under\nthis License, under the terms defined in section 4 above for\nmodified versions, provided that you include in the combination all\nof the Invariant Sections of all of the original documents,\nunmodified, and list them all as Invariant Sections of your\ncombined work in its license notice, and that you preserve all\ntheir Warranty Disclaimers.\n\nThe combined work need only contain one copy of this License, and\nmultiple identical Invariant Sections may be replaced with a single\ncopy.  If there are multiple Invariant Sections with the same name\nbut different contents, make the title of each such section unique\nby adding at the end of it, in parentheses, the name of the\noriginal author or publisher of that section if known, or else a\nunique number.  Make the same adjustment to the section titles in\nthe list of Invariant Sections in the license notice of the\ncombined work.\n\nIn the combination, you must combine any sections Entitled\n\"History\" in the various original documents, forming one section\nEntitled \"History\"; likewise combine any sections Entitled\n\"Acknowledgements\", and any sections Entitled \"Dedications\".  You\nmust delete all sections Entitled \"Endorsements.\"\n\n6. COLLECTIONS OF DOCUMENTS\n\nYou may make a collection consisting of the Document and other\ndocuments released under this License, and replace the individual\ncopies of this License in the various documents with a single copy\nthat is included in the collection, provided that you follow the\nrules of this License for verbatim copying of each of the documents\nin all other respects.\n\nYou may extract a single document from such a collection, and\ndistribute it individually under this License, provided you insert\na copy of this License into the extracted document, and follow this\nLicense in all other respects regarding verbatim copying of that\ndocument.\n\n7. AGGREGATION WITH INDEPENDENT WORKS\n\nA compilation of the Document or its derivatives with other\nseparate and independent documents or works, in or on a volume of a\nstorage or distribution medium, is called an \"aggregate\" if the\ncopyright resulting from the compilation is not used to limit the\nlegal rights of the compilation's users beyond what the individual\nworks permit.  When the Document is included in an aggregate, this\nLicense does not apply to the other works in the aggregate which\nare not themselves derivative works of the Document.\n\nIf the Cover Text requirement of section 3 is applicable to these\ncopies of the Document, then if the Document is less than one half\nof the entire aggregate, the Document's Cover Texts may be placed\non covers that bracket the Document within the aggregate, or the\nelectronic equivalent of covers if the Document is in electronic\nform.  Otherwise they must appear on printed covers that bracket\nthe whole aggregate.\n\n8. TRANSLATION\n\nTranslation is considered a kind of modification, so you may\ndistribute translations of the Document under the terms of section\n4.  Replacing Invariant Sections with translations requires special\npermission from their copyright holders, but you may include\ntranslations of some or all Invariant Sections in addition to the\noriginal versions of these Invariant Sections.  You may include a\ntranslation of this License, and all the license notices in the\nDocument, and any Warranty Disclaimers, provided that you also\ninclude the original English version of this License and the\noriginal versions of those notices and disclaimers.  In case of a\ndisagreement between the translation and the original version of\nthis License or a notice or disclaimer, the original version will\nprevail.\n\nIf a section in the Document is Entitled \"Acknowledgements\",\n\"Dedications\", or \"History\", the requirement (section 4) to\nPreserve its Title (section 1) will typically require changing the\nactual title.\n\n9. TERMINATION\n\nYou may not copy, modify, sublicense, or distribute the Document\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense, or distribute it is void,\nand will automatically terminate your rights under this License.\n\nHowever, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the\ncopyright holder fails to notify you of the violation by some\nreasonable means prior to 60 days after the cessation.\n\nMoreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from\nthat copyright holder, and you cure the violation prior to 30 days\nafter your receipt of the notice.\n\nTermination of your rights under this section does not terminate\nthe licenses of parties who have received copies or rights from you\nunder this License.  If your rights have been terminated and not\npermanently reinstated, receipt of a copy of some or all of the\nsame material does not give you any rights to use it.\n\n10. FUTURE REVISIONS OF THIS LICENSE\n\nThe Free Software Foundation may publish new, revised versions of\nthe GNU Free Documentation License from time to time.  Such new\nversions will be similar in spirit to the present version, but may\ndiffer in detail to address new problems or concerns.  See\n<https://www.gnu.org/licenses/>.\n\nEach version of the License is given a distinguishing version\nnumber.  If the Document specifies that a particular numbered\nversion of this License \"or any later version\" applies to it, you\nhave the option of following the terms and conditions either of\nthat specified version or of any later version that has been\npublished (not as a draft) by the Free Software Foundation.  If the\nDocument does not specify a version number of this License, you may\nchoose any version ever published (not as a draft) by the Free\nSoftware Foundation.  If the Document specifies that a proxy can\ndecide which future versions of this License can be used, that\nproxy's public statement of acceptance of a version permanently\nauthorizes you to choose that version for the Document.\n\n11. RELICENSING\n\n\"Massive Multiauthor Collaboration Site\" (or \"MMC Site\") means any\nWorld Wide Web server that publishes copyrightable works and also\nprovides prominent facilities for anybody to edit those works.  A\npublic wiki that anybody can edit is an example of such a server.\nA \"Massive Multiauthor Collaboration\" (or \"MMC\") contained in the\nsite means any set of copyrightable works thus published on the MMC\nsite.\n\n\"CC-BY-SA\" means the Creative Commons Attribution-Share Alike 3.0\nlicense published by Creative Commons Corporation, a not-for-profit\ncorporation with a principal place of business in San Francisco,\nCalifornia, as well as future copyleft versions of that license\npublished by that same organization.\n\n\"Incorporate\" means to publish or republish a Document, in whole or\nin part, as part of another Document.\n\nAn MMC is \"eligible for relicensing\" if it is licensed under this\nLicense, and if all works that were first published under this\nLicense somewhere other than this MMC, and subsequently\nincorporated in whole or in part into the MMC, (1) had no cover\ntexts or invariant sections, and (2) were thus incorporated prior\nto November 1, 2008.\n\nThe operator of an MMC Site may republish an MMC contained in the\nsite under CC-BY-SA on the same site at any time before August 1,\n2009, provided the MMC is eligible for relicensing.\n",
            "subsections": [
                {
                    "name": "ADDENDUM: How to use this License for your documents",
                    "content": "To use this License in a document you have written, include a copy of\nthe License in the document and put the following copyright and license\nnotices just after the title page:\n\nCopyright (C)  YEAR  YOUR NAME.\nPermission is granted to copy, distribute and/or modify this document\nunder the terms of the GNU Free Documentation License, Version 1.3\nor any later version published by the Free Software Foundation;\nwith no Invariant Sections, no Front-Cover Texts, and no Back-Cover\nTexts.  A copy of the license is included in the section entitled ``GNU\nFree Documentation License''.\n\nIf you have Invariant Sections, Front-Cover Texts and Back-Cover\nTexts, replace the \"with...Texts.\" line with this:\n\nwith the Invariant Sections being LIST THEIR TITLES, with\nthe Front-Cover Texts being LIST, and with the Back-Cover Texts\nbeing LIST.\n\nIf you have Invariant Sections without Cover Texts, or some other\ncombination of the three, merge those two alternatives to suit the\nsituation.\n\nIf your document contains nontrivial examples of program code, we\nrecommend releasing these examples in parallel under your choice of free\nsoftware license, such as the GNU General Public License, to permit\ntheir use in free software.\n\nFile: rcs.info,  Node: Index,  Prev: GNU FDL,  Up: Top\n"
                }
            ]
        },
        "Index": {
            "content": "* Menu:\n\n* $, special revision:                   Revision options.    (line  27)\n* -A:                                    rcsmerge.            (line  12)\n* -d:                                    Date option.         (line   6)\n* -E:                                    rcsmerge.            (line  12)\n* -e:                                    rcsmerge.            (line  12)\n* -f, for ci:                            ci.                  (line  12)\n* -f, for co:                            co.                  (line  12)\n* -I:                                    Misc common options. (line   8)\n* -i, for ci:                            ci.                  (line  19)\n* -i, for frob:                          rcs.                 (line  38)\n* -j, for ci:                            ci.                  (line  22)\n* -j, for co:                            co.                  (line  44)\n* -k:                                    Substitution mode option.\n(line   6)\n* -k, for ci:                            ci.                  (line  26)\n* -l, for ci:                            ci.                  (line  38)\n* -l, for co:                            co.                  (line  25)\n* -m:                                    Log message option.  (line   6)\n* -M:                                    minus-M.             (line   6)\n* -p:                                    co.                  (line  19)\n* -q:                                    Misc common options. (line  18)\n* -r, for ci:                            ci.                  (line  32)\n* -r, for co:                            co.                  (line  22)\n* -s:                                    State option.        (line   6)\n* -t:                                    Description option.  (line   6)\n* -T:                                    Misc common options. (line  22)\n* -u, for ci:                            ci.                  (line  41)\n* -u, for co:                            co.                  (line  28)\n* -V:                                    Misc common options. (line  40)\n* -w:                                    Misc common options. (line  64)\n* -x:                                    Misc common options. (line  68)\n* access control policy:                 Concepts.            (line  85)\n* Author:                                Concepts.            (line 119)\n* author, specifying:                    Misc common options. (line  64)\n* behavior prior to version 5:           Misc common options. (line  50)\n* behavior, version 3:                   Misc common options. (line  61)\n* behavior, version 4:                   Misc common options. (line  57)\n* binary-old-keyword-value substitution mode: Substitution mode option.\n(line  34)\n* branch growth:                         Revision options.    (line  19)\n* branch number:                         Concepts.            (line  46)\n* branch tip:                            Concepts.            (line  61)\n* branch, default:                       Concepts.            (line  79)\n* bug reporting:                         Reporting bugs.      (line   6)\n* case sensitivity, file format:         comma-v particulars. (line  52)\n* checkin:                               Concepts.            (line  97)\n* checkin, initial:                      ci.                  (line  19)\n* checklist for bug reports:             Reporting bugs.      (line  12)\n* checkout:                              Concepts.            (line 106)\n* checkout, implicit:                    Quick tour.          (line  84)\n* ci invocation:                         ci.                  (line   6)\n* co invocation:                         co.                  (line   6)\n* comma-v file format:                   Overview.            (line   6)\n* command help:                          Common elements.     (line   6)\n* command version:                       Common elements.     (line   6)\n* command-line option to specify a revision: Revision options.\n(line   6)\n* credits:                               Credits.             (line   6)\n* Date:                                  Concepts.            (line 122)\n* date formats:                          Date option.         (line   6)\n* date, specifying:                      Date option.         (line   6)\n* dates, file format:                    comma-v particulars. (line  55)\n* default branch:                        Concepts.            (line  79)\n* default branch, setting:               rcs.                 (line  70)\n* default state:                         State option.        (line  11)\n* deleting revisions:                    rcs.                 (line  96)\n* deleting working file:                 ci.                  (line  32)\n* delim-separated list:                  Delim-separated list.\n(line   6)\n* description of working file:           Concepts.            (line  36)\n* description text, specifying:          Description option.  (line   6)\n* empty log message:                     Log message option.  (line   7)\n* emulation, previous RCS versions:      Misc common options. (line  45)\n* encoding, file format:                 File format.         (line   6)\n* environment variables:                 Environment.         (line   6)\n* features, still missing:               Still missing.       (line   6)\n* file modification time:                Stamp resolution.    (line  12)\n* file names on the command-line:        Common elements.     (line  26)\n* format, RCSfile:                       File format.         (line   6)\n* grammar, file format:                  comma-v grammar.     (line   6)\n* Header:                                Concepts.            (line 126)\n* history:                               Credits.             (line   6)\n* Id:                                    Concepts.            (line 131)\n* ident invocation:                      ident.               (line   6)\n* implicit checkout, circumstance:       Quick tour.          (line  84)\n* implicit checkout, locked:             ci.                  (line  38)\n* implicit checkout, unlocked:           ci.                  (line  41)\n* initial checkin:                       ci.                  (line  19)\n* instantiating a working file:          Concepts.            (line  27)\n* interaction model:                     Concepts.            (line   9)\n* interaction model <1>:                 Concepts.            (line   9)\n* interactive mode:                      Misc common options. (line   8)\n* invocation, ci:                        ci.                  (line   6)\n* invocation, co:                        co.                  (line   6)\n* invocation, ident:                     ident.               (line   6)\n* invocation, merge:                     merge.               (line   6)\n* invocation, rcs:                       rcs.                 (line  12)\n* invocation, rcs <1>:                   rcs.                 (line  32)\n* invocation, rcsclean:                  rcsclean.            (line   6)\n* invocation, rcsdiff:                   rcsdiff.             (line   6)\n* invocation, rcsmerge:                  rcsmerge.            (line   6)\n* invocation, rlog:                      rlog.                (line   6)\n* keyword-only substitution mode:        Substitution mode option.\n(line  22)\n* keyword-value substitution mode:       Substitution mode option.\n(line  11)\n* keyword-value-locker substitution mode: Substitution mode option.\n(line  18)\n* keywords, table of:                    Concepts.            (line 119)\n* layout of nodes, file format:          comma-v particulars. (line  66)\n* license:                               Overview.            (line   6)\n* limitations, subsecond resolution:     Stamp resolution.    (line  28)\n* list, comma-separated:                 Delim-separated list.\n(line   6)\n* lock, release:                         ci.                  (line  32)\n* Locker:                                Concepts.            (line 135)\n* locking a revision:                    rcs.                 (line  74)\n* locking on implicit checkout:          ci.                  (line  38)\n* locking, non-strict:                   Quick tour.          (line  69)\n* locking, set non-strict:               rcs.                 (line  44)\n* locking, set strict:                   rcs.                 (line  41)\n* locking, strict:                       Quick tour.          (line  69)\n* locks in RCS file:                     Concepts.            (line  85)\n* Log:                                   Concepts.            (line 139)\n* log message, empty:                    Log message option.  (line   7)\n* log message, specifying:               Log message option.  (line   6)\n* LOGNAME:                               Environment.         (line  50)\n* memory limit:                          Environment.         (line  26)\n* merge invocation:                      merge.               (line   6)\n* model, interaction:                    Concepts.            (line   9)\n* mtime, RCS file:                       Misc common options. (line  22)\n* mtime, working file:                   minus-M.             (line   6)\n* Name:                                  Concepts.            (line 171)\n* names, symbolic:                       Concepts.            (line  79)\n* node layout, file format:              comma-v particulars. (line  66)\n* non-strict locking:                    Quick tour.          (line  69)\n* number, branch:                        Concepts.            (line  46)\n* number, revision:                      Concepts.            (line  46)\n* old-keyword-value substitution mode:   Substitution mode option.\n(line  28)\n* order of options and file names:       Common elements.     (line  20)\n* outdating revisions:                   rcs.                 (line  96)\n* overview:                              Overview.            (line   6)\n* pairing RCS and working files:         Common elements.     (line  26)\n* patches, contributing:                 Reporting bugs.      (line  27)\n* problems:                              Reporting bugs.      (line   6)\n* projects, related:                     Overview.            (line  18)\n* quiet mode:                            Misc common options. (line  18)\n* range of revisions, specifying:        Revision options.    (line  30)\n* RCS file:                              Concepts.            (line  36)\n* rcs invocation:                        rcs.                 (line  12)\n* rcs invocation <1>:                    rcs.                 (line  32)\n* RCS version emulation:                 Misc common options. (line  45)\n* rcsclean invocation:                   rcsclean.            (line   6)\n* rcsdiff invocation:                    rcsdiff.             (line   6)\n* RCSfile:                               Concepts.            (line 176)\n* RCSfile format:                        File format.         (line   6)\n* RCSINIT:                               Environment.         (line   8)\n* rcsmerge invocation:                   rcsmerge.            (line   6)\n* RCSMEMLIMIT:                         Environment.         (line  25)\n* release lock:                          ci.                  (line  32)\n* removing revisions:                    rcs.                 (line  96)\n* reporting bugs:                        Reporting bugs.      (line   6)\n* resolution, timestamp:                 Stamp resolution.    (line   6)\n* Revision:                              Concepts.            (line 179)\n* revision number:                       Concepts.            (line  46)\n* revision range, specifying:            Revision options.    (line  30)\n* revision, specifying:                  Revision options.    (line   6)\n* revisions, tree of:                    Concepts.            (line  79)\n* rlog invocation:                       rlog.                (line   6)\n* rlog, use with CVS:                    comma-v particulars. (line  21)\n* Source:                                Concepts.            (line 182)\n* special revision $:                    Revision options.    (line  27)\n* specifying a date:                     Date option.         (line   6)\n* specifying a range of revisions:       Revision options.    (line  30)\n* specifying a revision:                 Revision options.    (line   6)\n* specifying a state:                    State option.        (line   6)\n* specifying a suffix list:              Misc common options. (line  68)\n* specifying a time/date:                Date option.         (line   6)\n* specifying author:                     Misc common options. (line  64)\n* specifying description text:           Description option.  (line   6)\n* specifying log message:                Log message option.  (line   6)\n* specifying RCS file mtime:             Misc common options. (line  22)\n* specifying substitution mode:          Substitution mode option.\n(line   6)\n* specifying working file mtime:         minus-M.             (line   6)\n* State:                                 Concepts.            (line 185)\n* state, specifying:                     State option.        (line   6)\n* strict locking:                        Quick tour.          (line  69)\n* string particulars, file format:       comma-v particulars. (line  35)\n* subsecond resolution:                  Stamp resolution.    (line  28)\n* substitution mode, default:            Substitution mode option.\n(line  11)\n* substitution mode, specifying:         Substitution mode option.\n(line   6)\n* suffix list, specifying:               Misc common options. (line  68)\n* symbolic names:                        Concepts.            (line  79)\n* TEMP:                                  Environment.         (line  43)\n* third-party interop, file format:      comma-v particulars. (line   6)\n* Tichy, Walter F.:                      Credits.             (line   6)\n* time zone:                             Date option.         (line   6)\n* time, file modification:               Stamp resolution.    (line  12)\n* time/date, specifying:                 Date option.         (line   6)\n* timestamp:                             Misc common options. (line  22)\n* timestamp resolution:                  Stamp resolution.    (line   6)\n* tip:                                   Concepts.            (line  61)\n* tip increment:                         Revision options.    (line  19)\n* TMP:                                   Environment.         (line  42)\n* TMPDIR:                                Environment.         (line  41)\n* tree of revisions:                     Concepts.            (line  79)\n* trunk:                                 Concepts.            (line  46)\n* unlocking a revision:                  rcs.                 (line  77)\n* USER:                                  Environment.         (line  51)\n* value-only substitution mode:          Substitution mode option.\n(line  41)\n* whitespace, file format:               comma-v particulars. (line  35)\n* working file, deleting:                ci.                  (line  32)\n* working file, description:             Concepts.            (line  36)\n* working file, instantiation:           Concepts.            (line  27)\n\n",
            "subsections": []
        }
    },
    "flags": [],
    "examples": [],
    "see_also": []
}