Fri, 13 May 2016 03:28:44 +0530 py3: make tests/f use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:28:44 +0530] rev 29160
py3: make tests/f use absolute_import
Fri, 13 May 2016 03:26:28 +0530 py3: make tests/dummyssh use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:26:28 +0530] rev 29159
py3: make tests/dummyssh use absolute_import
Fri, 13 May 2016 03:18:04 +0530 py3: make raise statement python3 compatible
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:18:04 +0530] rev 29158
py3: make raise statement python3 compatible In python3 raise error, message has been changed to raise error(message) In additional to that nodes.SkipNode is changed to nodes.SkipNode() so that it creates an instance directly.
Mon, 16 May 2016 17:21:25 -0500 Added signature for changeset aaabed77791a stable
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2016 17:21:25 -0500] rev 29157
Added signature for changeset aaabed77791a
Mon, 16 May 2016 17:21:19 -0500 Added tag 3.8.2 for changeset aaabed77791a stable
Matt Mackall <mpm@selenic.com> [Mon, 16 May 2016 17:21:19 -0500] rev 29156
Added tag 3.8.2 for changeset aaabed77791a
Fri, 13 May 2016 07:19:59 +0900 help: search section of help topic by translated section name correctly stable 3.8.2
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 13 May 2016 07:19:59 +0900] rev 29155
help: search section of help topic by translated section name correctly Before this patch, "hg help topic.section" might show unexpected section of help topic in some encoding. It applies str.lower() instead of encoding.lower(str) on translated message to search section case-insensitively, but some encoding uses 0x41(A) - 0x5a(Z) as the second or later byte of multi-byte character (for example, ja_JP.cp932), and str.lower() causes unexpected result. To search section of help topic by translated section name correctly, this patch replaces str.lower() by encoding.lower(str) for both query string (in commands.help()) and translated help text (in minirst.getsections()).
Fri, 13 May 2016 07:19:59 +0900 patch: show lower-ed translated message correctly stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 13 May 2016 07:19:59 +0900] rev 29154
patch: show lower-ed translated message correctly Before this patch, patch.filterpatch() shows meaningless translation of help message for chunk selection in some encoding. It applies str.lower() instead of encoding.lower(str) on translated message, but some encoding uses 0x41(A) - 0x5a(Z) as the second or later byte of multi-byte character (for example, ja_JP.cp932), and str.lower() causes unexpected result. To show lower-ed translated message correctly, this patch replaces str.lower() by encoding.lower(str).
Fri, 13 May 2016 03:09:30 +0530 py3: make i18n/posplit use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:09:30 +0530] rev 29153
py3: make i18n/posplit use print_function
Fri, 13 May 2016 03:08:46 +0530 py3: make i18n/posplit use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 May 2016 03:08:46 +0530] rev 29152
py3: make i18n/posplit use absolute_import
Thu, 12 May 2016 09:39:14 -0400 wireproto: optimize handling of large batch responses
Augie Fackler <augie@google.com> [Thu, 12 May 2016 09:39:14 -0400] rev 29151
wireproto: optimize handling of large batch responses Now that batch can be used by remotefilelog, the quadratic string copying this was doing was actually disastrous. In my local testing, fetching a 56 meg file used to take 3 minutes, and now takes only a few seconds.
Thu, 05 May 2016 19:32:51 +0200 cleanup: replace False identity testing with an explicit token object
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 19:32:51 +0200] rev 29150
cleanup: replace False identity testing with an explicit token object The recommended way to check default value (when None is not as option) is a token object. Identity testing to integer is less explicit and not guaranteed to work in all implementations.
Wed, 11 May 2016 09:31:47 +0200 devel: officially deprecate dirstate.write without transaction argument
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:31:47 +0200] rev 29149
devel: officially deprecate dirstate.write without transaction argument When we introduce the develwarning, we did not had an official deprecation API and infrastructure. We can now officially deprecate the old way with a version deadline.
Wed, 11 May 2016 09:31:47 +0200 devel: officially deprecate update without destination
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:31:47 +0200] rev 29148
devel: officially deprecate update without destination When we introduce the develwarning, we did not had an official deprecation API and infrastructure. We can now officially deprecate the old way with a version deadline.
Wed, 11 May 2016 09:34:59 +0200 devel: fix a typo in a deprecation warning
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:34:59 +0200] rev 29147
devel: fix a typo in a deprecation warning Credit goes to Sean Farley for spotting it.
Wed, 11 May 2016 09:31:47 +0200 devel: officially deprecate old style revset
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 09:31:47 +0200] rev 29146
devel: officially deprecate old style revset When we introduce the develwarning, we did not had an official deprecation API and infrastructure. We can now officially deprecate the old way with a version deadline.
Wed, 11 May 2016 01:46:11 +0000 check-code: handle py3 open divergence
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:46:11 +0000] rev 29145
check-code: handle py3 open divergence open() really wants an encoding attribute
Wed, 11 May 2016 01:44:39 +0000 check-code: switch to opener
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:44:39 +0000] rev 29144
check-code: switch to opener
Wed, 11 May 2016 01:39:07 +0000 check-code: handle range/xrange divergence
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:39:07 +0000] rev 29143
check-code: handle range/xrange divergence
Wed, 11 May 2016 01:56:08 +0000 check-code: fix py3 complaint about \NNN being invalid unicode
timeless <timeless@mozdev.org> [Wed, 11 May 2016 01:56:08 +0000] rev 29142
check-code: fix py3 complaint about \NNN being invalid unicode
Thu, 05 May 2016 09:12:26 +0000 hghave: switch from iteritems to items
timeless <timeless@mozdev.org> [Thu, 05 May 2016 09:12:26 +0000] rev 29141
hghave: switch from iteritems to items With this, test-hghave.t passes on python 3. Four features fail because mercurial still is not py3 safe: absimport cacheable hardlink defaultcacerts But that will be resolved automatically eventually.
Thu, 05 May 2016 09:07:01 +0000 hghave: matchoutput needs to use bytes for regexp
timeless <timeless@mozdev.org> [Thu, 05 May 2016 09:07:01 +0000] rev 29140
hghave: matchoutput needs to use bytes for regexp file output is bytes in py3, so we need each regexp to be bytes
Tue, 03 May 2016 12:36:44 +0900 revset: make dagrange preserve order of input set
Yuya Nishihara <yuya@tcha.org> [Tue, 03 May 2016 12:36:44 +0900] rev 29139
revset: make dagrange preserve order of input set Unlike range, dagrange has no inverted range (such as '10:0'). So there should be no practical reason to keep dagrange as a function that forces its own ordering. No performance regression is spotted in contrib/base-revsets.txt.
Thu, 05 May 2016 09:26:09 +0000 tests: mark test-check-pyflakes.t as requiring hg1.0+
timeless <timeless@mozdev.org> [Thu, 05 May 2016 09:26:09 +0000] rev 29138
tests: mark test-check-pyflakes.t as requiring hg1.0+ hg does not yet run with py3, so if you try: ./run-tests.py --local test-check-pyflakes.t ... it will try to run the local hg, which does not work and thus, hg locate will return no output to stdout (and stderr is sent to /dev/null). If you do: ./run-tests.py --with-hg=~/bin/hg test-check-pyflakes.t Then it should work, if your hg is new enough to have a locate command (hg0.6 does not have locate).
Thu, 05 May 2016 17:06:54 -0700 dirstate: make backup methods public
Mateusz Kwapich <mitrandir@fb.com> [Thu, 05 May 2016 17:06:54 -0700] rev 29137
dirstate: make backup methods public They are called from outside of dirstate anyway and I want the localrepo to use them too.
Fri, 06 May 2016 08:45:56 -0500 check-code: add a rule banning `env -u`
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 06 May 2016 08:45:56 -0500] rev 29136
check-code: add a rule banning `env -u`
Fri, 06 May 2016 08:41:24 -0500 subrepo: use unset instead of env -u to fix test on BSDs (issue5229)
Kevin Bullock <kbullock+mercurial@ringworld.org> [Fri, 06 May 2016 08:41:24 -0500] rev 29135
subrepo: use unset instead of env -u to fix test on BSDs (issue5229)
Wed, 04 May 2016 20:11:59 +0100 graphmod: partial edge styling
Martijn Pieters <mjpieters@fb.com> [Wed, 04 May 2016 20:11:59 +0100] rev 29134
graphmod: partial edge styling Allow for a style to only apply to the last N lines (for positive N) or everything but the first N lines (for negative N) of the section along the current node. This allows for more subtle grandparent styling. So from the default: $ hg log -G ... o Lorem ipsum dolor sit :\ amet, consectetur : : adipiscing elit, sed : : do eiusmod tempor : : o : incididunt ut labore | : et dolore magna | : aliqua. Ut enim ad | : minim veniam, quis |/ o nostrud exercitation : ullamco laboris nisi : ut aliquip ex ea : commodo consequat. : o Duis aute irure dolor | in reprehenderit in ~ voluptate velit esse cillum dolore eu to $ hg log -G --config "experimental.graphstyle.grandparent=2." ... o Lorem ipsum dolor sit |\ amet, consectetur | | adipiscing elit, sed . . do eiusmod tempor . . o | incididunt ut labore | | et dolore magna | | aliqua. Ut enim ad | | minim veniam, quis |/ o nostrud exercitation | ullamco laboris nisi | ut aliquip ex ea . commodo consequat. . o Duis aute irure dolor | in reprehenderit in ~ voluptate velit esse cillum dolore eu or $ hg log -G --config "experimental.graphstyle.grandparent=1:" ... o Lorem ipsum dolor sit |\ amet, consectetur | | adipiscing elit, sed | | do eiusmod tempor : : o | incididunt ut labore | | et dolore magna | | aliqua. Ut enim ad | | minim veniam, quis |/ o nostrud exercitation | ullamco laboris nisi | ut aliquip ex ea | commodo consequat. : o Duis aute irure dolor | in reprehenderit in ~ voluptate velit esse cillum dolore eu or $ hg log -G --config "experimental.graphstyle.grandparent=-2!" ... o Lorem ipsum dolor sit |\ amet, consectetur ! ! adipiscing elit, sed ! ! do eiusmod tempor ! ! o | incididunt ut labore | | et dolore magna | | aliqua. Ut enim ad | | minim veniam, quis |/ o nostrud exercitation | ullamco laboris nisi ! ut aliquip ex ea ! commodo consequat. ! o Duis aute irure dolor | in reprehenderit in ~ voluptate velit esse cillum dolore eu
Sun, 24 Apr 2016 14:21:38 +0300 pure: write a really lazy version of pure indexObject
Maciej Fijalkowski <fijall@gmail.com> [Sun, 24 Apr 2016 14:21:38 +0300] rev 29133
pure: write a really lazy version of pure indexObject On PyPy this version performs reasonably well compared to C version. Example command is "hg id" which gets faster, depending on details of your operating system and hard drive (it's bottlenecked on stat mostly) There is potential for improvements by storing extra as a condensed struct too.
Sat, 07 May 2016 14:12:23 +0100 dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com> [Sat, 07 May 2016 14:12:23 +0100] rev 29132
dispatch: always load extensions before running shell aliases (issue5230) Before this patch, we may or may not load extensions for shell aliases depending on whether the command is abbreviated or not. Loading extensions may have useful side effects to shell aliases. For example, the pager extension does not work for shell aliases. This patch removes the code checking shell aliases before loading extensions to give the user a more consistent experience. It may hurt performance for shell aliases a bit without chg but the correctness seems worth it. It will also make the behavior consistent with chg since chg will always load all extensions before running commands.
Mon, 09 May 2016 21:13:50 -0400 httpclient: update to upstream revision 2995635573d2
Augie Fackler <augie@google.com> [Mon, 09 May 2016 21:13:50 -0400] rev 29131
httpclient: update to upstream revision 2995635573d2 This is mostly Python 3 compat work thanks to timeless.
Fri, 06 May 2016 19:52:21 +0800 crecord: call prevsibling() and nextsibling() directly
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 May 2016 19:52:21 +0800] rev 29130
crecord: call prevsibling() and nextsibling() directly The 3 classes for items used in crecord (uiheader, uihunk, uihunkline) all have prevsibling() and nextsibling() methods. The two methods are used to get the previous/next item of the same type of the same parent element as the current one: when `a` is a uihunkline instance, a.nextsibling() returns the next line in this hunk (or None, if `a` is the last line). There are also two similar methods: previtem() and nextitem(). When called with constrainlevel=True (the default) they simply returned the result of prevsibling()/nextsibling(). Only when called with constrainlevel=False they did something different: they returned previous/next item regardless of its type (so if `a` is the last line in a hunk, a.nextitem(constrainlevel=False) could return the next hunk or the next file -- something that is not a line). Let's simplify this logic and make code call -sibling() methods when only siblings are needed and -item() methods when any item would do, and then remove the constrainlevel argument from previtem() and nextitem().
Thu, 28 Apr 2016 10:37:47 -0400 dispatch: add fail-* family of hooks
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 28 Apr 2016 10:37:47 -0400] rev 29129
dispatch: add fail-* family of hooks The post-* family of hooks will not run in case a command fails (i.e. raises an exception). This makes it inconvenient to hook into events such as doing something in case of a failed push. We catch all exceptions to run the failure hook. I am not sure if this is too aggressive, but tests apparently pass.
Fri, 06 May 2016 22:21:32 +0530 py3: make hgext/rebase.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 22:21:32 +0530] rev 29128
py3: make hgext/rebase.py use absolute_import
Fri, 06 May 2016 21:54:31 +0530 py3: make hgext/mq.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 21:54:31 +0530] rev 29127
py3: make hgext/mq.py use absolute_import
Fri, 06 May 2016 21:52:26 +0530 py3: make hgext/hisedit.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 21:52:26 +0530] rev 29126
py3: make hgext/hisedit.py use absolute_import
Fri, 06 May 2016 21:50:40 +0530 py3: make hgext/hgk.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 21:50:40 +0530] rev 29125
py3: make hgext/hgk.py use absolute_import
Fri, 06 May 2016 21:46:17 +0530 py3: make hgext/gpg.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 21:46:17 +0530] rev 29124
py3: make hgext/gpg.py use absolute_import
Fri, 06 May 2016 21:48:17 +0530 py3: make hgext/graphlog.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 21:48:17 +0530] rev 29123
py3: make hgext/graphlog.py use absolute_import
Sat, 07 May 2016 19:59:30 +0200 import-checker: recognize relative imports from parents of current package
liscju <piotr.listkiewicz@gmail.com> [Sat, 07 May 2016 19:59:30 +0200] rev 29122
import-checker: recognize relative imports from parents of current package So far fromlocal recognizes relative imports of the form: from . import D from .. import E It wasn't prepared for recognizing relative imports like: from ..F import G The bug was not found so far because all relative imports starting from the parent was in the list of allowsymbolicimports like: from ..i18n import from ..node import
Fri, 06 May 2016 21:44:41 +0530 py3: make hgext/fetch.py use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 21:44:41 +0530] rev 29121
py3: make hgext/fetch.py use absolute_import
Fri, 06 May 2016 21:41:25 +0530 tests: test-check-py3-compat.t output updated
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 May 2016 21:41:25 +0530] rev 29120
tests: test-check-py3-compat.t output updated The test output was not updated as the lower section of the test updates with python3.5, so it might be the case that people have updated the modules but the test was left as it was. So this patch updates the test output.
Mon, 02 May 2016 12:09:00 +0900 revset: factor out public optimize() function from recursion
Yuya Nishihara <yuya@tcha.org> [Mon, 02 May 2016 12:09:00 +0900] rev 29119
revset: factor out public optimize() function from recursion New optimize() hides internal arguments and return values. This makes it easy to add more parameters and return values to _optimize().
Mon, 02 May 2016 12:47:09 +0900 revset: introduce temporary variables in optimize() where they look better
Yuya Nishihara <yuya@tcha.org> [Mon, 02 May 2016 12:47:09 +0900] rev 29118
revset: introduce temporary variables in optimize() where they look better
Mon, 02 May 2016 11:50:48 +0900 revset: construct arguments of only() against matched tree
Yuya Nishihara <yuya@tcha.org> [Mon, 02 May 2016 11:50:48 +0900] rev 29117
revset: construct arguments of only() against matched tree Since _isonly() knows the structure of 'revs' and 'bases', it should be slightly easier to understand than destructuring 'ta' and 'tb'.
Mon, 02 May 2016 11:27:26 +0900 revset: unnest isonly() closure from optimize()
Yuya Nishihara <yuya@tcha.org> [Mon, 02 May 2016 11:27:26 +0900] rev 29116
revset: unnest isonly() closure from optimize() There were no variables to be captured.
Thu, 05 May 2016 00:46:31 -0700 sslutil: stop checking for web.cacerts=! (BC)
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:46:31 -0700] rev 29115
sslutil: stop checking for web.cacerts=! (BC) The previous patch stopped setting web.cacerts=! to indicate --insecure. That left user configs as the only source that could introduce web.cacerts=!. The practical impact of this patch is we no longer honor web.cacerts=! in configs. Instead, we always treat web.cacerts as a path. The patch is therefore technically BC. However, since I don't believe web.cacerts=! is documented, it should be safe to remove. a939f08fae9c (which introduced --insecure) has no indication that web.cacerts=! is anything but an implementation detail, reinforcing my belief it can be removed without major debate.
Thu, 05 May 2016 00:40:01 -0700 dispatch: stop setting web.cacerts=! to indicate --insecure
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:40:01 -0700] rev 29114
dispatch: stop setting web.cacerts=! to indicate --insecure Consumers needing to know if --insecure was used have already transitioned to using ui.insecureconnections. The previous patch removed the last meaningful consumer looking for web.cacerts=!.
Thu, 05 May 2016 00:38:18 -0700 sslutil: use CA loaded state to drive validation logic
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:38:18 -0700] rev 29113
sslutil: use CA loaded state to drive validation logic Until now, sslkwargs may set web.cacerts=! to indicate that system certs could not be found. This is really obtuse because sslkwargs effectively sets state on a global object which bypasses wrapsocket() and is later consulted by validator.__call__. This is madness. This patch introduces an attribute on the wrapped socket instance indicating whether system CAs were loaded. We can set this directly inside wrapsocket() because that function knows everything that sslkwargs() does - and more. With this attribute set on the socket, we refactor validator.__call__ to use it. Since we no longer have a need for setting web.cacerts=! in sslkwargs, we remove that. I think the new logic is much easier to understand and will enable behavior to be changed more easily.
Thu, 05 May 2016 00:37:28 -0700 sslutil: handle ui.insecureconnections in validator
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:37:28 -0700] rev 29112
sslutil: handle ui.insecureconnections in validator Right now, web.cacerts=! means one of two things: 1) Use of --insecure 2) No CAs could be found and were loaded (see sslkwargs) This isn't very obvious and makes changing behavior of these different scenarios independent of the other impossible. This patch changes the validator code to explicit handle the case of --insecure being used. As the inline comment indicates, there is room to possibly change messaging and logic here. For now, we are backwards compatible.
Thu, 05 May 2016 00:35:45 -0700 sslutil: check for ui.insecureconnections in sslkwargs
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:35:45 -0700] rev 29111
sslutil: check for ui.insecureconnections in sslkwargs The end result of this function is the same. We now have a more explicit return branch. We still keep the old code looking at web.cacerts=! a few lines below because we're still setting web.cacerts=! and need to react to the variable. This will be removed in an upcoming patch.
Thu, 05 May 2016 00:34:22 -0700 dispatch: set ui.insecureconnections when --insecure is used
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:34:22 -0700] rev 29110
dispatch: set ui.insecureconnections when --insecure is used
Thu, 05 May 2016 00:33:38 -0700 ui: add an instance flag to hold --insecure bit
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:33:38 -0700] rev 29109
ui: add an instance flag to hold --insecure bit Currently, when --insecure is used we set web.cacerts=! and socket validation takes this value into account. web.cacerts=! is not documented AFAICT and is purely an internal implementation detail. Let's be more explicit about what is going on by introducing a dedicated variable outside of the config values to track that --insecure is used.
Thu, 05 May 2016 00:32:43 -0700 sslutil: make sslkwargs code even more explicit
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:32:43 -0700] rev 29108
sslutil: make sslkwargs code even more explicit The ways in which this code can interact with socket wrapping and validation later are mind numbing. This patch helps make it even more clear. The end behavior should be identical.
Wed, 04 May 2016 23:38:34 -0700 sslutil: move code examining _canloaddefaultcerts out of _defaultcacerts
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 May 2016 23:38:34 -0700] rev 29107
sslutil: move code examining _canloaddefaultcerts out of _defaultcacerts Before, the return of _defaultcacerts() was 1 of 3 types. This was difficult to read. Make it return a path or None. We had to update hghave.py in the same patch because it was also looking at this internal function. I wasted dozens of minutes trying to figure out why tests were failing until I found the code in hghave.py...
Wed, 04 May 2016 23:01:49 -0700 sslutil: further refactor sslkwargs
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 04 May 2016 23:01:49 -0700] rev 29106
sslutil: further refactor sslkwargs The logic here and what happens with web.cacerts is mind numbing. Make the code even more explicit.
Thu, 05 May 2016 00:31:11 -0700 sslutil: document and slightly refactor sslkwargs
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 05 May 2016 00:31:11 -0700] rev 29105
sslutil: document and slightly refactor sslkwargs This will help me and any reviewers keep sane as this code is refactored.
Fri, 06 May 2016 11:31:29 -0400 localrepo: remove a couple of local type aliases
Augie Fackler <augie@google.com> [Fri, 06 May 2016 11:31:29 -0400] rev 29104
localrepo: remove a couple of local type aliases The local aliases are unused now, and were confusing mypy's type checker.
Fri, 06 May 2016 14:22:17 -0400 cmdutil: typo fix in comment
Augie Fackler <augie@google.com> [Fri, 06 May 2016 14:22:17 -0400] rev 29103
cmdutil: typo fix in comment
Thu, 05 May 2016 21:14:12 -0400 tests: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Thu, 05 May 2016 21:14:12 -0400] rev 29102
tests: add globs for Windows
Sat, 07 May 2016 14:51:32 +0100 chgserver: add [alias] to confighash
Jun Wu <quark@fb.com> [Sat, 07 May 2016 14:51:32 +0100] rev 29101
chgserver: add [alias] to confighash The [alias] config section affects a global state: commands.table. It's hard to trace whether an alias is added by a config option or an extension, and add/remove aliases in a safe way per chg request. It will hurt performance a bit if we clean the table and parse aliases every time. Therefore let's just add it to confighash. This will make chg pass test-pager.t.
Sun, 08 May 2016 10:43:41 +0200 devel: use the 'config' argument for the dirstate normalisation develwarn
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 08 May 2016 10:43:41 +0200] rev 29100
devel: use the 'config' argument for the dirstate normalisation develwarn
Sun, 08 May 2016 10:43:41 +0200 devel: use the new 'config' argument for the update develwarn
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 08 May 2016 10:43:41 +0200] rev 29099
devel: use the new 'config' argument for the update develwarn
Sun, 08 May 2016 10:43:41 +0200 devel: use the new 'config' argument for the revset develwarn
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 08 May 2016 10:43:41 +0200] rev 29098
devel: use the new 'config' argument for the revset develwarn
Sun, 08 May 2016 10:43:41 +0200 devel: use the new 'config' argument for the dirstate develwarn
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 08 May 2016 10:43:41 +0200] rev 29097
devel: use the new 'config' argument for the dirstate develwarn
Sun, 08 May 2016 10:43:41 +0200 devel: use the new 'config' argument of the develwarn in deprecwarn
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 08 May 2016 10:43:41 +0200] rev 29096
devel: use the new 'config' argument of the develwarn in deprecwarn Controling all deprecation warnings with the same config seems sensible. This mirror a fix (about missing gating) submitted for stable but with the new API.
Sun, 08 May 2016 10:43:41 +0200 develwarn: move config gating inside the develwarn function
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 08 May 2016 10:43:41 +0200] rev 29095
develwarn: move config gating inside the develwarn function The config gating is almost always the same and contributor tend to forget it. We move the logic inside the function. Call site will be updated in later changeset. We might make the sub config mandatory in the future (once all old call sites are gone).
Sun, 08 May 2016 22:28:09 -0400 help: fix the display for `hg help internals.revlogs` (issue5227) stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 08 May 2016 22:28:09 -0400] rev 29094
help: fix the display for `hg help internals.revlogs` (issue5227) It previously aborted saying the help section wasn't found. Credit to Yuya for figuring out the fix.
Fri, 06 May 2016 14:09:11 -0700 builddeb: add distroseries to tagged versions stable
Sean Farley <sean@farley.io> [Fri, 06 May 2016 14:09:11 -0700] rev 29093
builddeb: add distroseries to tagged versions This is needed so that launchpad and friends have a unique version number for each distroseries (trusty, wily, xenial, etc). It was discovered when trying to upload 3.8 to launchpad.
Sun, 01 May 2016 15:26:41 -0700 debian: forgot to make debian/rules executable in 6b95a623ec90 stable
Sean Farley <sean@farley.io> [Sun, 01 May 2016 15:26:41 -0700] rev 29092
debian: forgot to make debian/rules executable in 6b95a623ec90
Sat, 30 Apr 2016 21:21:34 -0700 debian: add wish to suggests stable
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 21:21:34 -0700] rev 29091
debian: add wish to suggests Debian maintainers already have this and lintian warns us about not listing 'wish' as a dependency or suggestion so this patch does indeed just that. The issue, by the way, is that we are shipping hgk (which is written in tcl/tk) so we should be good citizens and list wish (a meta package for tcl/tk) as a dependency.
Fri, 06 May 2016 23:03:41 -0700 hg-ssh: copy doc string to man page stable
Sean Farley <sean@farley.io> [Fri, 06 May 2016 23:03:41 -0700] rev 29090
hg-ssh: copy doc string to man page This corrects a warning from lintian that we're shipping an executable without a man page. Since there is a doc string in the text, let's use that for the man page.
Fri, 06 May 2016 17:53:06 -0500 progress: stop excessive clearing (issue4801) stable
Matt Mackall <mpm@selenic.com> [Fri, 06 May 2016 17:53:06 -0500] rev 29089
progress: stop excessive clearing (issue4801) The progress bar was being cleared on every write(), regardless of whether it was currently displayed. This could foul up the display of any writes that didn't include a linebreak. In particular, the win32 mode of the color extension was turning single prompt string writes into two writes, and the resulting clear/write/clear/write pattern was making the prompt invisible. We fix this by insisting that we have shown a progress bar and haven't just cleared it (setting lastprint to 0). Conveniently, the test suite already had instances of duplicate clears.. that are now cleared up.
Fri, 06 May 2016 23:57:56 +0100 chgserver: remove _clearenvaliases
Jun Wu <quark@fb.com> [Fri, 06 May 2016 23:57:56 +0100] rev 29088
chgserver: remove _clearenvaliases Since we expand environment variables in alias lazily, the _clearenvaliases hack is no longer necessary. This resolves an issue that a non-shell alias which has environment variables in its arguments and is set to use pager will not use pager running with chg.
Sat, 07 May 2016 00:16:58 +0100 dispatch: defer environment variable resolution in alias commands (BC)
Jun Wu <quark@fb.com> [Sat, 07 May 2016 00:16:58 +0100] rev 29087
dispatch: defer environment variable resolution in alias commands (BC) Before this patch, if there are environment variables in an alias command, they will be expanded immediately when we first see the alias. This will cause issues with chg, because environment variable updates will not propagate to expanded arguments. This patch makes "args" of "cmdalias" a property that will be calculated every time when accessed.
Tue, 03 May 2016 16:33:25 -0400 rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com> [Tue, 03 May 2016 16:33:25 -0400] rev 29086
rollback: add a config knob for entirely disabling the command This is of pretty high value for organizations that used to use p4 (as an example), since `p4 rollback` is what we call `hg backout`.
Tue, 03 May 2016 09:49:54 -0700 templater: add separate() template function
Martin von Zweigbergk <martinvonz@google.com> [Tue, 03 May 2016 09:49:54 -0700] rev 29085
templater: add separate() template function A pretty common pattern in templates is adding conditional separators like so: {node}{if(bookmarks, " {bookmarks}")}{if(tags, " {tags}")} With this patch, the above can be simplified to: {separate(" ", node, bookmarks, tags)} The function is similar to the already existing join(), but with a few differences: * separate() skips empty arguments * join() expects a single list argument, while separate() expects each item as a separate argument * separate() takes the separator first in order to allow a variable number of arguments after it
Wed, 04 May 2016 21:01:49 -0400 bookmarks: jettison bmstore's write() method per deprecation policy
Augie Fackler <augie@google.com> [Wed, 04 May 2016 21:01:49 -0400] rev 29084
bookmarks: jettison bmstore's write() method per deprecation policy
Thu, 05 May 2016 15:12:43 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 05 May 2016 15:12:43 -0500] rev 29083
merge with stable
Thu, 05 May 2016 16:29:31 +0200 deprecation: gate deprecation warning behind devel configuration stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 16:29:31 +0200] rev 29082
deprecation: gate deprecation warning behind devel configuration Regular users are not supposed to be exposed to the API deprecation warnings. We now only issue them when the developper warnings are enabled.
Thu, 05 May 2016 19:51:35 +0800 crecord: update downarrowshiftevent() docstring, remove todo
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 May 2016 19:51:35 +0800] rev 29081
crecord: update downarrowshiftevent() docstring, remove todo The phrasing is mostly taken from uparrowshiftevent().
Thu, 05 May 2016 19:40:40 +0800 crecord: remove things that don't happen in functions from their docstrings
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 May 2016 19:40:40 +0800] rev 29080
crecord: remove things that don't happen in functions from their docstrings Scrolling screen is currently done in a different place. The things that had been described in the docstrings may still happen, but the functions touched by this patch don't do any scrolling, they only set self.currentselecteditem and nothing more.
Thu, 05 May 2016 18:13:25 +0800 crecord: remove skipfolded keyword argument from patchnode.previtem()
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 May 2016 18:13:25 +0800] rev 29079
crecord: remove skipfolded keyword argument from patchnode.previtem() It wasn't used, it wasn't implemented. Probably was a copy-paste bonus from patchnode.nextitem()
Thu, 05 May 2016 15:19:37 +0800 crecord: update a copy-pasted comment in downarrowshiftevent()
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 May 2016 15:19:37 +0800] rev 29078
crecord: update a copy-pasted comment in downarrowshiftevent()
Thu, 05 May 2016 16:38:24 +0200 crecord: drop the version condition for amend
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 16:38:24 +0200] rev 29077
crecord: drop the version condition for amend The UI is now shipped in core, amend feature is always available.
Thu, 05 May 2016 11:19:52 +0800 crecord: add/remove blank lines (coding style)
Anton Shestakov <av6@dwimlabs.net> [Thu, 05 May 2016 11:19:52 +0800] rev 29076
crecord: add/remove blank lines (coding style)
Wed, 04 May 2016 21:02:03 -0400 localrepo: jettison parents() method per deprecation policy (API)
Augie Fackler <augie@google.com> [Wed, 04 May 2016 21:02:03 -0400] rev 29075
localrepo: jettison parents() method per deprecation policy (API)
Sun, 17 Apr 2016 13:06:44 +0900 revset: define _parsealias() in _aliasrules class
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Apr 2016 13:06:44 +0900] rev 29074
revset: define _parsealias() in _aliasrules class It's short. It doesn't make sense to define _parsealias() outside of the class.
Sun, 17 Apr 2016 13:03:23 +0900 revset: factor out common parsing function
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Apr 2016 13:03:23 +0900] rev 29073
revset: factor out common parsing function
Sun, 17 Apr 2016 12:57:27 +0900 revset: inline _tokenizealias() into _parsealias()
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Apr 2016 12:57:27 +0900] rev 29072
revset: inline _tokenizealias() into _parsealias() This helps factoring out common part between _parsealias() and parse().
Sun, 10 Apr 2016 07:28:26 +0000 store: treat range as a generator instead of a list for py3 compat
timeless <timeless@mozdev.org> [Sun, 10 Apr 2016 07:28:26 +0000] rev 29071
store: treat range as a generator instead of a list for py3 compat
Wed, 04 May 2016 18:18:24 +0100 ui: add new config option for help text width
Jun Wu <quark@fb.com> [Wed, 04 May 2016 18:18:24 +0100] rev 29070
ui: add new config option for help text width Before this patch, when printing help text using `hg help`, or `hg log -h`, the output will wrap at 78 chars even if the user has a bigger terminal width and there is no config option to change it, making the experience different from the commonly used `man` tool. This patch introduces a new config option `ui.textwidth`, which replaces the hardcoded number. It's set to 78 by default to maintain compatibility. When set to 0, `hg help` will behave more like `man`.
Tue, 03 May 2016 15:26:51 +0000 tests: test histedit base command plan help
timeless <timeless@mozdev.org> [Tue, 03 May 2016 15:26:51 +0000] rev 29069
tests: test histedit base command plan help
Tue, 03 May 2016 23:48:31 +0200 largefiles: makes verify batching stat calls to remote
liscju <piotr.listkiewicz@gmail.com> [Tue, 03 May 2016 23:48:31 +0200] rev 29068
largefiles: makes verify batching stat calls to remote Instead of sending stat calls for each files separately, it sends one batch call with stat invocations for all files.
Tue, 03 May 2016 23:31:32 +0200 largefiles: change basestore._verifyfile to take list of files to check
liscju <piotr.listkiewicz@gmail.com> [Tue, 03 May 2016 23:31:32 +0200] rev 29067
largefiles: change basestore._verifyfile to take list of files to check Makes it easier to use batch stat calls in remotestore to decrease number of round trips.
Wed, 04 May 2016 22:44:30 -0400 bookmarks: properly invalidate volatile sets when writing bookmarks stable
Augie Fackler <augie@google.com> [Wed, 04 May 2016 22:44:30 -0400] rev 29066
bookmarks: properly invalidate volatile sets when writing bookmarks This corrects a regression introduced during the 3.7 cycle, but which went undetected due to the surviving-but-deprecated write() method on bmstore.
Thu, 05 May 2016 15:41:37 +0200 test-obsolete: update extension in test to actually work stable
Augie Fackler <augie@google.com> [Thu, 05 May 2016 15:41:37 +0200] rev 29065
test-obsolete: update extension in test to actually work This hasn't been testing anything since partway through the 3.7 cycle due to unrelated refactoring. Sadly, the behavior it was trying to prevent reemerged in the codebase at that time. A fix is in the next patch, because proving that the fix was actually correct ended up being trickier than I expected.
Thu, 05 May 2016 20:57:38 +0900 bundle2: properly request phases during getbundle stable
Mike Hommey <mh@glandium.org> [Thu, 05 May 2016 20:57:38 +0900] rev 29064
bundle2: properly request phases during getbundle getbundle was requesting the "phase" namespace instead of the "phases" namespace, which led to the client still requesting the phases separately after getbundle finished.
Mon, 11 Apr 2016 21:33:07 +0000 rebase: handle successor targets (issue5198)
timeless <timeless@mozdev.org> [Mon, 11 Apr 2016 21:33:07 +0000] rev 29063
rebase: handle successor targets (issue5198) When a parent has a successor (indicated by revprecursor in state), we need to use it.
Wed, 04 May 2016 06:44:44 +0900 debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org> [Wed, 04 May 2016 06:44:44 +0900] rev 29062
debugbundle: add tests for debugbundle output with bundle2
Wed, 04 May 2016 10:46:27 -0500 revert: mention ui.origbackuppath in the command help
Nathan Goldbaum <ngoldbau@illinois.edu> [Wed, 04 May 2016 10:46:27 -0500] rev 29061
revert: mention ui.origbackuppath in the command help
Sat, 30 Apr 2016 18:40:34 -0700 help: wrap ".orig" in rst quotes
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 18:40:34 -0700] rev 29060
help: wrap ".orig" in rst quotes Apparently, .orig. is a macro for man pages so we need to wrap it in quotes to silence lintian warnings.
Sun, 17 Apr 2016 12:31:06 +0900 parser: shorten prefix of alias parsing errors
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Apr 2016 12:31:06 +0900] rev 29059
parser: shorten prefix of alias parsing errors These messages seemed to be a bit long. We should try making them fit to 80-col console.
Sun, 17 Apr 2016 12:20:57 +0900 parser: rephrase "'$' not for alias arguments" message
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Apr 2016 12:20:57 +0900] rev 29058
parser: rephrase "'$' not for alias arguments" message Say which symbol caused the error. The word "alias" is removed since these messages are prefixed by "failed to parse ... revset alias "...":".
Mon, 18 Apr 2016 17:54:02 +0900 debugbundle: handle the --all option for bundle2
Mike Hommey <mh@glandium.org> [Mon, 18 Apr 2016 17:54:02 +0900] rev 29057
debugbundle: handle the --all option for bundle2
Mon, 02 May 2016 15:22:16 -0700 manifest: improve filesnotin performance by using lazymanifest diff
Tony Tung <tonytung@merly.org> [Mon, 02 May 2016 15:22:16 -0700] rev 29056
manifest: improve filesnotin performance by using lazymanifest diff lazymanifests can compute diffs significantly faster than taking the set of two manifests and calculating the delta. when running hg diff --git -c . on Facebook's big repo, this reduces the run time from 2.1s to 1.5s.
Tue, 19 Apr 2016 11:00:15 +0100 keyword: replace use of _filerev with _filenode
Christian Ebert <blacktrash@gmx.net> [Tue, 19 Apr 2016 11:00:15 +0100] rev 29055
keyword: replace use of _filerev with _filenode To be independent of rev numbers. Analogous to ba8257cb53e8.
Tue, 03 May 2016 10:41:17 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 03 May 2016 10:41:17 -0500] rev 29054
merge with stable
Sun, 01 May 2016 14:36:12 -0500 Added signature for changeset a56296f55a5e stable
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2016 14:36:12 -0500] rev 29053
Added signature for changeset a56296f55a5e
Sun, 01 May 2016 14:36:11 -0500 Added tag 3.8.1 for changeset a56296f55a5e stable
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2016 14:36:11 -0500] rev 29052
Added tag 3.8.1 for changeset a56296f55a5e
Wed, 06 Apr 2016 22:57:46 -0500 convert: pass absolute paths to git (SEC) stable 3.8.1
Blake Burkhart <bburky@bburky.com> [Wed, 06 Apr 2016 22:57:46 -0500] rev 29051
convert: pass absolute paths to git (SEC) Fixes CVE-2016-3105 (1/1). Previously, it was possible for the repository path passed to git-ls-remote to be misinterpreted as a URL. Always passing an absolute path to git is a simple way to avoid this.
Sun, 01 May 2016 13:52:26 -0500 Added signature for changeset f85de28eae32 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2016 13:52:26 -0500] rev 29050
Added signature for changeset f85de28eae32
Sun, 01 May 2016 13:52:25 -0500 Added tag 3.8 for changeset f85de28eae32 stable
Matt Mackall <mpm@selenic.com> [Sun, 01 May 2016 13:52:25 -0500] rev 29049
Added tag 3.8 for changeset f85de28eae32
Sat, 30 Apr 2016 21:21:17 -0700 debian: alphabetize build deps stable 3.8
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 21:21:17 -0700] rev 29048
debian: alphabetize build deps
Sat, 30 Apr 2016 17:26:48 -0700 debian: fix lintian warning about debhelper stable
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 17:26:48 -0700] rev 29047
debian: fix lintian warning about debhelper It seems this is correct but does it work on older distros? I ran the docker-jessie rule and didn't get any warnings.
Sat, 30 Apr 2016 17:29:12 -0700 builddeb: remove chmod as lintian tells us stable
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 17:29:12 -0700] rev 29046
builddeb: remove chmod as lintian tells us It turns out we just need debian/rules to be executable, so we do just that.
Sat, 30 Apr 2016 11:51:45 -0700 builddeb: use codename in version stable
Sean Farley <sean@farley.io> [Sat, 30 Apr 2016 11:51:45 -0700] rev 29045
builddeb: use codename in version Apparently, this is needed to allow ppas to be built for multiple distros.
Sat, 30 Apr 2016 18:39:39 +0200 rebase: restrict rebase destination to the pulled set (issue5214) stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 30 Apr 2016 18:39:39 +0200] rev 29044
rebase: restrict rebase destination to the pulled set (issue5214) Before this patch, `hg pull --rebase` would be a strict sequence of `hg pull` followed by `hg rebase` if anything was pulled. Now that rebase pick his default destination the same way than merge, than `hg rebase` step would abort in the case the repo already had multiple anonymous heads (because of the ambiguity). (changed in fac3a24be50e) The intend of the user with `hg pull --rebase` is clearly to rebase on pulled content. This used to be (mostly) enforced by the former default destination for rebase, "tipmost changeset of the branch" as the tipmost would likely a changeset that just got pulled. But this intended was no longer enforced with the new defaul destination (unified with merge). This changeset makes use of the '_destspace' mechanism introduced in the previous changeset to enforce this. This partially fixes issue5214 as no change at all have been made to the new handling of the case with bookmark (unified with merge).
Sat, 30 Apr 2016 18:41:08 +0200 destutil: add the ability to specify a search space for rebase destination stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 30 Apr 2016 18:41:08 +0200] rev 29043
destutil: add the ability to specify a search space for rebase destination In the 'hg pull --rebase', we don't want to pick a rebase destination unrelated to the pull, we lay down basic infrastructure to allow such restriction on stable (before 3.8 release) in this case. See issue 5214 for details. Actual usage and test will be in the next patch.
Sat, 30 Apr 2016 09:26:47 -0700 sslutil: restore old behavior not requiring a hostname argument (issue5210) stable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Apr 2016 09:26:47 -0700] rev 29042
sslutil: restore old behavior not requiring a hostname argument (issue5210) This effectively backs out changeset 1fde84d42f9c. The http library behind ui.http2=true isn't specifying the hostname. It is the day before the expected 3.8 release and we don't want to ship a regression. I'll try to restore this requirement in the 3.9 release cycle as part of planned improvements to Mercurial's SSL/TLS interactions.
Thu, 28 Apr 2016 16:38:15 -0500 tests: test a variety of cache invariants stable
Matt Mackall <mpm@selenic.com> [Thu, 28 Apr 2016 16:38:15 -0500] rev 29041
tests: test a variety of cache invariants We've historically had a problem maintaining the expected invariants on our caches, especially when introducing new caches. This tests documents the invariants and exercises them across most of our existing cache files.
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip