help: list deprecated and experimental extensions if --verbose
This is common in the other help topics.
hgweb: translate Abort in help command to 404 error
c3784e3c3e8d changed the exception type to be raised if unknowncmd=False.
templatekw: add {reporoot} keyword
The "%b" in filename format string will be replaced with "{reporoot|basename}".
templatefilters: add dirname() filter
This is different from stripdir() in that the last component is always
removed.
templater: add function to help substituting patterns in template string
This will be used to rewrite a filename pattern to a template string.
templater: extract function scanning template string
This provides a tokenizer-level view of template fragments, and will be
used to substitute patterns in outermost 'string' tokens.
tests: expand test coverage for updating phases
Consolidating the tests demonstrated that there are behavior
differences when pushing phases between bundle1 and bundle2.
A reason for this is the behavior of legacy pushes where the client
queries the state of phases and then conditionally updates phases
after an "unbundle" is processed. This behavior is expected.
The tests were incomplete because they only tested the case of a
publishing repo. In this commit, we add a variant for a non-publishing
repo. We still see some differences between the legacy and bundle2
exchanges. But they are less pronounced.
The behavior of not firing a pushkey hook when phases are updated as
part of changegroup application feels weird to me. I'm not sure if
this is a feature or a bug. By the time the "pushkey" or "phases"
bundle2 part is applied, the phases have already been moved on
a publishing repository. We fire the "pushkey" hook regardless,
even though it would be a no-op. This is the part that feels the
most buggy.
tests: consolidate test-push-http.t and test-push-http-bundle1.t
These tests were initially copies of each other. Now that we have
#testcases support in .t tests, we can consolidate them.
The changes to test-push-http.t reflect the differences between that
file and test-push-http-bundle1.t.
The variances in phases push behavior are the biggest differences.
The test will be updated in a subsequent commit to make the differences
more clear and to expand test coverage. For now, let's just port
the differences verbatim to get the tests consolidated.