Differences between revisions 7 and 8
Revision 7 as of 2012-10-24 19:34:57
Size: 3849
Editor: KevinBullock
Comment: mark @ done
Revision 8 as of 2012-10-25 21:45:57
Size: 3846
Editor: mpm
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Line 4: Line 6:

/!\ This page is intended for developers.

/!\ This page is primarily intended for Mercurial's developers.

{i} This page appears to contain material that is no longer relevant. Please help improve this page by updating its content.

Bookmarks Plan


Original draft by KevinBullock.


  • Providing a default-update-on-clone bookmark (the '@' bookmark)
  • Introducing bookmarks (particularly as experimental branches) sanely into a workflow where they're not being used
  • When to sync bookmarks automatically

1. Discussions


2. Introducing Bookmarks Into Your Workflow


To solve this, I propose:




3. Command Behavior with Bookmarks

3.1. clone

  • Clone all bookmarks. (./)

  • Update to '@' if it exists, otherwise fall back to 'default' or 'tip'. (./)

3.2. pull

  • Pull all bookmarks. (./)


3.3. commit

3.4. push

  • hg push -B BOOKMARK should push only the changesets through BOOKMARK. I.e., it should be equivalent to hg push -B BOOKMARK -r BOOKMARK. (./)

  • Warn (with hint) when pushing changesets that are bookmarked without pushing the bookmarks (suggested by marmoute: http://markmail.org/message/pxemyessq6ek7ynw).

Discussion: It should be possible to push a bookmark and all the changesets leading up to it in one command. Right now, hg push -B BOOKMARK pushes _all changesets_, and then the given bookmark, which is too much.


3.5. update

  • Update to a bookmark named explicitly on the command line makes that bookmark active. (./)

  • Bare update moves the active bookmark forward. (./)

  • Bare update with no active bookmark updates to the implicit branch-default bookmark if it exists (see above).
    • What if it doesn't exist, i.e., how/when to add the implicit bookmark to old repos?

