While the OSS community converges to Git, with the Python bunch branching to Mercurial, the typical workplace is stuck with Subversion. The author's DVCS of choice is Fossil. These are all fine projects, with their own pros and cons, but what you usually want is just a tool to store your code tree snapshot in a safe place. They can all do that, but their language differs a tiny bit. repo brings them all down to the common root. It works by detecting which VCS are you using right now and calling that, applying necessary subcommand translation if needed.