RCSMERGE(1)
π RCSMERGE(1) β the General Commands Manual, but make it cute
okay so bestie, gather round, because this is the rcsmerge page from the General Commands Manual and it's genuinely about to make your life so much easier π«Ά
β¨ NAME β¨
rcsmerge β merge RCS revisions. that's it. that's the whole vibe. no cap π
πΈ SYNOPSIS πΈ
rcsmerge [options] file
literally just that. options plus a file. slay.
π¦ DESCRIPTION π¦
so here's the tea β: rcsmerge takes the changes between two revisions of an RCS file and folds them into the matching working file. like, it's giving "please combine my work with someone else's work without me crying." iconic behaviour honestly π
filenames that match an RCS suffix mean RCS files; everything else means working files. the names get paired up exactly the way ci(1) explains it. iykyk.
you must specify at least one revision using one of the options down below β usually -r. you can specify at most two revisions. if you only give one, then the latest revision on the default branch (normally the highest branch on the trunk) gets assumed as the second revision. revisions can be written numerically or symbolically, your choice, we don't gatekeep π
rcsmerge prints a warning if there are overlaps, and it delimits those overlapping regions the way merge(1) explains. the command is super useful for incorporating changes into a checked-out revision. that's the whole point bestie π
β¨ OPTIONS β¨
-Aβ outputs conflicts using the-Astyle ofdiff3(1), ifdiff3supports it. this merges all changes leading from file2 to file3 into file1, and generates the most verbose output. maximum yapping mode, honestly π-E,-eβ these options specify conflict styles that generate less information than-A. seediff3(1)for the details. the default is-E. and with-e,rcsmergedoes not warn you about conflicts (so like, don't say we didn't tell you π).-ksubstβ use subst style keyword substitution. seeco(1)for the details. for example,-kk -r1.1 -r1.2ignores differences in keyword values when merging the changes from 1.1 to 1.2. also important: it normally does not make sense to merge binary files as if they were text, sorcsmergerefuses to merge files if-kbexpansion is used. hard no, respectfully π«-p[rev]β send the result to standard output instead of overwriting the working file. very "look but don't touch" of it β¨-q[rev]β run quietly; do not print diagnostics. shhh π€«-r[rev]β merge with respect to revision rev. here an empty rev stands for the latest revision on the default branch, normally the head. the main character option, fr fr π-Tβ this option has no effect; it's present for compatibility with other RCS commands. it's just there. standing in the corner. supporting the group π«Ά-Vβ print RCS's version number.-Vnβ emulate RCS version n. seeco(1)for details.-xsuffixesβ use suffixes to characterize RCS files. seeci(1)for details.-zzoneβ use zone as the time zone for keyword substitution. seeco(1)for details.
π EXAMPLES π
okay imagine this scenario bestie: you've released revision 2.8 of f.c. and 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. like, actually overwritten. not a drill π
π ENVIRONMENT π
RCSINITβ options prepended to the argument list, separated by spaces. a backslash escapes spaces within an option. theRCSINIToptions are prepended to the argument lists of most RCS commands. usefulRCSINIToptions include-q,-V,-x, and-z. it's the pre-game playlist for your flags π§RCS_MEM_LIMITβ normally, for speed, commands either memory map or copy into memory the RCS file if its size is less than the memory-limit, currently defaulting to ``unlimited''. otherwise (or if the initially-tried speedy ways fail), the commands fall back to using standard i/o routines. you can adjust the memory limit by settingRCS_MEM_LIMITto a numeric value lim (measured in kilobytes). an empty value is silently ignored. as a side effect, specifyingRCS_MEM_LIMITinhibits fall-back to slower routines. so like, choose wisely bestie β‘TMPDIRβ name of the temporary directory. if not set, the environment variablesTMPandTEMPare inspected instead and the first value found is taken; if none of them are set, a host-dependent default is used, typically/tmp. the classic "who's gonna provide the temp dir" chain of command π
π DIAGNOSTICS π
exit status is 0 for no overlaps, 1 for some overlaps, 2 for trouble. so like:
0β clean merge, no drama, we love to see it π1β some overlaps happened, slight chaos, still fine πΈ2β trouble. actual trouble. π
π IDENTIFICATION π
- Author: Walter F. Tichy.
- Manual Page Revision: 5.10.1; Release Date: 2024-10-01.
- Copyright Β© 2010-2022 Thien-Thi Nguyen.
- Copyright Β© 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.
- Copyright Β© 1982, 1988, 1989 Walter F. Tichy.
β SEE ALSO β
ci(1), co(1), ident(1), merge(1), rcs(1), rcsdiff(1), rlog(1), rcsfile(5).
Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.
the full documentation for RCS is maintained as a Texinfo manual. if the info(1) and RCS programs are properly installed at your site, the command
info rcs
should give you access to the complete manual. additionally, the RCS homepage:
http://www.gnu.org/software/rcs/
has news and links to the latest release, development site, etc. go click around, it's giving β¨ resources β¨
and that's the whole page bestie!! this cutie is from GNU RCS 5.10.1, dated 2024-10-01 β go merge some revisions and slay π β¨π
π¦ where this page comes from
- opensuse-leap 16.0: rcs 5.10.1-160000.2.2 Β· GPL-3.0-or-later
- opensuse-leap 16.0: rcs 5.10.1-160000.2.2 Β· GPL-3.0-or-later
- opensuse-leap 16.0: rcs 5.10.1-160000.2.2 Β· GPL-3.0-or-later
- opensuse-leap 16.0: rcs 5.10.1-160000.2.2 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms