This patchset adds python3 compatibility to git-p4. While further clean-up refactoring would have been nice, I specifically avoided making any major changes to the internal API, aiming to have passing tests with as few changes as possible. CI results can be seen from this GitHub PR: https://github.com/git/git/pull/673 Changes since v1: - incorporate Ben's change on dropping usage of basestring - don't alias string types based on python verson - use feature detection instead of version checking to detect python3 - CI patch now at end of series; needs further discussion - some general clean-up to commit messages Ben Keene (1): git-p4: change the expansion test from basestring to list Yang Zhao (13): git-p4: make python2.7 the oldest supported version git-p4: remove string type aliasing git-p4: encode/decode communication with p4 for python3 git-p4: encode/decode communication with git for python 4 git-p4: convert path to unicode before processing them git-p4: open .gitp4-usercache.txt in text mode git-p4: use marshal format version 2 when sending to p4 git-p4: fix freezing while waiting for fast-import progress git-p4: use functools.reduce instead of reduce git-p4: use dict.items() iteration for python3 compatibility git-p4: simplify regex pattern generation for parsing diff-tree git-p4: use python3's input() everywhere ci: also run linux-gcc pipeline with python3.5 environment azure-pipelines.yml | 11 ++ git-p4.py | 237 ++++++++++++++++++++++++++------------------ 2 files changed, 152 insertions(+), 96 deletions(-) -- 2.21.0.windows.1