Thu, 26 Mar 2020 17:09:34 -0400 git: abort when attempting to set a branch
Josef 'Jeff' Sipek <jeffpc@josefsipek.net> [Thu, 26 Mar 2020 17:09:34 -0400] rev 44622
git: abort when attempting to set a branch Given the mapping we use (namely, a git head is a bookmark), it is better to error out with a hint.
Thu, 26 Mar 2020 16:23:54 -0400 git: remove obsolete todo item
Josef 'Jeff' Sipek <jeffpc@josefsipek.net> [Thu, 26 Mar 2020 16:23:54 -0400] rev 44621
git: remove obsolete todo item The changes in 02c47b74366c cleaned up the requirement check.
Thu, 26 Mar 2020 14:01:31 +0530 tests: don't run test-update-atomic.t on chg
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 26 Mar 2020 14:01:31 +0530] rev 44620
tests: don't run test-update-atomic.t on chg I am unable to find a good way to make `showwrites` extension in it to work with chg. Also putting the use of showwrites inside `if no-chg` will defeat the purpose of test, so I just made the test no-op on chg.
Wed, 25 Mar 2020 20:15:57 +0530 tests: don't run couple of tests related to extensions loading with chg
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 25 Mar 2020 20:15:57 +0530] rev 44619
tests: don't run couple of tests related to extensions loading with chg The couple of files test extensions loading and debugging that. It sets `devel.debug.extensions` to True to do that. Either we have to restart chg if this config is set or just don't run these tests on chg. I tried the first way by adding the config option to chgserver.py list of config subsections but that does not seem to work.
Wed, 25 Mar 2020 20:33:15 +0530 tests: conditionalize test-phases.t output for chg
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 25 Mar 2020 20:33:15 +0530] rev 44618
tests: conditionalize test-phases.t output for chg IIUC chg loads the ProgrammingError class which leads to it directly referencing it in error output. This makes the test pass on chg.
Tue, 24 Mar 2020 15:21:11 +0530 chg: be stricter about checking invocation of `serve` command
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 24 Mar 2020 15:21:11 +0530] rev 44617
chg: be stricter about checking invocation of `serve` command Few tests run serve command in form of `hg -R <repo> serve` which leads to chg thinking that it's not a serve command and failing tests. We become more stricter in checking for the serve command. This fixes test-server-view.t, test-remote-hidden.t, test-remotefilelog-http.t, test-phases-exchange.t, test-wireproto-content-redirects.t with chg.
Mon, 23 Mar 2020 23:43:29 +0530 chgserver: add merge-tools to sensitive config items
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Mar 2020 23:43:29 +0530] rev 44616
chgserver: add merge-tools to sensitive config items Because this can change whether the ui is gui or not. This fixes test-extdiff.t with chg.
Wed, 25 Mar 2020 13:20:08 +0530 run-tests: add --chg-debug flag to show chg debug output
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 25 Mar 2020 13:20:08 +0530] rev 44615
run-tests: add --chg-debug flag to show chg debug output This has helped me a lot in debugging chg failures in tests.
Tue, 24 Mar 2020 12:48:57 +0530 tests: update test-ssh.t output with --chg
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 24 Mar 2020 12:48:57 +0530] rev 44614
tests: update test-ssh.t output with --chg The output change was caused by d7304434390f5efca405744fa12a6585edae3d83.
Tue, 24 Mar 2020 12:31:46 +0530 tests: update test-devel-warnings.t output with chg
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 24 Mar 2020 12:31:46 +0530] rev 44613
tests: update test-devel-warnings.t output with chg The output change was caused by dc9901558e3c6a78bad3f6594b3888f95104c443.
Mon, 23 Mar 2020 21:06:54 +0530 chgserver: add fastannotate config section to sensitive list
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Mar 2020 21:06:54 +0530] rev 44612
chgserver: add fastannotate config section to sensitive list Depending on the config value of `fastannotate.modes`, the fastannotate extension can do different things in uisetup. Depending on value of `fastannotate.server`, it can register new wireprotocol capabilities. This fixes test-fastannotate-hg.t, test-fastannotate-protocol.t and test-fastannotate.t with chg.
Wed, 01 Apr 2020 14:14:55 -0700 histedit: add missing b prefix to a string stable 5.3.2
Kyle Lippincott <spectral@google.com> [Wed, 01 Apr 2020 14:14:55 -0700] rev 44611
histedit: add missing b prefix to a string If i18n is disabled (such as via HGPLAIN=1), `_()` doesn't convert from str to bytes, so this raises a TypeError on py3. Differential Revision: https://phab.mercurial-scm.org/D8354
Mon, 24 Feb 2020 13:22:15 -0500 phabricator: account for `basectx != ctx` when calculating renames
Matt Harbison <matt_harbison@yahoo.com> [Mon, 24 Feb 2020 13:22:15 -0500] rev 44610
phabricator: account for `basectx != ctx` when calculating renames No functional changes here because the two are the currently same, but they won't be with a `--fold` option. Differential Revision: https://phab.mercurial-scm.org/D8307
Mon, 24 Feb 2020 12:06:34 -0500 phabricator: add basectx arguments to file related `phabsend` utilities
Matt Harbison <matt_harbison@yahoo.com> [Mon, 24 Feb 2020 12:06:34 -0500] rev 44609
phabricator: add basectx arguments to file related `phabsend` utilities This is in support of a future `--fold` option, that allows rolling up several commits into a single review with a diff from the start to the end of the range. There are no functional changes yet- the original `ctx` is also passed as the new `basectx`, which represents the first commit in the review range (similar to `qbase` in MQ parlance). Other functions will need the range of commits, but these deal with status or the diffs, so they only need the end points. Differential Revision: https://phab.mercurial-scm.org/D8306
Tue, 18 Feb 2020 09:57:26 -0500 phabricator: eliminate a couple of duplicate filectx lookups
Matt Harbison <matt_harbison@yahoo.com> [Tue, 18 Feb 2020 09:57:26 -0500] rev 44608
phabricator: eliminate a couple of duplicate filectx lookups Differential Revision: https://phab.mercurial-scm.org/D8305
Wed, 25 Mar 2020 12:06:49 -0400 tests: update test-debugcommands.t stack trace checks for python3.9
Augie Fackler <augie@google.com> [Wed, 25 Mar 2020 12:06:49 -0400] rev 44607
tests: update test-debugcommands.t stack trace checks for python3.9 Python 3.9 prints a complete filepath in more cases, so we need to handle that in our test output. Since we don't really care *that* much about the specific path formatting here, just use globbing. Differential Revision: https://phab.mercurial-scm.org/D8329
Wed, 25 Mar 2020 12:05:53 -0400 tests: update test-archive.t expectations for python3.9 changes
Augie Fackler <augie@google.com> [Wed, 25 Mar 2020 12:05:53 -0400] rev 44606
tests: update test-archive.t expectations for python3.9 changes Sigh. Differential Revision: https://phab.mercurial-scm.org/D8328
Wed, 25 Mar 2020 11:56:47 -0400 setup: relax -Werror for declaration-after-statement on Python 3.9
Augie Fackler <augie@google.com> [Wed, 25 Mar 2020 11:56:47 -0400] rev 44605
setup: relax -Werror for declaration-after-statement on Python 3.9 It turns out Python 3.9 introduces such declarations in the headers, eg cpython/abstract.h:189:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement] so we have to be more relaxed when compiling for 3.9. Differential Revision: https://phab.mercurial-scm.org/D8327
Wed, 25 Mar 2020 18:50:40 -0700 py3: require values in changelog extras to be bytes stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Mar 2020 18:50:40 -0700] rev 44604
py3: require values in changelog extras to be bytes I don't know what happened here because b436059c1cca (py3: use pycompat.bytestr() on extra values because it can be int, 2019-02-05) came about b44a47214122 (py3: use string for "close" value in commit extras, 2018-02-11). Whatever happened, we shouldn't need to convert the values to bytes now. It's better to not convert because that might cover up bugs where someone sets a unicode value in the extras and that works until the unicode value happens to contain non-ascii (at which point it will fail because `bytestr()` expects its argument to be ascii if it's unicode). Differential Revision: https://phab.mercurial-scm.org/D8332
Wed, 25 Mar 2020 18:25:58 -0700 py3: make setup.py's hgcommand() consistently return bytes stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Mar 2020 18:25:58 -0700] rev 44603
py3: make setup.py's hgcommand() consistently return bytes Before this patch, it returned unicode when the command failed. That made e.g. `make local PYTHON=python3` fail on an obsolete commit. Differential Revision: https://phab.mercurial-scm.org/D8331
Wed, 25 Mar 2020 08:28:20 -0700 pvec: drop an unused `from __future__ import division`
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Mar 2020 08:28:20 -0700] rev 44602
pvec: drop an unused `from __future__ import division` This module only uses the `//` operator (for integer division). Differential Revision: https://phab.mercurial-scm.org/D8326
Tue, 24 Mar 2020 23:31:36 -0700 py3: use integer division in histedit
Martin von Zweigbergk <martinvonz@google.com> [Tue, 24 Mar 2020 23:31:36 -0700] rev 44601
py3: use integer division in histedit Histedit uses the `/` operator, which does type conversion to float in Python 3 instead of integer division likeon Python 2. Let's preserve the Python 2 behavior by importing and using the `//` operator. Differential Revision: https://phab.mercurial-scm.org/D8324
Wed, 25 Mar 2020 10:06:32 +0100 rust: update README to reflect use of `regex` crate
Raphaël Gomès <rgomes@octobus.net> [Wed, 25 Mar 2020 10:06:32 +0100] rev 44600
rust: update README to reflect use of `regex` crate Differential Revision: https://phab.mercurial-scm.org/D8325
Mon, 23 Mar 2020 12:11:41 +0100 rust: update all dependencies
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Mar 2020 12:11:41 +0100] rev 44599
rust: update all dependencies We do this periodically to say up to date. No major versions were crossed this time per se, but the `rand` is still in v0, and their 0.7x series broke three things: - Some distribution-related elements were moved to a separate crate, flashing a deprecation warning - The `LogNormal::new` associated function now returns a `Result` - Certain RNGs were updated to sample a `u32` instead of `usize` when their upper-bound is less than `u32::MAX` for better portability, which changed the output for 2 tests. Moreover, the recent use of the `regex` crate for ignore mechanisms prompted some benchmarking that revealed that `regex` was slower at compiling big regex than `Re2`. The author of `regex` was very quick to discover an optimization that yielded a 30% improvement. It's still slower than `Re2` in that regard, but less so in the 1.3.6 release. Differential Revision: https://phab.mercurial-scm.org/D8320
Mon, 23 Mar 2020 12:07:45 +0100 rust: update micro-timer dependency
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Mar 2020 12:07:45 +0100] rev 44598
rust: update micro-timer dependency The new version uses a much more robust technique and should remove any existing risk of bad compiler error or performance hit. Differential Revision: https://phab.mercurial-scm.org/D8319
Fri, 20 Mar 2020 15:21:34 +0100 rust-status: only involve ignore mechanism when needed
Raphaël Gomès <rgomes@octobus.net> [Fri, 20 Mar 2020 15:21:34 +0100] rev 44597
rust-status: only involve ignore mechanism when needed This prevents unnecessary fallbacks to Python, improving performance for `hg update` for instance. On Mozilla-Central a noop update goes from 1.6s down to 700ms. Differential Revision: https://phab.mercurial-scm.org/D8315
Thu, 26 Mar 2020 00:07:12 +0900 templater: fix cbor() filter to recursively convert smartset to list
Yuya Nishihara <yuya@tcha.org> [Thu, 26 Mar 2020 00:07:12 +0900] rev 44596
templater: fix cbor() filter to recursively convert smartset to list The previous attempt, e3e44e6e7245 "templater: fix cbor() filter to accept smartset", was incomplete since obj may be a collection containing a smartset. This works around the problem by converting smartsets recursively. Another option is to teach cborutil how to encode a smartset. That should be okay, but I hesitated to add "import smartset" to cborutil.py as the cborutil is pretty generic.
Mon, 23 Mar 2020 15:14:42 -0700 shelve: split up dounshelve() in unshelvecmd() and _dounshelve()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 23 Mar 2020 15:14:42 -0700] rev 44595
shelve: split up dounshelve() in unshelvecmd() and _dounshelve() I'd like to be able to override the new `_dounshelve()`, getting access to the name of the shelve to unshelve. `unshelvecmd()` seems to better match the existing `createcmd()`, `listcmd()` etc. Differential Revision: https://phab.mercurial-scm.org/D8322
Mon, 23 Mar 2020 14:38:00 -0700 darwin: use vim, not vi, to avoid data-loss inducing posix behavior stable
Kyle Lippincott <spectral@google.com> [Mon, 23 Mar 2020 14:38:00 -0700] rev 44594
darwin: use vim, not vi, to avoid data-loss inducing posix behavior Apple's version of vim, available at opensource.apple.com/release/macos-1015.html (for Catalina, but this behavior has been there for a while) has several tweaks from the version of vim from vim.org. Most of these tweaks appear to be for "Unix2003" compatibility. One of the tweaks is that if any ex command raises an error, the entire process will (when you exit, possibly minutes/hours later) also exit non-zero. Ex commands are things like `:foo`. Luckily, they only enabled this if vim was executed (via a symlink or copying the binary) as `vi` or `ex`. If you start it as `vim`, it doesn't have this behavior, so let's do that. To see this in action, run the following two commands on macOS: ``` $ vi -c ':unknown' -c ':qa' ; echo $? 1 $ vim -c ':unknown' -c ':qa' ; echo $? 0 ``` We don't want to start ignoring non-zero return types from the editor because that will mean you can't use `:cquit` to intentionally exit 1 (which, shows up as 2 if you combine an ex command error and a cquit, but only a 1 if you just use cquit, so we can't differentiate between the two statuses). Since we can't differentiate, we have to assume that all non-zero exit codes are intentional and an indication of the user's desire to not continue with whatever we're doing. If this was a complicated `hg split` or `hg histedit`, this is especially disastrous :( Differential Revision: https://phab.mercurial-scm.org/D8321
Tue, 24 Mar 2020 17:55:59 +0100 rust-matchers: use the `regex` crate
Raphaël Gomès <rgomes@octobus.net> [Tue, 24 Mar 2020 17:55:59 +0100] rev 44593
rust-matchers: use the `regex` crate Instead of falling back to Python when a code path with "ignore" functionality is reached and `Re2` is not installed, the default compilation (i.e. without the `with-re2` feature) will use the `regex` crate for all regular expressions business. As with the introduction of `Re2` in a previous series, this yields a big performance boost compared to the Python + C code in `status`, `diff`, `commit`, `update`, and maybe others. For now `Re2` looks to be faster at compiling the DFA (1.5ms vs 5ms for Netbeans' `.hgignore`) and a bit faster in actual use: (123ms vs 137ms for the parallel traversal of Netbeans' clean repo). I am in talks with the author of `regex` to see whether that performance difference is a bug, a "won't fix", or a tuning issue. The `regex` crate is already one of our dependencies and using this code does not require any additional work from the end-user than to use the Rust extensions. Differential Revision: https://phab.mercurial-scm.org/D8323
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 tip