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?

  • find out if a git commit was checked in before or after another commit given the hashes
  • How to do a git reset --hard using gitPython?
  • git: new blank line at EOF
  • Gitweb: How I see source code in tree view with color
  • Could I change my name and surname in all previous commits?
  • How can I delete all commits before a given date in Git history?
  • Keep Git Reflog Indefinitely?
  • BitBucket: how to track a repo's branches in its Wiki repo?
  • How can I recursively configure svn status to hide ignored files?
  • deploying a website/webapp via git/gitolite permissions error
  • Using Git with your CakePHP Project
  • How to use to make a file executable on Openshift server after pushing it via git
  • 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.