Thu, 04 Jan 2018 16:29:07 -0800 debugcommands: print out the editor that was searched for (post shlexsplit)
Kyle Lippincott <spectral@google.com> [Thu, 04 Jan 2018 16:29:07 -0800] rev 36273
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
Fri, 16 Feb 2018 17:24:31 -0500 merge with stable
Augie Fackler <augie@google.com> [Fri, 16 Feb 2018 17:24:31 -0500] rev 36272
merge with stable
Thu, 15 Feb 2018 21:14:57 +0800 hgweb: show dates recorded in obsolescence markers
Anton Shestakov <av6@dwimlabs.net> [Thu, 15 Feb 2018 21:14:57 +0800] rev 36271
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
Thu, 15 Feb 2018 21:05:31 +0800 gitweb: make span.age CSS selector more specific
Anton Shestakov <av6@dwimlabs.net> [Thu, 15 Feb 2018 21:05:31 +0800] rev 36270
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.
Thu, 15 Feb 2018 17:30:43 -0500 wireprotoserver: return to using iscmd() method
Augie Fackler <augie@google.com> [Thu, 15 Feb 2018 17:30:43 -0500] rev 36269
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
Sun, 11 Feb 2018 17:23:58 -0800 githelp: cast commands to bytes
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 11 Feb 2018 17:23:58 -0800] rev 36268
githelp: cast commands to bytes This is more compatible with Python 3. Differential Revision: https://phab.mercurial-scm.org/D2165
Wed, 14 Feb 2018 17:43:33 +0530 py3: use util.forcebytestr instead of str for converting errors to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Feb 2018 17:43:33 +0530] rev 36267
py3: use util.forcebytestr instead of str for converting errors to bytes Differential Revision: https://phab.mercurial-scm.org/D2269
Wed, 14 Feb 2018 16:37:46 +0530 py3: use pycompat.bytestr to convert str to bytes
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Feb 2018 16:37:46 +0530] rev 36266
py3: use pycompat.bytestr to convert str to bytes Differential Revision: https://phab.mercurial-scm.org/D2261
Mon, 12 Feb 2018 10:41:00 -0500 mpatch: allow clang-format oversight
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 10:41:00 -0500] rev 36265
mpatch: allow clang-format oversight Differential Revision: https://phab.mercurial-scm.org/D2183
Mon, 12 Feb 2018 10:39:46 -0500 base85: allow clang-format oversight
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 10:39:46 -0500] rev 36264
base85: allow clang-format oversight Differential Revision: https://phab.mercurial-scm.org/D2182
Mon, 12 Feb 2018 10:38:11 -0500 charencode: allow clang-format oversight
Augie Fackler <augie@google.com> [Mon, 12 Feb 2018 10:38:11 -0500] rev 36263
charencode: allow clang-format oversight Nice and easy. Differential Revision: https://phab.mercurial-scm.org/D2181
Wed, 14 Feb 2018 21:12:48 -0500 formatting: enforce system headers before local headers
Augie Fackler <augie@google.com> [Wed, 14 Feb 2018 21:12:48 -0500] rev 36262
formatting: enforce system headers before local headers Differential Revision: https://phab.mercurial-scm.org/D2275
Mon, 12 Feb 2018 17:20:20 -0800 wireprotoserver: add version to HTTP protocol name (API)
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:20:20 -0800] rev 36261
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
Mon, 12 Feb 2018 17:19:51 -0800 wireprotoserver: rename webproto to httpv1protocolhandler
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:19:51 -0800] rev 36260
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
Mon, 12 Feb 2018 17:16:52 -0800 wireproto: improve docstring for "hello"
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:16:52 -0800] rev 36259
wireproto: improve docstring for "hello" Differential Revision: https://phab.mercurial-scm.org/D2217
Mon, 12 Feb 2018 17:14:29 -0800 httppeer: remove httpspeer
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:14:29 -0800] rev 36258
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
Mon, 12 Feb 2018 17:10:58 -0800 httppeer: remove redundant code to fetch capabilities
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 17:10:58 -0800] rev 36257
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
Thu, 01 Feb 2018 19:32:42 -0800 httppeer: change logic around argument handling
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 01 Feb 2018 19:32:42 -0800] rev 36256
httppeer: change logic around argument handling The code to process arguments only makes sense if there are arguments. So change an "else" to "elif args", remove an "if" that isn't necessary, and add some docs for good measure. Differential Revision: https://phab.mercurial-scm.org/D2214
Mon, 12 Feb 2018 16:35:06 -0800 tests: test using both versions of SSH protocol
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 16:35:06 -0800] rev 36255
tests: test using both versions of SSH protocol Now that the version 2 of the SSH protocol is usable in core, we can start actively testing it more widely outside of low-level protocol tests. We add #testcases variants to a handful of tests so we exercise both version 1 and version 2 of the SSH protocol when testing. This will allow us to more easily find regressions and variances as protocol 2 is developed. It will also make it easier to continue testing with protocol version 1 once version 2 is enabled by default. There are a handful of tests using ssh:// that should also gain test variances. One - test-push-race.t - already has a #testcases. This would require combinatorial cases. I didn't want to go down that rabbit hole, so that test is unchanged. Thinking aloud, there is probably an opportunity to automatically run tests with multiple server/protocol implementations. Ideally any test that performed server interaction would run with all supported server implementations and protocols so we could find variances between servers and protocols. But this has been a long-standing issue with our test harness. I don't think it is an easily solved problem. But it would be nice... Differential Revision: https://phab.mercurial-scm.org/D2206
Thu, 08 Feb 2018 11:39:23 -0800 sshpeer: log remote capabilities after protocol upgrade
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 08 Feb 2018 11:39:23 -0800] rev 36254
sshpeer: log remote capabilities after protocol upgrade This helps reduce variance with version 1 and will help prevent test output divergence as we start testing protocol version 2 more widely. Differential Revision: https://phab.mercurial-scm.org/D2205
Mon, 12 Feb 2018 16:33:54 -0800 wireprotoserver: handle SSH protocol version 2 upgrade requests
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 12 Feb 2018 16:33:54 -0800] rev 36253
wireprotoserver: handle SSH protocol version 2 upgrade requests This commit teaches the SSH server to recognize the "upgrade" request line that clients send when they wish to switch the channel to version 2 of the SSH protocol. Servers don't honor upgrade requests unless an experimental config option is set. Since the built-in server now supports upgrade requests, our test server to test the handshake has been deleted. Existing tests use the built-in server and their output doesn't change. The upgrade is handled in our state machine. The end result is a bit wonky, as the server transitions back to version 1 state immediately after upgrading. But this will change as soon as version 2 has an actual protocol that differs from version 1. Tests demonstrating that the new server is a bit more strict about the upgrade handshake have been added. Differential Revision: https://phab.mercurial-scm.org/D2204
Thu, 08 Feb 2018 15:09:59 -0800 wireprotoserver: move SSH server operation to a standalone function
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 08 Feb 2018 15:09:59 -0800] rev 36252
wireprotoserver: move SSH server operation to a standalone function The server-side processing logic will soon get a bit more complicated in order to handle protocol switches. We will use a state machine to help make the transitions clearer. To prepare for this, we move SSH server operation into a standalone function. We structure it as a very simple state machine. It only has two states for now, with one state containing the bulk of the logic. But things will evolve shortly. Differential Revision: https://phab.mercurial-scm.org/D2203
Wed, 14 Feb 2018 17:35:13 -0700 py3: stringify integer with %d instead of bytes()
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Feb 2018 17:35:13 -0700] rev 36251
py3: stringify integer with %d instead of bytes() The unbundle wire protocol command now returns a properly formatted reply in Python 3. Differential Revision: https://phab.mercurial-scm.org/D2274
Wed, 14 Feb 2018 17:23:26 -0700 py3: add b'' to test-sshserver.py
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Feb 2018 17:23:26 -0700] rev 36250
py3: add b'' to test-sshserver.py # skip-blame because adding b'' prefixes Differential Revision: https://phab.mercurial-scm.org/D2273
Wed, 14 Feb 2018 17:21:42 -0700 py3: add b'' to config options in test extension
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Feb 2018 17:21:42 -0700] rev 36249
py3: add b'' to config options in test extension # skip-blame because just b'' prefixes Differential Revision: https://phab.mercurial-scm.org/D2272
Tue, 13 Feb 2018 14:15:29 -0800 manifest: add support for including directories outside narrowspec
Martin von Zweigbergk <martinvonz@google.com> [Tue, 13 Feb 2018 14:15:29 -0800] rev 36248
manifest: add support for including directories outside narrowspec When using tree manifests and the client doesn't have a directory, we have two choices for what to do with "hg manifest" output: 1) ignore the directory, and 2) include the directory (not files within it). For "hg files", we decided to ignore the directories (and files) outside the narrowspec. If we choose to not include directories outside the narrowspec, then I think we should also make sure we don't include files outside the narrowspec. I also think we should add --outside-narrow flag (or other name). Thus, whichever way we go, I think we should have a way of displaying paths (files or directories) outside the narrowspec. For that we'll need to handle the 't' flag that narrowhg uses, and that's what this patch adds support for. Differential Revision: https://phab.mercurial-scm.org/D2235
Tue, 13 Feb 2018 13:50:24 -0800 narrow: restrict manifest iteration by using manifest.walk(matcher)
Martin von Zweigbergk <martinvonz@google.com> [Tue, 13 Feb 2018 13:50:24 -0800] rev 36247
narrow: restrict manifest iteration by using manifest.walk(matcher) This is only for root nodes, so it shouldn't really matter (they're rarely huge), but seems cleaner. Differential Revision: https://phab.mercurial-scm.org/D2234
Tue, 13 Feb 2018 13:16:06 -0800 narrow: only diff manifest part within narrowspec when generating changegroup
Martin von Zweigbergk <martinvonz@google.com> [Tue, 13 Feb 2018 13:16:06 -0800] rev 36246
narrow: only diff manifest part within narrowspec when generating changegroup Since 959ebff3505a (manifest: add match argument to diff and filesnotin, 2017-03-07), we have a more efficient way of diffing manifests while applying a matcher. Let's use that while generating narrowed changegroups, so we avoid diffing parts of the manifest that don't match the narrowspec. Differential Revision: https://phab.mercurial-scm.org/D2233
Sat, 06 Jan 2018 17:44:57 +0900 cmdutil: build "%m" (desc|firstline) in makefilename()
Yuya Nishihara <yuya@tcha.org> [Sat, 06 Jan 2018 17:44:57 +0900] rev 36245
cmdutil: build "%m" (desc|firstline) in makefilename()
Thu, 02 Apr 2015 23:37:07 +0900 cmdutil: rewrite makefilename() to use ctx methods
Yuya Nishihara <yuya@tcha.org> [Thu, 02 Apr 2015 23:37:07 +0900] rev 36244
cmdutil: rewrite makefilename() to use ctx methods
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip