I’d like to introduce the remotenames extension I’ve been working on. It is derived from Augie Fackler’s remotebranches extension. This extension keeps track of remote branches and remote bookmarks. Built on top of the namespaces API in Mercurial, it requires version 3.3 or above.

The repo is located at: https://bitbucket.org/seanfarley/hgremotenames

A major goal of this extension is to experiment with changing the default behavior of bookmarks. It takes the good parts from git’s branches without worrying about backwards compatibility.

Some example features and behavior changes:

  • bookmarks are no longer cloned
  • “clone and pull”: labeled as ‘remote/bookmark’
  • remote names can not move without pulling/pushing
  • “push” gains a new –to option
  • helpful templates and revsets are defined

More information is located in the README.

Since this is an experimental extension, use it with caution. More behavior will change as we iterate on what feels right for a bookmark-based workflow.

Much thanks to Ryan McElroy, who wrote the –to and clone behaviors! Feedback and patches are welcomed!