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.
This commit is contained in:
Pulkit Goyal 2017-05-31 23:48:52 +05:30
parent 31c2497e4b
commit 4e870f314a

View File

@ -801,7 +801,7 @@ def manifestmerge(repo, wctx, p2, pa, branchmerge, force, matcher,
# 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)