mr
Manage multiple repositories using a configuration file
TLDR
Register a repository
Update repositories in 5 concurrent jobs
Print the status of all repositories
Checkout all repositories to the latest version
SYNOPSIS
mr [-ci] [-n] [-q] [-v] [-w] [-V[n]] [-Q[n]] [-z[number]] [directory ...]
PARAMETERS
-c
Check out files; files left writable on the default branch (usually the trunk) are checked in automatically.
-i
Interactively update files, asking for confirmation before modifying each file.
-n
No-op: Display the commands that would be executed without actually running them. Useful for testing.
-q
Quiet mode: Suppress some informational messages.
-v
Verbose mode: Display additional information about the commands being executed.
-w
Make all files writable.
-V[n]
Set RCS compatibility version number. If n is not specified, show the version number
-Q[n]
Set RCS quoting style. If n is not specified, show the quoting style
-z[number]
Set the timezone offset. The number indicates the offset, in minutes east of UTC.
directory ...
The directory, or list of directories, in which to update the files. If no directories are specified, mr operates on the current directory.
DESCRIPTION
The mr command (Maintain RCS) helps manage software projects using the Revision Control System (RCS).
Primarily, it is used to automatically update all files in a directory hierarchy with the newest versions from an RCS repository, but can also be used to manage different version branches.
mr is particularly useful when working with RCS in environments where multiple users are sharing the same code base or when reverting a whole project tree to a previous state is needed. mr is often employed in conjunction with the co and ci commands for checking out and checking in files, respectively.
It reads RCS files and compares the dates of the files checked out with the RCS information to determine when to update the files.
CAVEATS
mr command heavily relies on RCS metadata. Its effectiveness is diminished if RCS files are corrupted or unavailable.
It is less commonly used in modern development environments that favor more advanced version control systems like Git.
EXIT STATUS
The mr command exits with status 0 if all operations complete successfully. A non-zero exit status indicates an error.
HISTORY
The mr command was designed to streamline the process of maintaining a directory tree of files under RCS. It predates the widespread adoption of centralized version control systems like CVS and Git. Initially developed as a shell script and later reimplemented in C for improved performance, mr served as a crucial tool for coordinating changes within projects that used RCS as their primary version control mechanism. Its usage declined significantly with the rise of more feature-rich alternatives, but it remains part of the GNU RCS suite for historical compatibility and legacy systems.