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