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?

  • git rebase and keep all child branches
  • GIT - Is it possible to retrieve the commit hash from 'rev-list --count' value?
  • Removing/undoing a merge on Sourcetree
  • gitweb became slow
  • git svn dcommit committing wrong file?
  • git - move branch “tag” to other commit?
  • Git Segmentation fault: 11
  • Does a Node.js package.json need to be at the root of the repository?
  • Xcode 4: Update CFBundleVersion on each build using Git repo commit version
  • Why do checkout and reset change the index?
  • Using Git and Dropbox together effectively?
  • managing permissions between windows and mac git commiters
  • 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.