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

timeless at mozdev.org timeless at mozdev.org
Tue Sep 8 20:00:58 CDT 2015


# 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])
 
             arraytext, deltatext = m.fastdelta(self._mancache[p1][1], work)
             cachedelta = self.rev(p1), deltatext


More information about the Mercurial-devel mailing list