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
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
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
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
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.
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
githelp: cast commands to bytes
This is more compatible with Python 3.
Differential Revision: https://phab.mercurial-scm.org/D2165
py3: use util.forcebytestr instead of str for converting errors to bytes
Differential Revision: https://phab.mercurial-scm.org/D2269
py3: use pycompat.bytestr to convert str to bytes
Differential Revision: https://phab.mercurial-scm.org/D2261