[PATCH 3 of 9 py3 v3] context: work around `long` not existing on Python 3
Martin von Zweigbergk
martinvonz at google.com
Sun Mar 12 14:15:59 EDT 2017
On Sun, Mar 12, 2017 at 11:02 AM, Martin von Zweigbergk
<martinvonz at google.com> wrote:
> On Sun, Mar 12, 2017 at 10:59 AM, Augie Fackler <raf at durin42.com> wrote:
>> # HG changeset patch
>> # User Augie Fackler <augie at google.com>
>> # Date 1489283824 18000
>> # Sat Mar 11 20:57:04 2017 -0500
>> # Node ID c4a50c84504fe6eaae95915f401e9d6826e4d19f
>> # Parent d656211a72279aa55428121be114b4059e7117ab
>> context: work around `long` not existing on Python 3
>>
>> I can't figure out what this branch is even trying to accomplish, and
>> it was introduced in ac89a23ca814 which doesn't really shed any
>> insight into why longs are treated differently from ints.
>
> I'm guessing it's because longs can't be revnums, so they are assumed
> to come from a decimal-only prefix of a nodeid. Just a guess. And of
> course there are no tests for it.
I was thinking that hgweb might create a context from something that
looked like a long, but even visiting /rev/252232621165917755727729 in
the hg core repo works fine. I'm done looking into this curiosity :-)
>
>>
>> diff --git a/mercurial/context.py b/mercurial/context.py
>> --- a/mercurial/context.py
>> +++ b/mercurial/context.py
>> @@ -33,6 +33,7 @@ from . import (
>> obsolete as obsmod,
>> patch,
>> phases,
>> + pycompat,
>> repoview,
>> revlog,
>> scmutil,
>> @@ -419,7 +420,7 @@ class changectx(basectx):
>> self._node = repo.changelog.node(changeid)
>> self._rev = changeid
>> return
>> - if isinstance(changeid, long):
>> + if not pycompat.ispy3 and isinstance(changeid, long):
>> changeid = str(changeid)
>> if changeid == 'null':
>> self._node = nullid
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list