test-commandserver.py: filter path separator

Was failing on Windows:

-bundle.mainreporoot=$TESTTMP/repo
+bundle.mainreporoot=$TESTTMP\repo
hgweb: avoid config object race with hgwebdir (issue4326)

Turns out hgwebdir passes full repo objects to each hgweb request
instance, but with a shared baseui. We explicitly break the sharing.
tests: more bundle2 non-binary file test fixes
unbundle: don't advance bookmarks (issue4322) (BC)

This behavior didn't make much sense and interacts badly with things
that use unbundle internally like shelve. Presumably, the original
rationale was that since bundles didn't contain bookmarks, this gave a
sense of keeping bookmarks up-to-date like would happen with a
corresponding pull. However, since it only updated the current active
bookmark, and bare update already did that anyway, this is pretty
slim.

Notably, the corresponding test actually works better without this
feature.
unbundle: fix pyflakes warning about wc
revset: bookmark revset interprets 'literal:' prefix correctly (issue4329)
repoview: filter tags to non-existent nodes from blockers (issue4328)
run-tests: self-test on Windows needs binary streams
test-run-tests: filter pwd alias for Windows
run-tests: don't double lines on build failure output
test-run-tests: fix stdout/stderr io ordering
run-tests: fix some io ordering

backported from default
histedit: preserve initial author on fold (issue4296)

When the authorship of the changeset folded in does not match that of
the base changeset, we currently use the configured ui.username
instead. This is especially surprising when the user is not the author
of either of the changesets. In such cases, the resulting authorship
(the user's) is clearly incorrect. Even when the user is folding in a
patch they authored themselves, it's not clear whether they should
take over the authorship. Let's instead keep it simple and always
preserve the base changeset's authorship. This is also how
"git rebase -i" handles folding/squashing.
cmdutil: rename _makelogfilematcher to _makefollowlogfilematcher

We're going to add a _makenofollowlogfilematcher in an upcoming patch.
cmdutil: add a hook for making custom non-follow log file matchers

This will be used by largefiles (and basically only by largefiles) in an
upcoming patch.
largefiles: drop setting lfstatus in overridelog (issue4334)

lfstatus should only be True for operations where we want standins to be
printed out. We explicitly do not want that for historical operations like log.
Other historical operations like hg diff -r A -r B don't print out standins
either.

This is required to fix issue4334, but doesn't fix anything by itself. That's
why there aren't any tests accompanying this patch.
largefiles: in overridelog, use non-lf matcher for patch generation (issue4334)

This has actually been broken since at least Mercurial 2.8 -- hg log --patch
with largefiles only used to work when no largefiles existed. Rev 5809d62e7106
exposed this bug for all cases.
largefiles: don't override matchandpats for always matchers (issue4334)

This makes hg log --follow --patch work, since in cmdutil._makelogrevset we
use the non-follow matcher for hg log --follow --patch with no file arguments.
test-largefiles: add test for hg log --follow --patch with path

This was the one case for test-largefiles that was not broken.
test-run-tests: fix up slash/backslash on diff chunks for Windows