# HG changeset patch # User Benoit Boissinot # Date 1300023407 -3600 # Node ID 71a96f6c205dcbfbe6a770d11133cc9447f3351b # Parent 4e96a5bee10d431c00d9f6bc2849b829129184b7 bookmarks: discard current bookmark if absent from the bookmarks (issue2692) After a rollback, the current bookmark might be absent from the bookmarks file. In that case we discard it instead of displaying a traceback during commit. diff -r 4e96a5bee10d -r 71a96f6c205d mercurial/bookmarks.py --- a/mercurial/bookmarks.py Sun Mar 13 16:13:25 2011 +0100 +++ b/mercurial/bookmarks.py Sun Mar 13 14:36:47 2011 +0100 @@ -45,7 +45,7 @@ file = repo.opener('bookmarks.current') # No readline() in posixfile_nt, reading everything is cheap mark = encoding.tolocal((file.readlines() or [''])[0]) - if mark == '': + if mark == '' or mark not in repo._bookmarks: mark = None file.close() return mark diff -r 4e96a5bee10d -r 71a96f6c205d tests/test-bookmarks-strip.t --- a/tests/test-bookmarks-strip.t Sun Mar 13 16:13:25 2011 +0100 +++ b/tests/test-bookmarks-strip.t Sun Mar 13 14:36:47 2011 +0100 @@ -84,19 +84,33 @@ $ hg bookmarks no bookmarks set +can we commit? (issue2692) + + $ echo c > c + $ hg ci -Am rockon + adding c + can you be added again? $ hg bookmarks markb $ hg bookmarks - * markb 0:07f494440405 + * markb 1:fdb34407462c rollback dry run with rollback information $ hg rollback -n + repository tip rolled back to revision 0 (undo commit) + $ hg bookmarks + * markb 1:fdb34407462c + +rollback dry run with rollback information and no commit undo + + $ rm .hg/store/undo + $ hg rollback -n no rollback information available [1] $ hg bookmarks - * markb 0:07f494440405 + * markb 1:fdb34407462c $ cd ..