Manuel Jacob <me@manueljacob.de> [Fri, 05 Jun 2020 01:54:13 +0200] rev 44996
perf: make `hg perfwrite` more flexible
The more flexible command was used recently while finding a solution for a
buffering bug (eventually fixed in
f9734b2d59cc (the changeset description uses
a different benchmark)).
In comparison to the previous version, the new version is much more flexible.
While using it, the focus was on testing small writes. For this reason, by
default it calls ui.write() 100 times with a single byte plus one newline byte,
for 100 lines.
To get the previous behavior, run `hg perfwrite --nlines=100000 --nitems=1
--item='Testing write performance' --batch-line`.
Manuel Jacob <me@manueljacob.de> [Tue, 23 Jun 2020 04:55:27 +0200] rev 44995
chg: fix typo
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Jun 2020 09:27:02 -0700] rev 44994
copies: implement __repr__ on branch_copies for debugging
Differential Revision: https://phab.mercurial-scm.org/D8650
Yuya Nishihara <yuya@tcha.org> [Sat, 20 Jun 2020 11:10:23 +0900] rev 44993
phases: remove useless lookup of repo[rev].rev() in _retractboundary
changectx object is no longer needed thanks to
a54ee130210a.
Manuel Jacob <me@manueljacob.de> [Thu, 04 Jun 2020 06:44:00 +0200] rev 44992
ui: replace `self._ferr` with identical `dest`
Originally, it was part of a larger change that was abandoned. IMHO it makes the
code slightly cleaner and saves one attribute access, so I decided to send it
anyway instead of throwing it away.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 20 Jun 2020 11:51:34 +0530] rev 44991
absorb: make it clear what happens when no input
Differential Revision: https://phab.mercurial-scm.org/D8643
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 17 Jun 2020 17:46:30 +0530] rev 44990
tests: add hghave rule 'setprocname' to check if osutil.setprocname and use it
setprocname is not present when we build a pure version. This leads to output
changes in test-chg.t
This should make test suite green on Python 2 pure build with chg.
Differential Revision: https://phab.mercurial-scm.org/D8638
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jun 2020 20:42:14 +0530] rev 44989
util: flush stderr explicitly after using warnings.warn()
Due to some unknown reasons, when using chg with python3, the warnings.warn()
output is not flushed.
Fixes test-devel-warnings.t on py3 with chg.
Joerg Sonnenberger <joerg@bec.de> [Thu, 18 Jun 2020 22:23:22 +0200] rev 44988
phases: improve performance of _retractboundary
The old version repeatedly converts nodes to revisions, which is a
moderately expensive operation. Mapping all new changes once to
revisions and back at the end reduces the time spend in _retractboundary
during the unbundling of NetBSD's src from 67s to 17s.
Differential Revision: https://phab.mercurial-scm.org/D8641
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 18 Jun 2020 17:54:39 +0530] rev 44987
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 44986
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 44985
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 44984
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 44983
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 44982
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 44981
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