Is there a version control system abstraction for the command-line?

Now that so many small open source projects “ship” via their version control systems, I have dozens of repositories that I need on a frequent basis, often on multiple machines. I’m looking for some kind of way to manage this easily. If I were to design it myself, I would have a file listing all the remote repositories, and a command-line client that automatically pulled from them.

Does this, or some variation on the theme, exist?

  • Version Control Work Flow
  • Mercurial (hg) commit only certain files
  • Edit a commit message using source control in Xcode
  • Create a branch alias and push it
  • How to push commits after clone?
  • What git branch should I commit unit tests to?
  • git subtree changes the package directory
  • Why doesn't Git take into account owner and permission changes to files and directories?
  • 2 Solutions collect form web for “Is there a version control system abstraction for the command-line?”

    mr is designed to let you update multiple repositories as one, and supports a wide range of version control systems:

    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, mercurial, bzr, darcs, cvs, and
    fossil repositories, and support for
    other revision control systems can easily be added. (There are extensions adding support for unison and git-svn.)

    The only project I know which aims at providing a common interface (called ‘command‘) for all the major VCS is Amp.
    But it is still a work in progress and might not be complete enough for your goal.

    Git Baby is a git and github fan, let's start git clone.