.RCS

RCS File

Revision Control System File
Ask a question
QUICK ANSWER

An RCS file is a Revision Control System archive - a plain-text file that holds every checked-in revision of a single source-code file, along with author names, dates, and log messages. Open it with GNU RCS tools (co, rlog, rcsdiff) on Linux, macOS, or Windows via WSL. The .rcs extension is also used by unrelated formats (Ren'Py save games, Fryrender 3D scenes), so confirm the source before choosing a tool.

Developer: Walter F. Tichy / GNU Project (Free Software Foundation) Category: Developer Files Open standard MIME: text/plain
OPENS ON Windows macOS Linux
Related: .DO · .MD · .HEX · .XSD

On this page

19k+ extensions indexed
Last reviewed Sep 2, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the RCS file format?

An .rcs file is a plain-text version-control archive produced by the Revision Control System, one of the oldest source-code management tools still in active use. It stores the complete revision history of a single controlled file - typically a source code module - enabling any prior version to be reconstructed on demand.

The archive is divided into three sections: an admin header declaring branch structure, access lists, and symbolic tags; a delta tree with one node per revision recording date, author, log message, and branching pointers; and a delta-text section storing the head revision in full and all earlier revisions as compact reverse diffs. Changes between revisions are represented using the same line-oriented diff format familiar from Unix tooling. The entire file is 7-bit ASCII text, readable in any editor.

Conventionally an RCS archive is stored with a ,v suffix inside an RCS/ subdirectory - for example, main.c,v - though the .rcs extension is also used by some implementations. RCS also supports keyword substitution, automatically expanding $Id$, $Author$, $Date$, and $Revision$ tags in checked-out source files.

RCS was created in 1982 by Walter F. Tichy at Purdue University and later incorporated into the GNU Project. It is standardized in POSIX.2 (IEEE 1003.2). While Git, Subversion, and CVS have superseded it for most projects, GNU RCS 5.10.1 (released 2023) confirms continued active maintenance. RCS remains in use in legacy codebases and embedded-system build pipelines where a lightweight per-file changelog is sufficient.

Security & safety

RISK: LOW

An RCS archive is plain ASCII text that can be read in any editor - it contains no executable content. Opening one is completely safe. The only operational caution is that malformed or corrupted RCS files can confuse the co/ci tools; always maintain filesystem backups of RCS archives. Note that the .rcs extension is also used by the completely unrelated Ren'Py save format and Fryrender scene format - confirm the source before choosing a tool.

Format details

in a nutshell
FULL NAMERevision Control System Fileaka RCS archive file, RCS version file
DEVELOPERWalter F. Tichy / GNU Project (Free Software Foundation)since 1982 (original RCS by Walter F. Tichy, Purdue University); GNU RCS 5.x actively maintained
MIME TYPEtext/plain
TYPEPlain-text version-control archive (delta storage, text)
STANDARDOpen · royalty-free
This extension is also used by…
  • Ren'Py RCS save file - Ren'Py visual-novel engine uses .rcs as a save-game file extension - an unrelated binary format.
  • Fryrender / RandomControl scene file - RandomControl's Fryrender (3D rendering) historically used .rcs for scene data - an unrelated binary format.

Programs that open RCS files

Windows1 app
GNU RCS for Windows (via MSYS2/Cygwin/WSL) Open-source Install MSYS2 or WSL and then the rcs package to use the standard RCS commands.
macOS1 app
GNU RCS (via Homebrew) Open-source brew install rcs, then use co/ci/rlog/rcsdiff as on Linux.
Linux2 apps
GNU RCS Open-source co filename - check out a working copy; rlog filename,v - view revision history; rcsdiff - compare revisions.
Any text editor (inspect only) Free Open the .rcs / ,v file directly to read the plain-text admin, delta and deltatext sections.

Technical details

deep spec
EncodingPlain text, 7-bit ASCII
Typical archive sizeRoughly 1-10× the controlled file's size (depends on revision count and delta volume)
Archive structureThree sections - admin header, delta tree (one node per revision), delta-text blocks
Delta methodReverse diffs - head revision stored in full; earlier revisions as add/delete line commands
First line token`head` keyword followed by the latest revision number (e.g., `head 1.5;`)
Conventional filenameControlled filename + ",v" suffix in an RCS/ subdirectory (e.g., foo.c,v)
Keyword substitution$Id$, $Author$, $Date$, $Revision$, $Log$ - mode controlled by the `expand` keyword in the admin section
StandardPOSIX.2 (IEEE 1003.2); format defined in the rcsfile(5) man page
IntegrityNone built-in; relies on filesystem permissions and access controls
Operating systemsLinux, macOS, Unix/BSD; Windows via MSYS2, Cygwin, or WSL
Released1982 (original RCS by Walter F. Tichy, Purdue University); GNU RCS 5.x actively maintained
Latest versionGNU RCS 5.10.1 (released 2023)
Open standardYes · royalty-free
Specificationwww.gnu.org

RCS conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with RCS files. Be specific - include your system and software version.
No account needed · answers usually within a day

No questions yet - be the first to ask about RCS files.

Frequently asked questions

What is an RCS file?
An RCS file is a Revision Control System archive - a plain-text file that stores all checked-in revisions of a single source-code or text file, along with author names, dates and log messages. It is managed by GNU RCS.
How do I read or check out an RCS file?
Use GNU RCS commands: 'co filename,v' to check out the latest revision, 'rlog filename,v' to view the full revision history, and 'rcsdiff -r1.2 -r1.3 filename,v' to compare revisions. On macOS install via 'brew install rcs'; on Windows use WSL or MSYS2.
Is RCS still used?
Yes, in legacy embedded-systems projects, old Unix-style configs and wherever single-file versioning is sufficient. GNU RCS 5.10.1 was released in 2023. For new projects, Git is the modern choice.
How do I migrate an RCS repository to Git?
Use the rcs-fast-export tool, which converts an RCS archive to a git-fast-import stream preserving the full commit history. Alternatively, check out each revision and commit it manually in Git.
Why is my .rcs file a binary / looks like a game save?
The .rcs extension is shared by unrelated formats: Ren'Py (visual-novel engine) uses .rcs for save games, and Fryrender (3D rendering) used it for scene files. If you got the file from a game or 3D application, it is one of those, not an RCS version-control archive.
What are the ,v files in my old source tree?
Files ending in ,v are RCS archive files - the traditional RCS naming convention (e.g. foo.c,v stores all revisions of foo.c). The .rcs extension is an alternative name for the same format.

References

1GNU RCS - official project page and manualwww.gnu.org
2Wikipedia - Revision Control Systemen.wikipedia.org

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.EXEWindows Executable (Portable Executable)
4.PARTPartial Download File
5.BINCD/DVD Disc Image (BIN/CUE)
6.DATProgram Data File (generic)
7.RPMSGRestricted Permission Message
8.TXTPlain Text File
9.MDMarkdown Document
10.NOMEDIAAndroid No-Media Marker File

Related extensions

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z