Skip to content
  • epriestley's avatar
    Allow "hg arc-ls-markers" to run under Python 2 or Python 3 · a28e76b7
    epriestley authored
    Summary:
    Ref T13546. See PHI1805. Currently, the "arc-ls-markers" extension doesn't run under Python 3:
    
      - some stuff needs "b'...'" to mark it as a byte string;
      - "dict.iteritems()" is gone in Python 3, and "mercurial.pycompat" isn't always available;
      - in Python 3, "json" refuses to print byte strings; and
      - the compiler caching behavior in Python 3 has changed.
    
    Try to get these things working in the same way under Python 2 and Python 3.
    
    Test Plan:
    Ran this command (with `python` as Python 2, locally):
    
    ```
    $ python /usr/local/bin/hg --config 'extensions.arc-hg=/Users/epriestley/dev/core/lib/arcanist/support/hg/arc-hg.py' arc-ls-markers --
    ```
    
    ...and this command:
    
    ```
    $ python3 /usr/local/bin/hg --config 'extensions.arc-hg=/Users/epriestley/dev/core/lib/arcanist/support/hg/arc-hg.py' arc-ls-markers --
    ```
    
    ..and saw the same output in both cases (previously, `python3 ...` fataled in various ways).
    
    Maniphest Tasks: T13546
    
    Differential Revision: https://secure.phabricator.com/D21392
    a28e76b7