[PATCH 2 of 5] manifest: switch add() to heapq.merge (available in Py2.6+)

Augie Fackler raf at durin42.com
Wed Sep 9 09:56:49 CDT 2015


On Wed, Sep 9, 2015 at 10:51 AM, Yuya Nishihara <yuya at tcha.org> wrote:
> On Tue, 08 Sep 2015 20:00:58 -0500, timeless at mozdev.org wrote:
>> # HG changeset patch
>> # User timeless at mozdev.org
>> # Date 1441360678 14400
>> #      Fri Sep 04 05:57:58 2015 -0400
>> # Node ID 143d8109b4e6e646faad6d6ebae0916025fd88c6
>> # Parent  86cde82f7a356f189678df401831646e32499522
>> manifest: switch add() to heapq.merge (available in Py2.6+)
>>
>> diff --git a/mercurial/manifest.py b/mercurial/manifest.py
>> --- a/mercurial/manifest.py
>> +++ b/mercurial/manifest.py
>> @@ -9,6 +9,7 @@
>>  import mdiff, parsers, error, revlog, util
>>  import array, struct
>>  import os
>> +import heapq
>>
>>  propertycache = util.propertycache
>>
>> @@ -970,12 +971,8 @@
>>              # revlog layer.
>>
>>              _checkforbidden(added)
>> -            # combine the changed lists into one list for sorting
>> -            work = [(x, False) for x in added]
>> -            work.extend((x, True) for x in removed)
>> -            # this could use heapq.merge() (from Python 2.6+) or equivalent
>> -            # since the lists are already sorted
>> -            work.sort()
>> +            # combine the changed lists into one sorted list
>> +            work = heapq.merge([(x, False) for x in added], [(x, True) for x in removed])
>
> Nit: heapq.merge() returns an iterator, so the comment "into one sorted list"
> seems misleading.

Good point. Fixing in flight, as well as a minor check-code violation.

> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> https://selenic.com/mailman/listinfo/mercurial-devel


More information about the Mercurial-devel mailing list