{
    "mode": "man",
    "parameter": "rcsmerge",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/rcsmerge/1/json",
    "generated": "2026-06-03T01:49:03Z",
    "synopsis": "rcsmerge [options] file",
    "sections": {
        "NAME": {
            "content": "rcsmerge - merge RCS revisions\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "rcsmerge [options] file\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "rcsmerge incorporates the changes between two revisions of an RCS file into the corresponding\nworking file.\n\nFilenames matching an RCS suffix denote RCS files; all others denote  working  files.   Names\nare paired as explained in ci(1).\n\nAt  least one revision must be specified with one of the options described below, usually -r.\nAt most two revisions may be specified.  If only one revision is specified, the latest  revi‐\nsion on the default branch (normally the highest branch on the trunk) is assumed for the sec‐\nond revision.  Revisions may be specified numerically or symbolically.\n\nrcsmerge prints a warning if there are overlaps, and delimits the overlapping regions as  ex‐\nplained  in merge(1).  The command is useful for incorporating changes into a checked-out re‐\nvision.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-A -A",
                    "content": "all  changes  leading  from  file2 to file3 into file1, and generates the most verbose\noutput.\n",
                    "flag": "-A"
                },
                {
                    "name": "-E -e -A",
                    "content": "diff3(1)  for details.  The default is -E.  With -e, rcsmerge does not warn about con‐\nflicts.\n",
                    "flag": "-A"
                },
                {
                    "name": "-k",
                    "content": "Use  subst  style  keyword  substitution.   See  co(1)  for  details.   For   example,\n-kk -r1.1 -r1.2  ignores  differences  in keyword values when merging the changes from\n1.1 to 1.2.  It normally does not make sense to merge binary files  as  if  they  were\ntext, so rcsmerge refuses to merge files if -kb expansion is used.\n",
                    "flag": "-k"
                },
                {
                    "name": "-p",
                    "content": "Send the result to standard output instead of overwriting the working file.\n",
                    "flag": "-p"
                },
                {
                    "name": "-q",
                    "content": "Run quietly; do not print diagnostics.\n",
                    "flag": "-q"
                },
                {
                    "name": "-r",
                    "content": "Merge  with respect to revision rev.  Here an empty rev stands for the latest revision\non the default branch, normally the head.\n",
                    "flag": "-r"
                },
                {
                    "name": "-T",
                    "content": "",
                    "flag": "-T"
                },
                {
                    "name": "-V",
                    "content": "",
                    "flag": "-V"
                },
                {
                    "name": "-V",
                    "content": "",
                    "flag": "-V"
                },
                {
                    "name": "-x",
                    "content": "Use suffixes to characterize RCS files.  See ci(1) for details.\n",
                    "flag": "-x"
                },
                {
                    "name": "-z",
                    "content": "",
                    "flag": "-z"
                }
            ]
        },
        "EXAMPLES": {
            "content": "Suppose you have released revision 2.8 of f.c.  Assume furthermore that after you complete an\nunreleased  revision  3.4,  you receive updates to release 2.8 from someone else.  To combine\nthe updates to 2.8 and your changes between 2.8 and 3.4, put the updates to 2.8 into file f.c\nand execute\n\nrcsmerge  -p  -r2.8  -r3.4  f.c  >f.merged.c\n\nThen  examine  f.merged.c.   Alternatively, if you want to save the updates to 2.8 in the RCS\nfile, check them in as revision 2.8.1.1 and execute co -j:\n\nci  -r2.8.1.1  f.c\nco  -r3.4  -j2.8:2.8.1.1  f.c\n\nAs another example, the following command undoes the changes between revision 2.4 and 2.8  in\nyour currently checked out revision in f.c.\n\nrcsmerge  -r2.8  -r2.4  f.c\n\nNote the order of the arguments, and that f.c will be overwritten.\n",
            "subsections": []
        },
        "ENVIRONMENT": {
            "content": "RCSINIT\nOptions prepended to the argument list, separated by spaces.  A backslash escapes spa‐\nces within an option.  The RCSINIT options are prepended to the argument lists of most\nRCS commands.  Useful RCSINIT options include -q, -V, -x, and -z.\n\nRCSMEMLIMIT\nNormally,  for  speed,  commands either memory map or copy into memory the RCS file if\nits size is less than the memory-limit, currently defaulting to ``unlimited''.  Other‐\nwise  (or  if  the  initially-tried speedy ways fail), the commands fall back to using\nstandard i/o routines.  You can adjust the memory limit by setting RCSMEMLIMIT to  a\nnumeric  value lim (measured in kilobytes).  An empty value is silently ignored.  As a\nside effect, specifying RCSMEMLIMIT inhibits fall-back to slower routines.\n\nTMPDIR Name of the temporary directory.  If not set, the environment variables TMP  and  TEMP\nare  inspected  instead and the first value found is taken; if none of them are set, a\nhost-dependent default is used, typically /tmp.\n",
            "subsections": []
        },
        "DIAGNOSTICS": {
            "content": "Exit status is 0 for no overlaps, 1 for some overlaps, 2 for trouble.\n",
            "subsections": []
        },
        "IDENTIFICATION": {
            "content": "Author: Walter F. Tichy.\nManual Page Revision: 5.10.1; Release Date: 2022-02-19.\nCopyright © 2010-2022 Thien-Thi Nguyen.\nCopyright © 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.\nCopyright © 1982, 1988, 1989 Walter F. Tichy.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "ci(1), co(1), ident(1), merge(1), rcs(1), rcsdiff(1), rlog(1), rcsfile(5).\n\nWalter F. Tichy, RCS--A System for Version Control, Software--Practice  &  Experience  15,  7\n(July 1985), 637-654.\n\nThe  full  documentation  for  RCS is maintained as a Texinfo manual.  If the info(1) and RCS\nprograms are properly installed at your site, the command\n\ninfo rcs\n\nshould give you access to the complete manual.  Additionally, the RCS homepage:\n\nhttp://www.gnu.org/software/rcs/\n\nhas news and links to the latest release, development site, etc.\n\n\n\nGNU RCS 5.10.1                               2022-02-19                                  RCSMERGE(1)",
            "subsections": []
        }
    },
    "summary": "rcsmerge - merge RCS revisions",
    "flags": [
        {
            "flag": "-A",
            "long": null,
            "arg": null,
            "description": "all changes leading from file2 to file3 into file1, and generates the most verbose output."
        },
        {
            "flag": "-A",
            "long": null,
            "arg": null,
            "description": "diff3(1) for details. The default is -E. With -e, rcsmerge does not warn about con‐ flicts."
        },
        {
            "flag": "-k",
            "long": null,
            "arg": null,
            "description": "Use subst style keyword substitution. See co(1) for details. For example, -kk -r1.1 -r1.2 ignores differences in keyword values when merging the changes from 1.1 to 1.2. It normally does not make sense to merge binary files as if they were text, so rcsmerge refuses to merge files if -kb expansion is used."
        },
        {
            "flag": "-p",
            "long": null,
            "arg": null,
            "description": "Send the result to standard output instead of overwriting the working file."
        },
        {
            "flag": "-q",
            "long": null,
            "arg": null,
            "description": "Run quietly; do not print diagnostics."
        },
        {
            "flag": "-r",
            "long": null,
            "arg": null,
            "description": "Merge with respect to revision rev. Here an empty rev stands for the latest revision on the default branch, normally the head."
        },
        {
            "flag": "-T",
            "long": null,
            "arg": null,
            "description": ""
        },
        {
            "flag": "-V",
            "long": null,
            "arg": null,
            "description": ""
        },
        {
            "flag": "-V",
            "long": null,
            "arg": null,
            "description": ""
        },
        {
            "flag": "-x",
            "long": null,
            "arg": null,
            "description": "Use suffixes to characterize RCS files. See ci(1) for details."
        },
        {
            "flag": "-z",
            "long": null,
            "arg": null,
            "description": ""
        }
    ],
    "examples": [
        "Suppose you have released revision 2.8 of f.c.  Assume furthermore that after you complete an",
        "unreleased  revision  3.4,  you receive updates to release 2.8 from someone else.  To combine",
        "the updates to 2.8 and your changes between 2.8 and 3.4, put the updates to 2.8 into file f.c",
        "and execute",
        "rcsmerge  -p  -r2.8  -r3.4  f.c  >f.merged.c",
        "Then  examine  f.merged.c.   Alternatively, if you want to save the updates to 2.8 in the RCS",
        "file, check them in as revision 2.8.1.1 and execute co -j:",
        "ci  -r2.8.1.1  f.c",
        "co  -r3.4  -j2.8:2.8.1.1  f.c",
        "As another example, the following command undoes the changes between revision 2.4 and 2.8  in",
        "your currently checked out revision in f.c.",
        "rcsmerge  -r2.8  -r2.4  f.c",
        "Note the order of the arguments, and that f.c will be overwritten."
    ],
    "see_also": [
        {
            "name": "ci",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/ci/1/json"
        },
        {
            "name": "co",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/co/1/json"
        },
        {
            "name": "ident",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/ident/1/json"
        },
        {
            "name": "merge",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/merge/1/json"
        },
        {
            "name": "rcs",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/rcs/1/json"
        },
        {
            "name": "rcsdiff",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/rcsdiff/1/json"
        },
        {
            "name": "rlog",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/rlog/1/json"
        },
        {
            "name": "rcsfile",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/rcsfile/5/json"
        },
        {
            "name": "info",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/info/1/json"
        }
    ],
    "tldr": {
        "source": "official",
        "description": "Merge RCS revisions into the working file.",
        "examples": [
            {
                "description": "Merge differences between two revisions into the working file",
                "command": "rcsmerge -r{{revision1}} -r{{revision2}} {{path/to/file}}"
            },
            {
                "description": "Merge changes from a branch revision into the working file",
                "command": "rcsmerge -r{{branch_revision}} {{path/to/file}}"
            },
            {
                "description": "Perform a quiet merge (suppress diagnostics)",
                "command": "rcsmerge -q -r{{revision1}} -r{{revision2}} {{path/to/file}}"
            },
            {
                "description": "Print the result to `stdout` instead of overwriting the working file",
                "command": "rcsmerge -p -r{{revision1}} -r{{revision2}} {{path/to/file}}"
            }
        ]
    }
}