From patchwork Wed Aug 23 13:19:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [evolve-ext, v2] obscache: use _readmarkers() from core with correct signature From: via Mercurial-devel X-Patchwork-Id: 23225 Message-Id: <59ad0904a77f4fe8398b.1503494352@martinvonz.svl.corp.google.com> To: mercurial-devel@mercurial-scm.org Date: Wed, 23 Aug 2017 06:19:12 -0700 # HG changeset patch # User Martin von Zweigbergk # Date 1503424759 25200 # Tue Aug 22 10:59:19 2017 -0700 # Node ID 59ad0904a77f4fe8398b10a9c05a46bf79d900c5 # Parent 95470e817c00b03fcf99e486412cc7d7f0116681 obscache: use _readmarkers() from core with correct signature The copied _readmarkers() went stale with Mercurial core commit 5d3ba4395288 (obsstore: let read marker API take a range of offsets, 2017-06-04). At the same time, the Mercurial core version of the function gained the desired offset argument, so we can now use that function. diff --git a/hgext3rd/evolve/obscache.py b/hgext3rd/evolve/obscache.py --- a/hgext3rd/evolve/obscache.py +++ b/hgext3rd/evolve/obscache.py @@ -111,21 +111,26 @@ return obsstore -# XXX copied as is from Mercurial 4.2 and added the "offset" parameters -@util.nogc -def _readmarkers(data, offset=None): - """Read and enumerate markers from raw data""" - off = 0 - diskversion = struct.unpack('>B', data[off:off + 1])[0] - if offset is None: - off += 1 - else: - assert 1 <= offset - off = offset - if diskversion not in obsolete.formats: - raise error.Abort(_('parsing obsolete marker: unknown version %r') - % diskversion) - return diskversion, obsolete.formats[diskversion][0](data, off) +if obsolete._readmarkers.__code__.co_argcount > 1: + # hg-4.3+ has the "offset" parameter, and _fm?readmarkers also have an + # extra "stop" parameter + _readmarkers = obsolete._readmarkers +else: + # XXX copied as is from Mercurial 4.2 and added the "offset" parameters + @util.nogc + def _readmarkers(data, offset=None): + """Read and enumerate markers from raw data""" + off = 0 + diskversion = struct.unpack('>B', data[off:off + 1])[0] + if offset is None: + off += 1 + else: + assert 1 <= offset + off = offset + if diskversion not in obsolete.formats: + raise error.Abort(_('parsing obsolete marker: unknown version %r') + % diskversion) + return diskversion, obsolete.formats[diskversion][0](data, off) def markersfrom(obsstore, byteoffset, firstmarker): if not firstmarker: