# HG changeset patch # User Denis Laxalde # Date 1570732054 -7200 # Node ID 01e8eefd943406c645df4dff11871683d35848b5 # Parent bca9d1a6c4c56143ffe4c556b595db6fe5b56ae1 py3: fix sorting of obsolete markers when building bundle Last item of marker tuple (parents) is either None or tuple. Comparison thus fails on Python 3 with: TypeError: '<' not supported between instances of 'tuple' and 'NoneType' Fixing this by coercing None to the empty tuple when sorting markers in exchange._getbundleobsmarkerpart(). diff -r bca9d1a6c4c5 -r 01e8eefd9434 mercurial/exchange.py --- a/mercurial/exchange.py Thu Oct 10 04:34:58 2019 +0200 +++ b/mercurial/exchange.py Thu Oct 10 20:27:34 2019 +0200 @@ -2567,7 +2567,8 @@ heads = repo.heads() subset = [c.node() for c in repo.set(b'::%ln', heads)] markers = repo.obsstore.relevantmarkers(subset) - markers = sorted(markers) + # last item of marker tuple ('parents') may be None or a tuple + markers = sorted(markers, key=lambda m: m[:-1] + (m[-1] or (),)) bundle2.buildobsmarkerspart(bundler, markers)