Don't try to determine interactivity if ui() called with interactive=False.
WSGI applications are not supposed to refer to sys.stdin. In
ed6df6b1c29a,
hgweb and hgwebdir were fixed to pass interactive=False to their ui()'s, but
sys.stdin.isatty() was still called by the ui objects. This change makes sure
only the ui.fixconfig() method will call ui.isatty() (by making the
ui._readline() method, which is currently only called from ui.prompt(),
private). ui.fixconfig() is changed to let config files override the initial
interactivity setting, but not check isatty() if interactive=False was
specified in the creation of the ui.
convert_git: avoid returning two entries for the same file in getchanges
This could happen in merge changesets if the merged file was different
from both parents.
hgwebdir: ignore hgrc parse errors while building the index page
An error in the .hg/hgrc file from a repository would prevent the
following repos from being shown in the index page.
The IOError handling was unnecessary - it's already handled in
readconfig.
This should fix
issue731.
The error in the .hg/hgrc file will still prevent the repo from
being exported with hgweb.
hgweb: don't raise an exception when displying empty repos
The nullid node claims it's in the default branch, but the branch dict
is empty. This fixes the main symptom from
issue696, but we may want
to set branchtags()['default'] = nullid somewhere for empty repos.