py3: replace None with -1 to sort an integer array
authorPulkit Goyal <7895pulkit@gmail.com>
Wed, 31 May 2017 23:48:52 +0530
changeset 32612 a8262b7784f9
parent 32611 954489932c4f
child 32613 e7eb7494e98d
py3: replace None with -1 to sort an integer array In Python 2: >>> ls = [4, 2, None] >>> sorted(ls) [None, 2, 4] In Python 3: >>> ls = [4, 2, None] >>> sorted(ls) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unorderable types: NoneType() < int() Therefore we replaced None with -1, and the safe part is that, None and -1 are only the keys which are used for sorting so we don't need to convert the -1's back to None.
mercurial/merge.py
--- a/mercurial/merge.py	Wed May 31 23:42:58 2017 +0530
+++ b/mercurial/merge.py	Wed May 31 23:48:52 2017 +0530
@@ -801,7 +801,7 @@
 
     # manifests fetched in order are going to be faster, so prime the caches
     [x.manifest() for x in
-     sorted(wctx.parents() + [p2, pa], key=lambda x: x.rev())]
+     sorted(wctx.parents() + [p2, pa], key=lambda x: x.rev() or -1)]
 
     if followcopies:
         ret = copies.mergecopies(repo, wctx, p2, pa)