Thu, 17 Mar 2016 18:19:36 +0000 remove: queue warnings until after status messages (issue5140) (API)
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 18:19:36 +0000] rev 28607
remove: queue warnings until after status messages (issue5140) (API) Before this change, warnings were interspersed with (and easily drowned out by) status messages. API: abstractsubrepo.removefiles has an extra argument warnings, into which callees should append their warnings. Note: Callees should not assume that there will be items in the list, today, I'm lazily including any other subrepos warnings, but that may change. cmdutil.remove has an extra optional argument warnings, into which it will place warnings. If warnings is omitted, warnings will be reported via ui.warn() as before this change (albeit, after any status messages).
Mon, 21 Mar 2016 04:01:29 +0000 tests: include progress for test-remove
timeless <timeless@mozdev.org> [Mon, 21 Mar 2016 04:01:29 +0000] rev 28606
tests: include progress for test-remove
Sun, 20 Mar 2016 15:43:20 -0700 chg: allows default hg path to be overridden
Jun Wu <quark@fb.com> [Sun, 20 Mar 2016 15:43:20 -0700] rev 28605
chg: allows default hg path to be overridden Before this patch, chg will fall back to "hg" if neither CHGHG nor HG are set. This may have trouble if the "hg" in PATH is not compatible with chg, which can happen, for example, an old hg is installed in a virtualenv. Since it's very hard to do a quick hg version check from chg, after discussion in IRC with smf and marmoute, the quickest solution is to build a package with a hardcoded absolute hg path in chg. This patch makes it possible by adding a C macro HGPATH.
Sun, 20 Mar 2016 15:25:25 -0700 chg: define PRINTF_FORMAT_ for non gnu C compiler
Jun Wu <quark@fb.com> [Sun, 20 Mar 2016 15:25:25 -0700] rev 28604
chg: define PRINTF_FORMAT_ for non gnu C compiler Before this patch, if __GNUC__ is not defined, PRINTF_FORMAT_ will not be defined and will cause compilation error. This patch solves the issue by making sure PRINTF_FORMAT_ is defined. It allows chg to be compiled with tcc (http://bellard.org/tcc/) by: tcc -o chg *.c
Sun, 20 Mar 2016 15:11:34 -0700 chgserver: drop bundle.mainreporoot config
Jun Wu <quark@fb.com> [Sun, 20 Mar 2016 15:11:34 -0700] rev 28603
chgserver: drop bundle.mainreporoot config Before this patch, although chgserver drops repo object by setting it to None, there is another side effect loading a repo: setting bundle.mainreporoot. This patch explicitly sets it to empty to undo the side effect. It will make chg pass test-strip.t.
Sun, 20 Mar 2016 10:44:15 -0700 chgserver: drop old hack to recreate ui on HGPLAIN change
Yuya Nishihara <yuya@tcha.org> [Sun, 20 Mar 2016 10:44:15 -0700] rev 28602
chgserver: drop old hack to recreate ui on HGPLAIN change It's been superseded by config/env hash. A log message is simplified as we no longer need a diff of environment variables. Also, _loadnewui() is changed to require args since it can't copy old --config values without args.
Sat, 19 Mar 2016 16:37:47 -0700 graphmod: allow edges to end early
Martijn Pieters <mjpieters@fb.com> [Sat, 19 Mar 2016 16:37:47 -0700] rev 28601
graphmod: allow edges to end early Rather than draw an edge all the way to the bottom of the graph, make it possible to end an edge to parents that are not part of the graph early on. This results in a far cleaner graph. Any edge type can be set to end early; set the ui.graphstyle.<edgetype> parameter to the empty string to enable this. For example, setting the following configuration: [ui] graphstyle.grandparent = : graphstyle.missing = would result in a graph like this: o changeset: 32:d06dffa21a31 |\ parent: 27:886ed638191b | : parent: 31:621d83e11f67 | : o : changeset: 31:621d83e11f67 |\: parent: 21:d42a756af44d | : parent: 30:6e11cd4b648f | : o : changeset: 30:6e11cd4b648f |\ \ parent: 28:44ecd0b9ae99 | ~ : parent: 29:cd9bb2be7593 | / o : changeset: 28:44ecd0b9ae99 |\ \ parent: 1:6db2ef61d156 | ~ : parent: 26:7f25b6c2f0b9 | / o : changeset: 26:7f25b6c2f0b9 |\ \ parent: 18:1aa84d96232a | | : parent: 25:91da8ed57247 | | : | o : changeset: 25:91da8ed57247 | |\: parent: 21:d42a756af44d | | : parent: 24:a9c19a3d96b7 | | : | o : changeset: 24:a9c19a3d96b7 | |\ \ parent: 0:e6eb3150255d | | ~ : parent: 23:a01cddf0766d | | / | o : changeset: 23:a01cddf0766d | |\ \ parent: 1:6db2ef61d156 | | ~ : parent: 22:e0d9cccacb5d | | / | o : changeset: 22:e0d9cccacb5d |/:/ parent: 18:1aa84d96232a | : parent: 21:d42a756af44d | : | o changeset: 21:d42a756af44d | |\ parent: 19:31ddc2c1573b | | | parent: 20:d30ed6450e32 | | | +---o changeset: 20:d30ed6450e32 | | | parent: 0:e6eb3150255d | | ~ parent: 18:1aa84d96232a | | | o changeset: 19:31ddc2c1573b | |\ parent: 15:1dda3f72782d | ~ ~ parent: 17:44765d7c06e0 | o changeset: 18:1aa84d96232a parent: 1:6db2ef61d156 parent: 15:1dda3f72782d The default configuration leaves all 3 types set to |. This is part of the work towards moving smartlog upstream; currently smartlog injects extra nodes into the graph to indicate grandparent relationships (nodes elided).
Sat, 19 Mar 2016 16:46:15 -0700 graphmod: allow for different styles for different edge types
Martijn Pieters <mjpieters@fb.com> [Sat, 19 Mar 2016 16:46:15 -0700] rev 28600
graphmod: allow for different styles for different edge types Rather than draw all edges as solid lines, allow for using different styles for different edge types. For example you could use dotted lines for edges that do not connect to a parent, and dashed lines when connecting to a grandparent (implying missing nodes in between). For example, setting the following configuration: [ui] graphstyle.grandparent = : graphstyle.missing = . would result in a graph like this: o changeset: 32:d06dffa21a31 |\ parent: 27:886ed638191b | : parent: 31:621d83e11f67 | : o : changeset: 31:621d83e11f67 |\: parent: 21:d42a756af44d | : parent: 30:6e11cd4b648f | : o : changeset: 30:6e11cd4b648f |\ \ parent: 28:44ecd0b9ae99 | . : parent: 29:cd9bb2be7593 | . : o . : changeset: 28:44ecd0b9ae99 |\ \ \ parent: 1:6db2ef61d156 | . . : parent: 26:7f25b6c2f0b9 | . . : o . . : changeset: 26:7f25b6c2f0b9 |\ \ \ \ parent: 18:1aa84d96232a | | . . : parent: 25:91da8ed57247 | | . . : | o-----+ changeset: 25:91da8ed57247 | | . . : parent: 21:d42a756af44d | | . . : parent: 24:a9c19a3d96b7 | | . . : | o . . : changeset: 24:a9c19a3d96b7 | |\ \ \ \ parent: 0:e6eb3150255d | | . . . : parent: 23:a01cddf0766d | | . . . : | o---+ . : changeset: 23:a01cddf0766d | | . . . : parent: 1:6db2ef61d156 | | . . . : parent: 22:e0d9cccacb5d | | . . . : | o-------+ changeset: 22:e0d9cccacb5d | . . . . : parent: 18:1aa84d96232a |/ / / / / parent: 21:d42a756af44d | . . . : | . . . o changeset: 21:d42a756af44d | . . . |\ parent: 19:31ddc2c1573b | . . . | | parent: 20:d30ed6450e32 | . . . | | +-+-------o changeset: 20:d30ed6450e32 | . . . | parent: 0:e6eb3150255d | . . . | parent: 18:1aa84d96232a | . . . | | . . . o changeset: 19:31ddc2c1573b | . . . .\ parent: 15:1dda3f72782d | . . . . | parent: 17:44765d7c06e0 | . . . . | o---+---+ | changeset: 18:1aa84d96232a . . . . | parent: 1:6db2ef61d156 / / / / / parent: 15:1dda3f72782d . . . . . Edge styles can be altered by setting the following one-character config options:: [ui] graphstyle.parent = | graphstyle.grandparent = : graphstyle.missing = . The default configuration leaves all 3 types set to |, leaving graph styles unaffected. This is part of the work towards moving smartlog upstream; currently smartlog injects extra nodes into the graph to indicate grandparent relationships (nodes elided).
Thu, 17 Mar 2016 18:32:10 +0000 chgserver: use global ui instead of repo ui for dispatch.request.ui
Jun Wu <quark@fb.com> [Thu, 17 Mar 2016 18:32:10 +0000] rev 28599
chgserver: use global ui instead of repo ui for dispatch.request.ui Before this patch, chgserver will use repo ui as dispatch.request.ui, while req.ui is designed to be global ui without repo config. Passing repo ui as dispatch.request.ui leads to repo.ui being incorrect, which can lead to unwanted results. For example, if the repo config has [extensions], it could affect which localrepository.featuresetupfuncs get executed and the repo may have an incorrect list of supported requirements. This patch changes _renewui to return both global ui and repo ui. The global ui is passed to req.ui, and the repo ui is used to calculate confighash. It will make chg pass test-largefiles-misc.t and test-requires.t, which are both related to repo requirements.
Thu, 17 Mar 2016 18:34:32 +0000 progress: update comment to reflect implementation
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 18:34:32 +0000] rev 28598
progress: update comment to reflect implementation Progress has been on by default in core for a while, the comment was written before this happened.
Sun, 20 Mar 2016 04:54:35 +0000 tests: remove lines that enable progress extension
timeless <timeless@mozdev.org> [Sun, 20 Mar 2016 04:54:35 +0000] rev 28597
tests: remove lines that enable progress extension progress has not been an extension for a long time, it has been integrated into core, thus these lines have not done anything for a while.
Sat, 19 Mar 2016 14:26:10 -0400 run-tests: add support for automatically bisecting test failures
Augie Fackler <augie@google.com> [Sat, 19 Mar 2016 14:26:10 -0400] rev 28596
run-tests: add support for automatically bisecting test failures
Sat, 19 Mar 2016 20:49:02 -0400 check-code: also ban strcat
Augie Fackler <augie@google.com> [Sat, 19 Mar 2016 20:49:02 -0400] rev 28595
check-code: also ban strcat We're not using it now, so it's easy to ban.
Sat, 19 Mar 2016 20:18:38 -0400 check-code: prevent use of strcpy
Augie Fackler <augie@google.com> [Sat, 19 Mar 2016 20:18:38 -0400] rev 28594
check-code: prevent use of strcpy
Sat, 19 Mar 2016 20:02:19 -0400 osutil: stop using strcpy
Augie Fackler <augie@google.com> [Sat, 19 Mar 2016 20:02:19 -0400] rev 28593
osutil: stop using strcpy strcpy is a security vulnerability masquerading as a utility function. Replace it with memcpy since we know how much to copy anyway.
Sat, 19 Mar 2016 11:39:13 -0700 histedit: add a hint about enabled dropmissing to histedit edit comment
Mateusz Kwapich <mitrandir@fb.com> [Sat, 19 Mar 2016 11:39:13 -0700] rev 28592
histedit: add a hint about enabled dropmissing to histedit edit comment Adds a hint to histedit comment reminding user about enabled dropmissing. This will make the enabled dropmissing more visible. The example comment: # Edit history between b592564a803c and b54649a8a63f # # Commits are listed from least to most recent # # You can reorder changesets by reordering the lines # # Commands: # # e, edit = use commit, but stop for amending # m, mess = edit commit message without changing commit content # p, pick = use commit # b, base = checkout changeset and apply further changesets from there # d, drop = remove commit from history # f, fold = use commit, but combine it with the one above # r, roll = like fold, but discard this commit's description # # Deleting a changeset from the list will DISCARD it from the edited history!
Sat, 19 Mar 2016 13:51:00 -0700 hghave: change ssl check to just check ssl module
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Mar 2016 13:51:00 -0700] rev 28591
hghave: change ssl check to just check ssl module Previously, the "ssl" check effectively looked for PyOpenSSL or Python 2.7.9. After this patch, we simply look for just the "ssl" module. After d962e955da08, there have been no references to PyOpenSSL in the tree (the previous usage of PyOpenSSL was to implement ssl support on old, no longer supported Python versions that didn't have an ssl module (e.g. Python 2.4). So, the check for PyOpenSSL served no purpose. Pythons we support ship with the ssl module. Although it may not be available in all installations. So, we still need the check for whether the ssl module imports, hence the hghave check. The main side-effect of this change is that we now run test-https.t (the only test requiring the "ssl" hghave feature) on Python <2.7.9 when PyOpenSSL is not installed (which is probably most installations) and the ssl module is available. Before, we wouldn't run this test on these older Python versions. I confirmed that test-https.t passes with Python 2.6.9 and 2.7.8 on OS X 10.11.
Sat, 19 Mar 2016 15:17:33 -0700 help: document sharing of revlog header with revision 0
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Mar 2016 15:17:33 -0700] rev 28590
help: document sharing of revlog header with revision 0 The previous docs were incorrect about there being a discrete header on revlogs.
Sat, 19 Mar 2016 16:45:52 -0400 mpatch: move collect() to module level
Augie Fackler <augie@google.com> [Sat, 19 Mar 2016 16:45:52 -0400] rev 28589
mpatch: move collect() to module level This helps the code read a little more clearly.
Sat, 19 Mar 2016 16:43:16 -0400 mpatch: un-nest the move() method
Augie Fackler <augie@google.com> [Sat, 19 Mar 2016 16:43:16 -0400] rev 28588
mpatch: un-nest the move() method This helps the code read a little more clearly.
Sat, 19 Mar 2016 16:37:30 -0400 mpatch: move pull() method to top level
Augie Fackler <augie@google.com> [Sat, 19 Mar 2016 16:37:30 -0400] rev 28587
mpatch: move pull() method to top level There was no need for this to be nested.
Thu, 17 Mar 2016 18:27:48 +0000 chgserver: use old ui.system if fout is not stdout or needs to be captured
Jun Wu <quark@fb.com> [Thu, 17 Mar 2016 18:27:48 +0000] rev 28586
chgserver: use old ui.system if fout is not stdout or needs to be captured Before this patch, chgui will override the system method, forwarding every process execution to the client so sessions and process groups can work as expected. But the chg client will just use stdout, if ui.fout is not stdout or if the output is set to be captured to safe._buffers, the client will not behave correctly. This can happen especially with code prepending "remote:". For example, bundle2 uses ui.pushbuffer, and sshpeer sets fout to ferr. We may have trouble with interactive commands in the fout set to ferr case but if it really bites us, we can always send file descriptors to the client. This patch adds a check to detect the above situations and fallback to the old ui.system if so. It will make chg happy with test-bundle2-exchange.t, test-phases-exchange.t, test-ssh-bundle1.t and test-ssh.t.
Sat, 12 Mar 2016 14:04:57 -0800 node: use byte literals to construct nullid and wdirid
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 Mar 2016 14:04:57 -0800] rev 28585
node: use byte literals to construct nullid and wdirid Python 3's hex() insists on operating on bytes. This patch gives it what it wants. '' and b'' in Python 2 are equivalent, so this has no impact on Python 2.
Sat, 12 Mar 2016 14:05:23 -0800 tests: try to import modules with Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 Mar 2016 14:05:23 -0800] rev 28584
tests: try to import modules with Python 3 All of mercurial.* is now using absolute_import. Most of mercurial.* is able to ast parse with Python 3. The next big hurdle is being able to import modules using Python 3. This patch adds testing of hgext.* and mercurial.* module imports in Python 3. As the new test output shows, most modules can't import under Python 3. However, many of the failures are due to a common problem in a highly imported module (e.g. the bytes vs str issue in node.py).
Fri, 18 Mar 2016 16:15:12 -0700 tests: perform an ast parse with Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Mar 2016 16:15:12 -0700] rev 28583
tests: perform an ast parse with Python 3 Previously, test-check-py3-compat.t parsed Python files with Python 2 and looked for known patterns that are incompatible with Python 3. Now that we have a mechanism for invoking Python 3 interpreters from tests, we can expand check-py3-compat.py and its corresponding .t test to perform an additional AST parse using Python 3. As the test output shows, we identify a number of new parse failures on Python 3. There are some redundant warnings for missing parentheses for the print function. Given the recent influx of patches around fixing these, the redundancy shouldn't last for too long.
Fri, 18 Mar 2016 16:17:56 -0700 run-tests: add --with-python3 to define a Python 3 interpreter
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 18 Mar 2016 16:17:56 -0700] rev 28582
run-tests: add --with-python3 to define a Python 3 interpreter Currently, very few parts of Mercurial run under Python 3, notably the test harness. We want to write tests that run Python 3. For example, we want to extend test-check-py3-compat.t to parse and load Python files. However, we have a problem: finding appropriate files requires running `hg files` and this requires Python 2 until `hg` works with Python 3. As a temporary workaround, we add --with-python3 to the test harness to allow us to define the path to a Python 3 interpreter. This interpreter is made available to the test environment via $PYTHON3 so tests can run things with Python 3 while the test harness and `hg` invocations continue to run from Python 2. To round out the feature, a "py3exe" hghave check has been added.
Fri, 18 Mar 2016 11:06:03 -0700 crecord: add docblock to handlekeypressed
Ryan McElroy <rmcelroy@fb.com> [Fri, 18 Mar 2016 11:06:03 -0700] rev 28581
crecord: add docblock to handlekeypressed This information is pretty useful when reading the code.
Fri, 18 Mar 2016 11:06:03 -0700 crecord: fix docblock indentation
Ryan McElroy <rmcelroy@fb.com> [Fri, 18 Mar 2016 11:06:03 -0700] rev 28580
crecord: fix docblock indentation
Fri, 18 Mar 2016 11:06:03 -0700 crecord: clean up empty lines at ends of docblocks
Ryan McElroy <rmcelroy@fb.com> [Fri, 18 Mar 2016 11:06:03 -0700] rev 28579
crecord: clean up empty lines at ends of docblocks
Thu, 17 Mar 2016 00:36:01 +0000 filemerge: indicate that local/other are p1/p2
timeless <timeless@mozdev.org> [Thu, 17 Mar 2016 00:36:01 +0000] rev 28578
filemerge: indicate that local/other are p1/p2
Sat, 19 Mar 2016 10:10:09 -0700 sslutil: use preferred formatting for import syntax
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 19 Mar 2016 10:10:09 -0700] rev 28577
sslutil: use preferred formatting for import syntax
Sat, 19 Mar 2016 08:28:24 -0700 largefiles: add some docstrings
Mads Kiilerich <madski@unity3d.com> [Sat, 19 Mar 2016 08:28:24 -0700] rev 28576
largefiles: add some docstrings
(0) -10000 -3000 -1000 -300 -100 -50 -32 +32 +50 +100 +300 +1000 +3000 +10000 tip