Pulkit Goyal <7895pulkit@gmail.com> [Thu, 18 Jun 2020 17:54:39 +0530] rev 45007
tests: use proctutil.stdout.write() instead of print() in test-extension.t
I was debugging this test failure on python3 + chg. I get the following hunk as
test failure:
```
@@ -206,6 +206,18 @@ Check normal command's load order of ext
4) bar uipopulate
5) foo reposetup
5) bar reposetup
+ 4) foo uipopulate (chg !)
+ 4) bar uipopulate (chg !)
+ 4) foo uipopulate (chg !)
+ 4) bar uipopulate (chg !)
+ 4) foo uipopulate (chg !)
+ 4) bar uipopulate (chg !)
+ 4) foo uipopulate (chg !)
+ 4) bar uipopulate (chg !)
+ 4) foo uipopulate (chg !)
+ 4) bar uipopulate (chg !)
+ 5) foo reposetup (chg !)
+ 5) bar reposetup (chg !)
0:c24b9ac61126
```
After hours of debugging and head scracthing, I figured out that something is
wrong with output flushing. I initially switched the print() statements to
ui.warn() but thanks to Yuya who suggested using procutil.stdout.write()
instead.
Augie Fackler <augie@google.com> [Wed, 08 Jan 2020 11:33:41 -0500] rev 45006
fuzz: tell manifest fuzzer about longer node hashes
Differential Revision: https://phab.mercurial-scm.org/D8374
Manuel Jacob <me@manueljacob.de> [Mon, 01 Jun 2020 20:57:14 +0200] rev 45005
absorb: preserve changesets which were already empty
Most commands in Mercurial (commit, rebase, absorb itself) don’t create empty
changesets or drop them if they become empty. If there’s a changeset that’s
empty, it must be a deliberate choice of the user. At least it shouldn’t be
absorb’s responsibility to prune them. The fact that changesets that became
empty during absorb are pruned, is unaffected by this.
This case was found while writing patches which make it possible to configure
absorb and rebase to not drop empty changesets. Even without having such config
set, I think it’s valuable to preserve changesets which were already empty.
Manuel Jacob <me@manueljacob.de> [Mon, 01 Jun 2020 11:07:33 +0200] rev 45004
absorb: preserve branch-closing changesets even if empty
This makes the behavior consistent with 'hg commit', which allows to create
otherwise empty changesets if they close the branch. A lost branch closure can
inadvertently re-open a branch, so it should be preserved.
Manuel Jacob <me@manueljacob.de> [Mon, 01 Jun 2020 10:33:00 +0200] rev 45003
absorb: preserve branch-changing changesets even if empty
This makes the behavior consistent with 'hg commit', which allows to create
otherwise empty changesets if the branch changes compared to the parent. A
branch change can denote important information, so it should be preserved.
Antoine Cezar <antoine.cezar@octobus.net> [Mon, 22 Jun 2020 15:19:35 +0530] rev 45002
rhg: add Command trait for subcommands implemented by rhg
Normalizes the interface of the cli's commands
Differential Revision: https://phab.mercurial-scm.org/D8611
Differential Revision: https://phab.mercurial-scm.org/D8648
Antoine Cezar <antoine.cezar@octobus.net> [Fri, 05 Jun 2020 10:28:58 +0200] rev 45001
rhg: add rhg crate
The goal of rhg is to speedup some of hg's commands when possible by bypassing
python entirely for the time being.
It is by no means a replacement for hg as it will not support extentions or
configuration and implement only a subset of hg's commands and options.
Only use rhg if you understand what the tradeoffs are.
Differential Revision: https://phab.mercurial-scm.org/D8610
Antoine Cezar <antoine.cezar@octobus.net> [Fri, 05 Jun 2020 08:48:09 +0200] rev 45000
hg-core: add FindRoot operation to find repository root path
Differential Revision: https://phab.mercurial-scm.org/D8609
Antoine Cezar <antoine.cezar@octobus.net> [Fri, 05 Jun 2020 08:46:35 +0200] rev 44999
hg-core: add Operation interface for high-level hg operations
A distinction is made between operations and commands.
An operation is a high-level function of mercurial whereas a command is what is exposed by the cli.
A single command can use several operations to achieve its goal.
Differential Revision: https://phab.mercurial-scm.org/D8608
Raphaël Gomès <rgomes@octobus.net> [Mon, 15 Jun 2020 18:26:40 +0200] rev 44998
rust: do a clippy pass
This is the result of running `cargo clippy` on hg-core/hg-cpython and fixing
the lints that do not require too much code churn (and would warrant a separate
commit/complete refactor) and only come from our code (a lot of warnings in
hg-cpython come from `rust-cpython`).
Most of those were good lints, two of them was the linter not being smart
enough (or compiler to get up to `clippy`'s level depending on how you see it).
Maybe in the future we could have `clippy` be part of the CI.
Differential Revision: https://phab.mercurial-scm.org/D8635
Augie Fackler <augie@google.com> [Mon, 15 Jun 2020 15:14:16 -0400] rev 44997
fuzz: add config knob for PYTHON_CONFIG_FLAGS
I'll clean this up once we get oss-fuzz to use Python 3.8 instead of
2.7, but for now we need a way to evolve the flags passed to
python-config in lockstep with the Python version. Yuck.
Differential Revision: https://phab.mercurial-scm.org/D8637
Augie Fackler <augie@google.com> [Mon, 15 Jun 2020 15:13:01 -0400] rev 44996
pyutil: this has taken so long to fix, I'm using 3.8 now
Differential Revision: https://phab.mercurial-scm.org/D8636
Augie Fackler <augie@google.com> [Mon, 15 Jun 2020 12:00:15 -0400] rev 44995
merge with stable
Manuel Jacob <me@manueljacob.de> [Fri, 12 Jun 2020 23:43:56 +0200] rev 44994
tests: remove unused creation of file and outdated text
It was forgotten to remove this in fb0de0bcd297.
Anton Shestakov <av6@dwimlabs.net> [Sat, 06 Jun 2020 19:19:27 +0800] rev 44993
tests: skip pyflakes for mercurial/thirdparty/
The current version of pyflakes (2.2.0) correctly detects one issue:
mercurial/thirdparty/selectors2.py:335:40 '...'.format(...) has unused arguments at position(s): 1
But we're not interested in fixing lint errors in third-party code, so we need
to exclude at least selectors2.py. And in the discussion for this patch it was
decided to just skip the entire thirdparty directory.
Differential Revision: https://phab.mercurial-scm.org/D8619
Augie Fackler <augie@google.com> [Tue, 09 Jun 2020 17:13:26 -0400] rev 44992
git: add debug logging when there's a mismatch in the cached heads list
The dag rebuild can be expensive, so let's try and avoid bugs where it
transparently rebuilds all the time for no reason. This would have
prevented the issue fixed in D8622.
Differential Revision: https://phab.mercurial-scm.org/D8625