[PATCH 1 of 5 evolve-ext] evolve: don't use python sets on top of revset for evolve --rev
Laurent Charignon
lcharignon at fb.com
Wed May 13 19:26:56 CDT 2015
On 5/13/15, 5:12 PM, "Pierre-Yves David" <pierre-yves.david at ens-lyon.org>
wrote:
>
>
>On 05/13/2015 10:04 AM, Laurent Charignon wrote:
>> # HG changeset patch
>> # User Laurent Charignon <lcharignon at fb.com>
>> # Date 1431532991 25200
>> # Wed May 13 09:03:11 2015 -0700
>> # Node ID 08577d19560731490ddf3446ebe785ce3219b52a
>> # Parent 5e82d78f5872c9503d7b6691c594a13794a9b4a4
>> evolve: don't use python sets on top of revset for evolve --rev
>>
>> In --rev we were wrapping the revsets in python sets.
>> This is wrong as the use python sets force the wrapper revision set to
>>be
>> computed earlier than it has to and have no order guarantee.
>> Removing this wrapping changes a test because the ordering does not
>>appear to
>> be the same but the end result is the same.
>>
>> diff --git a/hgext/evolve.py b/hgext/evolve.py
>> --- a/hgext/evolve.py
>> +++ b/hgext/evolve.py
>> @@ -1303,20 +1303,16 @@
>> return graftcmd(ui, repo, old_obsolete=True, **{'continue':
>>True})
>> # Rev specified on the commands line
>> if revopt:
>> - revs = set(repo.revs(revopt))
>> - troubled = set(repo.revs('troubled()'))
>> + revs = repo.revs(revopt)
>> + troubled = repo.revs('troubled()')
>
>This is greate
>
>> _revs = revs & troubled
>> if not _revs:
>> ui.write_err("No troubled changes in the specified
>>revset")
>> else:
>> - # For the progress bar to show
>> - count = len(_revs)
>> for rev in _revs:
>> - progresscb()
>> _solveone(ui, repo, repo[rev], dryrunopt, confirmopt,
>> progresscb)
>> seen += 1
>> - progresscb()
>
>Wait, what? Why are we dropping the progress callback in the process?
Because we can't now how many we have to process since the set is lazily
computed
>
>I extracted that part and pushed the result.
>
>--
>Pierre-Yves David
More information about the Mercurial-devel
mailing list