Mercurial > hg-stable
changeset 17730:6c6987761e42
mq: update bookmarks during qrefresh
Bookmarks are updated during qpop and qpush, but they are not updated
during qrefresh. This behaviour makes it hard to work on an evolving
changeset at the head of a branch. qrefresh should update all bookmarks
that point to the refreshed commit with the new nodeid.
author | David Soria Parra <dsp@php.net> |
---|---|
date | Mon, 01 Oct 2012 02:44:46 +0200 |
parents | 9a3cb3ce011e |
children | c85dbae29684 |
files | hgext/mq.py |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/mq.py Mon Oct 08 16:21:24 2012 -0500 +++ b/hgext/mq.py Mon Oct 01 02:44:46 2012 +0200 @@ -63,7 +63,7 @@ from mercurial.node import bin, hex, short, nullid, nullrev from mercurial.lock import release from mercurial import commands, cmdutil, hg, scmutil, util, revset -from mercurial import repair, extensions, url, error, phases +from mercurial import repair, extensions, url, error, phases, bookmarks from mercurial import patch as patchmod import os, re, errno, shutil @@ -1577,6 +1577,7 @@ a = list(aa) c = [filter(matchfn, l) for l in (m, a, r)] match = scmutil.matchfiles(repo, set(c[0] + c[1] + c[2] + inclsubs)) + bmlist = repo[top].bookmarks() try: if diffopts.git or diffopts.upgrade: @@ -1662,6 +1663,11 @@ for chunk in chunks: patchf.write(chunk) patchf.close() + + for bm in bmlist: + repo._bookmarks[bm] = n + bookmarks.write(repo) + self.applied.append(statusentry(n, patchfn)) except: # re-raises ctx = repo[cparents[0]]