Yuya Nishihara <yuya@tcha.org> [Sun, 27 Dec 2015 13:08:51 +0900] rev 36248
hgweb: translate Abort in help command to 404 error
c3784e3c3e8d changed the exception type to be raised if unknowncmd=False.
Yuya Nishihara <yuya@tcha.org> [Mon, 08 Jan 2018 11:11:06 +0900] rev 36247
templatekw: add {reporoot} keyword
The "%b" in filename format string will be replaced with "{reporoot|basename}".
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Jan 2018 12:09:33 +0900] rev 36246
templatefilters: add dirname() filter
This is different from stripdir() in that the last component is always
removed.
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Jan 2018 11:21:25 +0900] rev 36245
templater: add function to help substituting patterns in template string
This will be used to rewrite a filename pattern to a template string.
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Jan 2018 11:04:53 +0900] rev 36244
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.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 18 Feb 2018 16:19:26 -0800] rev 36243
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.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 18 Feb 2018 10:00:34 -0800] rev 36242
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.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 18 Feb 2018 08:52:57 -0800] rev 36241
tests: port value-less unbundle capability test to test-push-http.t
This test is present in test-push-http-bundle1.t. Let's add it to
test-push-http.t to further unify the tests.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 18 Feb 2018 08:49:18 -0800] rev 36240
tests: add phase testing to test-push-http-bundle1.t
test-push-http.t and test-push-http-bundle1.t were initially copies.
Now that we have support for inline test variants, we can combine them.
One of the variances between the tests is testing of phase moving.
We add the missing code to test-push-http-bundle1.t.
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Jan 2018 11:26:16 +0900] rev 36239
cmdutil: narrow scope of KeyError in makefilename()
It seemed too broad to catch a standard Python exception.
Augie Fackler <augie@google.com> [Wed, 14 Feb 2018 21:34:12 -0500] rev 36238
node: make bin() be a wrapper instead of just an alias
This includes a full backout of
59affe7e and
30d0cb27. Per the review
of the former, we'd rather adapt the API to behave like it used to (at
least for now), and take a second run at it if it shows up in our
performance numbers. I ran perfrevlogindex with and without this
change and it didn't make a measurable difference, so maybe it's fine
(despite my intuition to the contrary).
Differential Revision: https://phab.mercurial-scm.org/D2279
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Feb 2018 11:30:18 -0800] rev 36237
tests: actually check that HGDEMANDIMPORT=disable disables demandimport
At the point in the test where we were checking that the 'node' got
eagerly loaded, it had already been loaded (via the pvec module), so
our check wasn't doing anything (i.e. the test would pass even if you
removed the line that set HGDEMANDIMPORT=disable). Let's move this
test earlier so it tests what it was meant to test.
Differential Revision: https://phab.mercurial-scm.org/D2286
Kyle Lippincott <spectral@google.com> [Thu, 04 Jan 2018 16:29:07 -0800] rev 36236
debugcommands: print out the editor that was searched for (post shlexsplit)
A user was in #mercurial and had the following settings in their hgrc:
[ui]
editor = C:\home\npp\notepad++.exe -multiInst -nosession
After shlexsplit, the first argument was mangled into C:homenppnotepad++.exe,
which was quite unlikely to exist. It took many back-and-forths to identify
that adding " characters around the exe would fix the issue; we were thinking
that it's because something was incorrectly *not* splitting and adding/moving
the " characters fixed the split boundaries, but when testing afterward it
appears that it's just mangled.
I considered adding an informational if pycompat.iswindows and \ in the string
about this issue, but was worried that might have too many false positives and
did not do so at this time.
Differential Revision: https://phab.mercurial-scm.org/D1808
Augie Fackler <augie@google.com> [Fri, 16 Feb 2018 17:24:31 -0500] rev 36235
merge with stable
Jun Wu <quark@fb.com> [Fri, 16 Feb 2018 13:25:39 -0800] rev 36234
date: fix parsing months
Thanks nemo for discovering this on #mercurial IRC channel.
Test Plan:
Add a test. It fails before this patch:
```
+ hg: parse error: invalid date: 'Feb 2018'
+ hg: parse error: invalid date: 'Apr 2018'
+ hg: parse error: invalid date: 'Jun 2018'
+ hg: parse error: invalid date: 'Sep 2018'
+ hg: parse error: invalid date: 'Nov 2018'
```
Differential Revision: https://phab.mercurial-scm.org/D2289
Anton Shestakov <av6@dwimlabs.net> [Thu, 15 Feb 2018 21:14:57 +0800] rev 36233
hgweb: show dates recorded in obsolescence markers
Dates of operations that obsolete commits are also important enough to be
shown, but maybe not as important as original commit dates, that and also for
brevity is why they are wrapped in a <span> with only "age" class. Provided
that JS is enabled, such elements only show age (e.g. "3 months ago"), and the
exact date is visible in a tooltip. Commits dates, on the other hand, show both
date and age (the latter in parenthesis).
Example result for
f1a0933ce59e from hg-committed:
obsolete: pruned by Yuya Nishihara <yuya@tcha.org> 13 days ago
Anton Shestakov <av6@dwimlabs.net> [Thu, 15 Feb 2018 21:05:31 +0800] rev 36232
gitweb: make span.age CSS selector more specific
This set of CSS properties is only used on /changelog page to make age elements
float to the left and be fixed in size, but span.a is too broad of a selector,
because we don't want to apply these properties to all <span> elements that
have age class.
Augie Fackler <augie@google.com> [Thu, 15 Feb 2018 17:30:43 -0500] rev 36231
wireprotoserver: return to using iscmd() method
This was teased out in part so remotefilelog could disable an old
protocol method over http. It got dropped accidentally in the recent
refactor, but the code was all still present so it's easy to support
for now.
I think once we land remotefilelog, we should probably inline this
function.
Differential Revision: https://phab.mercurial-scm.org/D2285
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 17:23:58 -0800] rev 36230
githelp: cast commands to bytes
This is more compatible with Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2165
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Feb 2018 17:43:33 +0530] rev 36229
py3: use util.forcebytestr instead of str for converting errors to bytes
Differential Revision: https://phab.mercurial-scm.org/D2269
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Feb 2018 16:37:46 +0530] rev 36228
py3: use pycompat.bytestr to convert str to bytes
Differential Revision: https://phab.mercurial-scm.org/D2261
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 10:41:00 -0500] rev 36227
mpatch: allow clang-format oversight
Differential Revision: https://phab.mercurial-scm.org/D2183
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 10:39:46 -0500] rev 36226
base85: allow clang-format oversight
Differential Revision: https://phab.mercurial-scm.org/D2182
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 10:38:11 -0500] rev 36225
charencode: allow clang-format oversight
Nice and easy.
Differential Revision: https://phab.mercurial-scm.org/D2181
Augie Fackler <augie@google.com> [Wed, 14 Feb 2018 21:12:48 -0500] rev 36224
formatting: enforce system headers before local headers
Differential Revision: https://phab.mercurial-scm.org/D2275
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:20:20 -0800] rev 36223
wireprotoserver: add version to HTTP protocol name (API)
This matches what we did for the SSH protocol handler in
ac33dc94e1d5.
.. api::
HTTP protocol handlers now advertises its internal name as
``http-v1`` instead of ``http``.
Differential Revision: https://phab.mercurial-scm.org/D2219
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:19:51 -0800] rev 36222
wireprotoserver: rename webproto to httpv1protocolhandler
This matches our naming convention for the SSH server's protocol
handler.
Differential Revision: https://phab.mercurial-scm.org/D2218
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:16:52 -0800] rev 36221
wireproto: improve docstring for "hello"
Differential Revision: https://phab.mercurial-scm.org/D2217
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:14:29 -0800] rev 36220
httppeer: remove httpspeer
All it did was verify at construction time that Mercurial supports
TLS. instance() is what's used to construct peer instances. So
we can just inline this check into that function and do away with
the type variant.
Differential Revision: https://phab.mercurial-scm.org/D2216
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:10:58 -0800] rev 36219
httppeer: remove redundant code to fetch capabilities
_fetchcaps() is called by httppeer.instance(), which is the only
instantiator of httppeer. Since _fetchcaps() always sets self._caps
and since
197d10e157ce removed the fallback for cases where the
remote doesn't support capabilities, we can remove some dead
code from httppeer.capabilities().
Differential Revision: https://phab.mercurial-scm.org/D2215