# HG changeset patch # User Yuya Nishihara # Date 1412769061 -32400 # Node ID 524b786bd54f8658965cbcf9a08458aa493e8c1f # Parent a1eb21f5caea4366310e32aa85248791d5bbfa0c ui: disable echo back of prompt input if ui is set to non-tty purposely 9ab18a912c44 is nice for test output, but it also affects command-server channel. Command-server client shouldn't receive echo-back message, which makes it harder to parse the output. diff -r a1eb21f5caea -r 524b786bd54f mercurial/ui.py --- a/mercurial/ui.py Fri Oct 03 18:48:09 2014 -0700 +++ b/mercurial/ui.py Wed Oct 08 20:51:01 2014 +0900 @@ -684,7 +684,9 @@ r = default # sometimes self.interactive disagrees with isatty, # show response provided on stdin when simulating - if not util.isatty(self.fin): + # but commandserver + if (not util.isatty(self.fin) + and not self.configbool('ui', 'nontty')): self.write(r, "\n") return r except EOFError: diff -r a1eb21f5caea -r 524b786bd54f tests/test-commandserver.t --- a/tests/test-commandserver.t Fri Oct 03 18:48:09 2014 -0700 +++ b/tests/test-commandserver.t Wed Oct 08 20:51:01 2014 +0900 @@ -497,6 +497,9 @@ > @command("debuggetpass", norepo=True) > def debuggetpass(ui): > ui.write("%s\\n" % ui.getpass()) + > @command("debugprompt", norepo=True) + > def debugprompt(ui): + > ui.write("%s\\n" % ui.prompt("prompt:")) > EOF $ cat <> .hg/hgrc > [extensions] @@ -511,8 +514,13 @@ ... runcommand(server, ['debuggetpass', '--config', ... 'ui.interactive=True'], ... input=cStringIO.StringIO('1234\n')) + ... runcommand(server, ['debugprompt', '--config', + ... 'ui.interactive=True'], + ... input=cStringIO.StringIO('5678\n')) *** runcommand debuggetpass --config ui.interactive=True password: 1234 + *** runcommand debugprompt --config ui.interactive=True + prompt: 5678 start without repository: