subrepo: don't commit in subrepo if it's clean
If a subrepo has changed relative to the outer repo's substate, but the
subrepo itself is clean, we don't need to commit in the subrepo.
rebase: block collapse with keepbranches on multiple named branches (
issue2112)
Collapse and keepbranches should be blocked when there is more than
one named branch on the branch that's going to be rebased.
hbisect: do not assume that min(good) is an ancestor of min(bad)
The included test used to report "inconsistent state", which is
incorrect. While this situation cannot occur when the user sticks to
the suggested bisect sequence. However, adding more consistent
good/bad information to the bisect state should be tolerated as well.
hbisect: confine loop to the relevant interval
In this context we know that ancestors[rev] == None for all rev <= goodrev,
so looping further back is unnecessary (and confusing).
win32: assign winstdout to sys.__stdout__ as well (
issue2888)
On Windows sys.stdout was being replaced with winstdout, which caused
util.system() to redirect its output (due to
406b6d7bdcb9). That causes
interactive tools (such as vim) to stop working.