Mercurial > hg-stable
changeset 19874:5836edcbdc2e
shelve: copy bookmarks and restore them after a commit
cmdutil.commit() will advance the bookmarks. Therefore we have to restore
them afterwards. We have to use update() to ensure we preserve the bmstore
object.
author | David Soria Parra <dsp@experimentalworks.net> |
---|---|
date | Thu, 03 Oct 2013 19:41:25 +0200 |
parents | b3de50b0c7aa |
children | 7032dcff290c |
files | hgext/shelve.py tests/test-shelve.t |
diffstat | 2 files changed, 27 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/shelve.py Thu Oct 03 14:50:47 2013 +0200 +++ b/hgext/shelve.py Thu Oct 03 19:41:25 2013 +0200 @@ -172,11 +172,12 @@ name = opts['name'] - wlock = lock = tr = None + wlock = lock = tr = bms = None try: wlock = repo.wlock() lock = repo.lock() + bms = repo._bookmarks.copy() # use an uncommited transaction to generate the bundle to avoid # pull races. ensure we don't print the abort message to stderr. tr = repo.transaction('commit', report=lambda x: None) @@ -224,11 +225,16 @@ fp=shelvedfile(repo, name, 'patch').opener('wb'), opts=mdiff.diffopts(git=True)) + if ui.formatted(): desc = util.ellipsis(desc, ui.termwidth()) ui.status(_('shelved as %s\n') % name) hg.update(repo, parent.node()) finally: + if bms: + # restore old bookmarks + repo._bookmarks.update(bms) + repo._bookmarks.write() if tr: tr.abort() lockmod.release(lock, wlock)
--- a/tests/test-shelve.t Thu Oct 03 14:50:47 2013 +0200 +++ b/tests/test-shelve.t Thu Oct 03 19:41:25 2013 +0200 @@ -418,3 +418,23 @@ default (*) create conflict (glob) $ hg shelve --cleanup $ hg shelve --list + +test bookmarks + + $ hg bookmark test + $ hg bookmark + * test 5:01ba9745dc5a + $ hg shelve + shelved as test + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg bookmark + * test 5:01ba9745dc5a + $ hg unshelve + unshelving change 'test' + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 7 files + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg bookmark + * test 5:01ba9745dc5a