[PATCH v3] mq: update bookmarks during qrefresh
Augie Fackler
raf at durin42.com
Fri Oct 5 14:05:00 CDT 2012
Also looks good to me.
On Oct 1, 2012, at 8:18 AM, Pierre-Yves David <pierre-yves.david at logilab.fr> wrote:
> On Mon, Oct 01, 2012 at 03:04:42PM +0200, David Soria Parra wrote:
>> # HG changeset patch
>> # User David Soria Parra <dsp at php.net>
>> # Date 1349052286 -7200
>> # Node ID 11c32b87ef3ef228b5b72f47d82b379429509c10
>> # Parent 6d7db5794e8cad7da042b6ae6238116c6e59a4d2
>> 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.
>
> LGTM
> (note: the lack of any kind of transaction for bookmark surprise me every time)
>
>>
>> diff --git a/hgext/mq.py b/hgext/mq.py
>> --- a/hgext/mq.py
>> +++ b/hgext/mq.py
>> @@ -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]]
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at selenic.com
>> http://selenic.com/mailman/listinfo/mercurial-devel
>
> --
> Pierre-Yves David
>
> http://www.logilab.fr/
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list