Mercurial > hg-stable
diff mercurial/commands.py @ 17264:ec7b9bec19c9 stable
strip: move bookmarks to nearest ancestor rather than '.'
If you've got this graph:
0-1-2
\
3
and 3 is checked out, 2 is bookmarked with "broken", and you do "hg
strip 2", the bookmark will move to 3, not 1. That's always struck me
as a bug.
This change makes bookmarks move to the tipmost ancestor of
the stripped set rather than the currently-checked-out revision, which
is what I always expected should happen.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Thu, 26 Jul 2012 16:57:50 -0500 |
parents | e432fb4b4221 |
children | 4e35dea77e31 |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Jul 27 12:33:48 2012 -0500 +++ b/mercurial/commands.py Thu Jul 26 16:57:50 2012 -0500 @@ -1298,10 +1298,20 @@ editor=editor, extra=extra) + current = repo._bookmarkcurrent + marks = old.bookmarks() node = cmdutil.amend(ui, repo, commitfunc, old, extra, pats, opts) if node == old.node(): ui.status(_("nothing changed\n")) return 1 + elif marks: + ui.debug('moving bookmarks %r from %s to %s\n' % + (marks, old.hex(), hex(node))) + for bm in marks: + repo._bookmarks[bm] = node + if bm == current: + bookmarks.setcurrent(repo, bm) + bookmarks.write(repo) else: e = cmdutil.commiteditor if opts.get('force_editor'):