I think you're right - I'm not sure how I managed to push the changes as
I did.  Adding '-y' just causes it to use the default value, not 'y'.  I
had to manually hack it up to switch to 'y' as the default for this to
work.

- Eric

On Mon, Dec 01, 2008 at 06:08:53PM -0500, Richard Lowe wrote:
> Eric Schrock <eric.schrock at sun.com> writes:
> 
> > I'm finding that if I try to run 'hg -y push', I'm getting booted out of
> > cdm.pbconfirm despite the fact that I've specified '-y' to answer "yes"
> > to everything.  Looking at the code for yes_no(), we manually check
> > ui.interactive, and then always return the default answer ("no" in this
> > case) for the non-interactive case.  Why are we not just using
> > ui.prompt(), which is supposed to return the default answer in a
> > non-interactive case, and presumably knows how to replace it with 'y' if
> > 'hg -y' is specified?  I hacked up my cdm.py to always call ui.prompt()
> > and let it do the work, and that seems to work.
> >
> 
> My recollection (and notes) suggest we did that to avoid a bug in
> ui.prompt() where it didn't get the !isatty() case correct.
> I think that is now fixed, so we could change.
> 
> However, what you seem to be disliking is that while -y is documented:
>    -y --noninteractive  do not prompt, assume 'yes' for any required
>                         answers
> 
> It actually assumes the *default* answer for any given answer, not
> 'yes', and pbconfirm defaults to "no".
> 
> I don't see ui.prompt() doing any magic such that the !isatty() case,
> and the -y case are separate.  So you'd still be defaulting to "No",
> surely?
> 
> -- Rich

--
Eric Schrock, Fishworks                        http://blogs.sun.com/eschrock

Reply via email to