[PATCH 1 of 1] patchbomb: use ui.promptchoice for diffstat to allow localization of choices
mads at kiilerich.com
Thu Sep 2 17:00:15 CDT 2010
Christian Ebert wrote, On 09/02/2010 05:43 PM:
> * On Thursday, September 02, 2010, you wrote:
>> On 09/02/2010 02:10 PM, Christian Ebert wrote:
>>> because ui.prompt has:
>>> if not self.interactive():
>>> self.write(msg, ' ', default, "\n")
>>> return default
>>> i.e. it prints msg and default answer. This is not wanted in
>> FWIW, I still don't understand: Why?
> Well, I can counter that ;-) I don't understand the patch above.
> If it's just for testing, one can do
> "hg --config ui.interactive=1". Why, in "normal usage" would I
> want to see the output I deliberately turned off?
As far as I know the purpose with the isatty checks is to make sure that
Mercurial doesn't get stuck in an interactive prompt when it isn't run
interactively. Mercurial thus makes a default answer to the prompts when
not running interactive, but there is no fine-grained control and it
isn't intended to be used for scripting. When looking at the output of a
non-interactive session it is however very convenient to see what the
default answer was and that it looks like an interactive session.
In other words: We don't want different behavior when running
interactively and when running non-interactively. When there _has_ to be
a difference because an interactive prompt doesn't make sense without a
tty, then we prefer to show the prompt and show which answer we assumed,
rather than hiding the prompt.
The ui.interactive setting is mainly intended to overrule isatty in
special cases - especially for testing and "broken" "tty"s. So
ui.interactive do not mean "disable all prompts" but "don't ask the user
(It seems like the man page isn't completely right. The default for
ui.interactive isn't True but "it depends".)
More information about the Mercurial-devel