Matt Harbison <matt_harbison@yahoo.com> [Fri, 11 Jun 2021 23:57:14 -0400] rev 47412
py3: byteify the version string passed to the deprecation warning method
The other callers were already correct.
Differential Revision: https://phab.mercurial-scm.org/D10873
Matt Harbison <matt_harbison@yahoo.com> [Fri, 11 Jun 2021 23:51:27 -0400] rev 47411
urlutil: byteify several localized messages
Flagged by pytype.
Differential Revision: https://phab.mercurial-scm.org/D10872
Matt Harbison <matt_harbison@yahoo.com> [Fri, 11 Jun 2021 23:50:29 -0400] rev 47410
urlutil: use the deprecation warning function on the `ui` object
PyCharm flagged this as not existing, and I suspect a copy/paste error.
Differential Revision: https://phab.mercurial-scm.org/D10871
Simon Sapin <simon.sapin@octobus.net> [Wed, 02 Jun 2021 11:25:18 +0200] rev 47409
dirstate-v2: Store a hash of ignore patterns (.hgignore)
Later, this help extend `read_dir` caching to directories that contain ignored
files (but no unknown files). Such cache must be invalidated when ignore patterns
change since a formerly-ignored file might become unknown.
This helps the default configuration of `hg status` where unknown files must
be listed, but ignored files are not.
Differential Revision: https://phab.mercurial-scm.org/D10836
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 07 Jun 2021 17:29:32 +0530] rev 47408
rhg: propogate error coming from HgError::Abort to CommandError
Differential Revision: https://phab.mercurial-scm.org/D10839
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 07 Jun 2021 17:27:49 +0530] rev 47407
rhg: add exit code to HgError::Abort()
My previous attempts to have rhg end with correct exit code was more of bug
hunting. I found cases which were failing and fixed them. But as one might
expect, more tests started failing.
Let's add exit code `HgError::Abort()` and make it users explicitly tell what
exit code they want.
Differential Revision: https://phab.mercurial-scm.org/D10838
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 07 Jun 2021 17:19:46 +0530] rev 47406
rhg: split non_repo_config and `--config` loading in different functions
This will help us in better handling of error caused when trying to
load `--config` values.
Differential Revision: https://phab.mercurial-scm.org/D10837
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 24 May 2021 16:27:54 +0530] rev 47405
rhg: look for repository in ancestors also instead of cwd only
Last patch introduced config reading at startup to parse value of `--repository`
flag. However, that patch only tried to check for current repository at current
working directory and not it's ancestors. This patch fixes that.
Differential Revision: https://phab.mercurial-scm.org/D10767
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 11 Apr 2021 00:50:10 +0530] rev 47404
rhg: read [paths] for `--repository` value
hg parses `-R` and `--repository` CLI arguments "early" in order to know which
local repository to load config from. (Config can then affect whether or how to
fall back.)
The value of of those arguments can be not only a filesystem path, but also an
alias configured in the `[paths]` section. This part was missing in rhg and
this patch implements that.
The current patch still lacks functionality to read config of current repository
if we are not at root of repo. That will be fixed in upcoming patches.
A new crate `home` is added to get path of home directory.
Differential Revision: https://phab.mercurial-scm.org/D10296
Augie Fackler <augie@google.com> [Mon, 07 Jun 2021 17:10:35 -0400] rev 47403
merge: with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 18:09:29 +0200] rev 47402
revlog: allow to pass an existing docket to `_loadindex()`
This will be when switching undelying files, for examples during censors and strip operation with rvlog-v2.
Differential Revision: https://phab.mercurial-scm.org/D10800
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 18:10:15 +0200] rev 47401
revlog: add a ways to blacklist some revision when searching for a delta
This will be useful to recompute appropriate deltas one the fly during
censor/strip operation with revlog-v2.
Differential Revision: https://phab.mercurial-scm.org/D10799
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 18:08:52 +0200] rev 47400
util: add `nb_bytes` argument to `copyfile` to partially copy a file
When set, this allow to copy only the first `nb_bytes` of a file. This will be
useful for censor/strip operation with revlogv2.
Differential Revision: https://phab.mercurial-scm.org/D10798
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 16:20:36 +0200] rev 47399
revlog: move `revisioninfo` in `revlogutils`
We will need it in other utility module. So lets extract it from `revlog.py`,
the module is too large already anyway.
Differential Revision: https://phab.mercurial-scm.org/D10797
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 17:11:49 +0200] rev 47398
revlog: use the `entry` function in bundlerepo
We can use some of the default value again!
Differential Revision: https://phab.mercurial-scm.org/D10796
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 17:11:21 +0200] rev 47397
revlog: use entry in revlogv0.py
This make things clearer and we can reply on some of the default value directly.
Differential Revision: https://phab.mercurial-scm.org/D10795
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 17:11:10 +0200] rev 47396
revlog: use the new `entry` function in revlog.py
This just make the construction of the tuple clearer.
Differential Revision: https://phab.mercurial-scm.org/D10794
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 17:10:56 +0200] rev 47395
revlog: add a function to build index entry tuple
Keeping index entry as tuple make sense for performance reason, however it does
not means we need to manually build that tuple for all piece of python code that
are not performance critical.
So we add a nice function responsible to build the tuple using argument using
explicit keyword argument.
Differential Revision: https://phab.mercurial-scm.org/D10793
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 30 May 2021 16:19:36 +0200] rev 47394
revlog: move `offset_type` to `revlogutils`
This multiple module are using this so it make sense to move it at the utility
level.
Differential Revision: https://phab.mercurial-scm.org/D10792
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 22 May 2021 00:06:22 +0200] rev 47393
revlog: move entry documentation alongside new related constants
Accessing individual index-entry element is usually done using integer directly.
This is presumably for "performance reasons". However as the index entry gain
more and more element it seems useful to get the option to use symbolic constant
to access item, for both clarify and versatility. We will probably keep using
integer for performance critical path, but less critical code may start using
them now that they are declared.
Differential Revision: https://phab.mercurial-scm.org/D10791
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 May 2021 20:08:11 +0200] rev 47392
censor: drop size limitation on the tombstone
This limitation seems to date back from a previous implementation of censors,
were the revision were censored" in place. For a long while the implementation
actually involved rewriting the revlog before replacing the original data. So it looks like we can safely remove this limitation.
The tests suite agrees.
Differential Revision: https://phab.mercurial-scm.org/D10790
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 29 May 2021 00:11:56 +0200] rev 47391
revlog: move censoring code in a dedicated module
This code is quite specific and we are about to add more of it for revlog-v2
(and other derived version). So we move this code in a dedicated module in
`mercurial/revlogutils/`. This looks like a good fit.
The diff is huge because I used `hg copy` to create the new file so that we keep
the history of the censor code.
Differential Revision: https://phab.mercurial-scm.org/D10789
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 29 May 2021 00:11:32 +0200] rev 47390
censor: reduce risk of censor test blowing up output limit
The censored file is really big, and we keep using `hg cat` on it, with the
assumption that it is censored. However, when it is not censored, the amount of
extra line output is huge and quickly saturate the backlog of terminal and CI
system.
Differential Revision: https://phab.mercurial-scm.org/D10788
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 28 May 2021 23:41:17 +0200] rev 47389
revlog: store sidedata in their own file
This makes sidedata manipulation simpler and results in more compact data when
traversing either data or sidedata.
Differential Revision: https://phab.mercurial-scm.org/D10787
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 28 May 2021 23:41:12 +0200] rev 47388
revlog: fix docket.date_filepath docstring
This was copy-pasted too quickly.
Differential Revision: https://phab.mercurial-scm.org/D10786
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 May 2021 04:09:30 +0200] rev 47387
revlog: use dedicated code for reading sidedata
We are about to introduce a new, dedicated, file to store sidedata. Before doing so, we make sidedata reading go through different code as reading data chunk. This will simplify some of the complexity of the next changesets.
The reading is very simple right now and will need some improvement later to
reuse some of the caching strategy we use for the data file.
Differential Revision: https://phab.mercurial-scm.org/D10785
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 May 2021 04:09:10 +0200] rev 47386
revlog: simplify "partial read" error message
We are about to reuse this message in more places and the current handling is
pretty hard to read. So we eat two pie with one stone and clean up this.
Differential Revision: https://phab.mercurial-scm.org/D10784
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 May 2021 03:41:02 +0200] rev 47385
revlog: no longer return sidedata from `_revisiondata`
All users have been migrated.
When they was introduced sidedata where grouped with the actual revision data
and unpacking one came with the other. Sidedata moved be stored "independently"
and it no longer make sense to retrieve both at the same time unconditionnaly.
Differential Revision: https://phab.mercurial-scm.org/D10783
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 May 2021 03:28:15 +0200] rev 47384
revlog: use `self.sidedata` directly in `revlog.clone`
We want to change `revlog._revisiondata` signature, so we need to migrate users
away.
Differential Revision: https://phab.mercurial-scm.org/D10782
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 27 May 2021 03:23:34 +0200] rev 47383
revlog: use `self.sidedata` directly to construct changelogrevision
We want to change `revlog._revisiondata` signature, so we need to migrate users
away.
Differential Revision: https://phab.mercurial-scm.org/D10781