# HG changeset patch # User Denis Laxalde # Date 1571311858 -7200 # Node ID 48b9fbfb00b9067c2314e84a31815f4fa743c4cf # Parent d201a637c9717030c265dcb150bd63eafe8cfad1 exchange: extract a function to sort obsolete markers Follows up on changeset 01e8eefd9434, several other occurrences of sorted() need to be fixed. The _sortedmarkers() handles sorting obsmarkers with a None value as last element on Python 3. diff -r d201a637c971 -r 48b9fbfb00b9 mercurial/exchange.py --- a/mercurial/exchange.py Thu Oct 17 12:10:42 2019 +0200 +++ b/mercurial/exchange.py Thu Oct 17 13:30:58 2019 +0200 @@ -99,6 +99,11 @@ contentopts = attr.ib() +def _sortedmarkers(markers): + # last item of marker tuple ('parents') may be None or a tuple + return sorted(markers, key=lambda m: m[:-1] + (m[-1] or (),)) + + def parsebundlespec(repo, spec, strict=True): """Parse a bundle string specification into parts. @@ -2567,8 +2572,7 @@ heads = repo.heads() subset = [c.node() for c in repo.set(b'::%ln', heads)] markers = repo.obsstore.relevantmarkers(subset) - # last item of marker tuple ('parents') may be None or a tuple - markers = sorted(markers, key=lambda m: m[:-1] + (m[-1] or (),)) + markers = _sortedmarkers(markers) bundle2.buildobsmarkerspart(bundler, markers)