[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:02:19 EDT 2017


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.

>
> 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