[PATCH 1 of 2] py3: keep stdout as defined by pycompat in procutil

Yuya Nishihara yuya at tcha.org
Thu Oct 10 11:27:03 EDT 2019


On Thu, 10 Oct 2019 17:16:50 +0200, Denis Laxalde wrote:
> Yuya Nishihara a écrit :
> > On Thu, 10 Oct 2019 16:16:25 +0200, Denis Laxalde wrote:
> > > # HG changeset patch
> > > # User Denis Laxalde <denis.laxalde at logilab.fr>
> > > # Date 1570716002 -7200
> > > #      Thu Oct 10 16:00:02 2019 +0200
> > > # Node ID 63da27176ab9d0ac5dd58e0a6037469ce4bf5435
> > > # Parent  b0238700551593257f293fd838f2ac030d00cede
> > > py3: keep stdout as defined by pycompat in procutil
> > > 
> > > According to https://docs.python.org/3/library/functions.html#open, it's
> > > not possible to use 1 as buffering argument value in binary mode. This
> > > is probably why line buffering does not work well in python3.
> > > 
> > > On the other hand, sys.stdout.buffer appears to be line-buffered already
> > > on python3. So by not replacing it, there should be no behavior change.
> > 
> > Can you check if it's still true under pager?
> > 
> >   (for example)
> >   $ hg log -k mpm
> >   ... will print f2fe7cf4ebb6 immediately, and more changesets with
> >   ... some delay.
> 
> Yes, that's what I see. The same happens with py3 and this patch as with
> 5.1.1/py2.

Queued, thanks.

Maybe we can disable the stdout substitution at all, i.e.
"if not ispy3 and isatty(stdout):", but I don't have Windows machine to
test the behavior.


More information about the Mercurial-devel mailing list