The mr(1) command can checkout, update, or perform other actions on a set of repositories as if they were one combined respository. It supports any combination of subversion, git, cvs, mecurial, bzr and darcs repositories, and support for other revision control systems can easily be added. (There are extensions adding support for unison and git-svn.)

It is extremely configurable via simple shell scripting. Some examples of things it can do include:

mr is available in git at git://git.kitenet.net/mr, or in gitweb. It's recently been added to Debian. If you want a tarball, the best place to get one is from http://packages.debian.org/unstable/source/mr. Unofficial RPMs are provided by Douglas E. Warner.

News

mr 0.48 released with these changes

  • Fix the hours_since function built into mr's shell library to not exit, but return a true/false exit status. This allows it to be used outside of skip tests.
Posted late Friday afternoon, February 5th, 2010

mr 0.47 released with these changes

  • Pass -L to curl to allow it to follow redirects when bootstrapping. (Pavel Avgustinov)
  • Allow empty sections to be used in mrconfig files.
Posted Friday afternoon, February 5th, 2010

mr 0.46 released with these changes

  • Avoid using abs_path to determine canonical repo path, as that fails when the repo has not yet been checked out.
Posted Thursday evening, December 10th, 2009