diff -r 3eaff87a0a89 -r 76a64c1e5439 mercurial/pycompat.py --- a/mercurial/pycompat.py Fri Aug 05 13:56:10 2016 +0200 +++ b/mercurial/pycompat.py Fri Mar 03 13:04:32 2017 +0530 @@ -96,6 +96,9 @@ setattr = _wrapattrfunc(builtins.setattr) xrange = builtins.range + def open(name, mode='r', buffering=-1): + return builtins.open(name, sysstr(mode), buffering) + # getopt.getopt() on Python 3 deals with unicodes internally so we cannot # pass bytes there. Passing unicodes will result in unicodes as return # values which we need to convert again to bytes.