Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Apr 2021 03:24:26 +0200] rev 49207
filelog: show the passed argument on error
The error now do more than stating what it need. It also state what it got.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Apr 2021 03:23:46 +0200] rev 49206
manifest: improve error message in case for tree manifest
In the case where tree manifest is not enabled but we still receive an sub
directory information for the manifest. The error now inform which sub-directory
was passed.
Anton Shestakov <av6@dwimlabs.net> [Wed, 04 May 2022 13:53:12 +0400] rev 49205
doc: use an absolute path in sys.path
The idea and rationale is similar to https://phab.mercurial-scm.org/D12599
(landed as
1b6e381521c5).
Differential Revision: https://phab.mercurial-scm.org/D12622
Anton Shestakov <av6@dwimlabs.net> [Wed, 04 May 2022 13:48:40 +0400] rev 49204
check-py3-compat: use an absolute path in sys.path
The idea and rationale is similar to https://phab.mercurial-scm.org/D12599
(landed as
1b6e381521c5).
Differential Revision: https://phab.mercurial-scm.org/D12621
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 May 2022 15:19:57 +0200] rev 49203
branchmap: use a context manager when writing the branchmap
This is cleaner and safer. The previous code date from long before we had
context manager available.
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 19 May 2022 12:23:38 +0100] rev 49202
rhg: align the dirstate v2 writing algorithm with python
Use the same algorithm of file append as python does, where we do a manual
seek instead of relying on O_APPEND. (see the reasons in the inline comment)
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 17 May 2022 14:59:25 +0100] rev 49201
test-dirstate: actually test the append code path in dirstate v2
Apparently it's not sufficient to modify a file to force the dirstate
write-out, so the append code path was untested.
By removing a file instead of changing we're forcing append to happen.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Apr 2022 05:01:58 +0200] rev 49200
auto-upgrade: skip the operation if the repository cannot be locked
This seems like a fine default behavior for now. If some users wants something
more aggressive we can make the behavior configurable in the future.
Differential Revision: https://phab.mercurial-scm.org/D12619
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Apr 2022 04:45:48 +0200] rev 49199
auto-upgrade: add a test case where the repository is already locked
This show the current behavior when the repository to auto-upgrade is already
locked.
The current behavior is to abort, which is probably not great. Now that we have
a proper test, we can think about the behavior we wants in a later tests.
Differential Revision: https://phab.mercurial-scm.org/D12618
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Apr 2022 04:43:34 +0200] rev 49198
wait-on-file: properly wait on any files and symlink
This make the utility more useful, for example to wait on a lock file.
We also add an explicit -L check since the lock are "weird" symlink.
Differential Revision: https://phab.mercurial-scm.org/D12617
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Apr 2022 04:41:09 +0200] rev 49197
debuglock: make the command more useful in non-interactive mode
The existing prompt mode simply release the lock immediately in non-interactive
mode. That is quite useless in the test so now the non-interactive mode simply
wait for a signal.
Differential Revision: https://phab.mercurial-scm.org/D12616
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Apr 2022 03:36:31 +0200] rev 49196
auto-upgrade: add a test case with no permission to lock the repository
This show the current behavior when the repository is unlockable.
The current behavior is to abort, which is probably not great. Now that we have
a proper test, we can think about the behavior we want in a later changeset.
Differential Revision: https://phab.mercurial-scm.org/D12615
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Mar 2022 14:14:52 +0100] rev 49195
auto-upgrade: introduce a way to auto-upgrade to/from dirstate-v2
This is similar to what we introduced for `share-safe`, but apply to the
tracked-hint feature.
Differential Revision: https://phab.mercurial-scm.org/D12614
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Apr 2022 05:20:05 +0200] rev 49194
auto-upgrade: introduce a way to auto-upgrade to/from tracked-hint
This is similar to what we introduced for `share-safe`, but apply to the
tracked-hint feature.
Differential Revision: https://phab.mercurial-scm.org/D12613
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Apr 2022 19:30:32 +0200] rev 49193
upgrade: split some logic from UpgradeOperation
The logic for automatic-upgrade and the upgrade-repo should be able to use the
same code. However that code often need an UpgradeOperation object to function.
So we start spliting the Operation into a minimal component that we will be
able to reuse outside of the "classic" upgrade path.
We will put the base-class to use in the next changeset.
Differential Revision: https://phab.mercurial-scm.org/D12612
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Apr 2022 05:19:47 +0200] rev 49192
auto-upgrade: introduce a way to auto-upgrade to/from share-safe
This is the first "automatic-upgrade" capability. In the following commits,
similar features are coming for other "fast to upgrade" formats.
This is different from the `safe-mismatch.source-not-safe` and
`safe-mismatch.source-safe` configuration that deal with mismatch between a
share and its share-source. Here we are dealing with mismatch between a
repository configuration and its actual format.
We will need further work for cases were the repository cannot be locked. A
basic protection is in place to avoid a infinite loop for now, but it will get
proper attention in a later changeset.
Differential Revision: https://phab.mercurial-scm.org/D12611
Raphaël Gomès <rgomes@octobus.net> [Fri, 15 Apr 2022 22:02:07 +0200] rev 49191
rust: make requirements public
These can be used by any client crates (including `rhg`), no need to make them
private to the crate.
Differential Revision: https://phab.mercurial-scm.org/D12610
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 10 May 2022 20:30:26 +0100] rev 49190
clone: use better names for temp files
Before this commit, the file names are /tmp/tmpn8smvlr8
After this commit, they are more like /tmp/hg-clone-n8smvlr8/00manifest.ndb3qj52v6,
which makes it much clearer what these files correspond to.
Differential Revision: https://phab.mercurial-scm.org/D12623
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 May 2022 16:27:14 +0400] rev 49189
tests: make sure .js files stay in ASCII encoding (
issue6559)
Differential Revision: https://phab.mercurial-scm.org/D12620
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 May 2022 15:48:53 +0200] rev 49188
ci: have rust-cargo-test inherit from all
This help changing configuration for everything at the same time.
This was initially the case before being dropped by mistake in
0ddd5e1f5f67.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 May 2022 01:34:51 +0100] rev 49187
copies-sdc: mark upgrade action as changelog only
We don't need to recompute the other revlog to add the changelog-v2 feature.
This simplify upgrade that use copies-sdc (as shown in the tests).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 May 2022 01:24:16 +0100] rev 49186
changelog-v2: mark upgrade action as changelog only
We don't need to recompute the others revlog to add the changelog-v2 feature.
This does not have much effect in practice as the `copies-sdc` upgrade still
triggers the other revlogs. This will be fixed in the next changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 May 2022 01:40:37 +0100] rev 49185
copies-sdc: no longer suppress the upgrade output
To make sure the upgrade simplification we need are taken into account, we need
to see more of the output of `debugupgraderepo`. The --quiet flag simplify the
output a lot and globing the `preserved` field mean this output should remains
stable across (future) unrelated changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 May 2022 01:37:59 +0100] rev 49184
copies-sdc: no longer use revlogv2 in `test-copies-in-changeset.t`
We only need changelog-v2 and its usage is automatically inferred. So we can
simplify the test by dropping this.
This is important to test future simplification of the update process in the
coming changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 May 2022 23:12:49 +0100] rev 49183
fix-ci: backed out changeset
308e45f7b455
The chg variant of the CI see a failure on `tests/test-narrow-pull.t`.
Bisecting point the failure as starting at this small changeset…
Backing it out, restore the CI on default. It was never broken on
stable, which is even more puzzling.
Raphaël Gomès <rgomes@octobus.net> [Tue, 17 May 2022 12:05:09 +0100] rev 49182
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 May 2022 00:09:51 +0100] rev 49181
ci: do not trigger phabricator for merge-request
The fast the phabricator steps has a `rules` entry makes it selected for the
special `merge_requests` pipelines. The other ones behave as default and are not
selected tot the mrege_request pipelines.
This result in a second pipeline to be created, with only the phabricator
pipeline in it. Which usually succeed fast (since there is nothing to do).
This is harmful as this create a false sense of "the series is passing" and
Gitlab will use this simplistic pipeline for validation.
By explicitly preventing the pipeline to be created in the merge-request case,
we prevent this situation to happens
Note that the job will be dropped (alonside phabricator) in the next two weeks
anyway.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 May 2022 07:36:37 -0700] rev 49180
branching: merge with stable
Kyle Lippincott <spectral@google.com> [Wed, 11 May 2022 17:56:29 -0700] rev 49179
amend: stop specifying matcher, get all copies in wctx
When we're recreating the commit that we'll be committing, we don't want to
filter our copy information based on just the *new* [versions of the] files
we're amending. The test has an example of this case, but for clarity, the
situation is:
```
$ hg cp src dst && hg commit
<do some work>
$ hg amend some_unrelated_file.txt
$ hg status --copies
A dst
A some_unrelated_file.txt
```
What *should* happen is that `dst` should remain marked as a copy of `src`, but
this did not previously happen. `matcher` here only includes the files that were
specified on the commandline, so it only gets the copy information (if any, in
this example there's not) for `some_unrelated_file.txt`. When it goes to apply
the memctx to actually create the commit, the file copy information is
incomplete and loses the information for the files that shouldn't have been
affected at all by the amend.
Differential Revision: https://phab.mercurial-scm.org/D12625
Kyle Lippincott <spectral@google.com> [Wed, 11 May 2022 17:56:10 -0700] rev 49178
amend: add test showing poor behavior when copies are involved
Differential Revision: https://phab.mercurial-scm.org/D12624
Martin von Zweigbergk <martinvonz@google.com> [Thu, 21 Apr 2022 10:39:52 -0700] rev 49177
rust-repo: make `Send` by not storing functions in `LazyCell`
We (Google) want to use `Repo` in a context where we can store it in
`Mutex<Repo>`. However, that currently doesn't work because it's not
`Send` because the `LazyCell` initialization functions are not
`Send`. It's easy to fix that by passing them to the `get_or_init()`
and `get_mut_or_init()` functions. We'll probably also want `Repo` to
be `Send` (and even `Sync`) in core later, so this seems like a step
in the right direction.
Differential Revision: https://phab.mercurial-scm.org/D12582
Augie Fackler <augie@google.com> [Thu, 05 May 2022 14:45:28 -0400] rev 49176
obsolete: remove two unused constants
I'm not sure what these constants were intended for, but they have no
users so it's time to say goodbye.
Differential Revision: https://phab.mercurial-scm.org/D12609
Augie Fackler <augie@google.com> [Thu, 05 May 2022 14:47:26 -0400] rev 49175
node: manually implement Debug
I got too irritated today with the default Debug implementation of
hg::revlog::Node while playing with a new parser. This isn't quite
what I wanted, but it wasn't much code and it at least gives you
output that's easy to visually compare to a node.hex()ed identifier
from the Python side of things.
Sadly, this doesn't influence the output in lldb or the VSCode
debugger extension that uses lldb under the covers, but it at least
means debug prints are a little more useful.
Differential Revision: https://phab.mercurial-scm.org/D12608
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 05 May 2022 15:38:29 +0100] rev 49174
censor: make rhg fall back to python when encountering a censored node
This is to make it support censor.policy=ignore without having
to duplicate that logic.
Also, change the censor test in such a way that it uses rhg now,
because extensions are disabled except when we call [hg censor].
Differential Revision: https://phab.mercurial-scm.org/D12607
Matt Harbison <matt_harbison@yahoo.com> [Wed, 04 May 2022 16:01:55 -0400] rev 49173
contrib: migrate off of a couple of bitbucket URLs
I noticed this when diffing the thg installer against Mercurial to see what was
missing. There are a handful of other URLs in i18n and extension example help
text if anyone cares to update those.
Differential Revision: https://phab.mercurial-scm.org/D12606
Matt Harbison <matt_harbison@yahoo.com> [Wed, 04 May 2022 13:39:49 -0400] rev 49172
diff: add help text to highlight the ability to do "merge diffs"
Differential Revision: https://phab.mercurial-scm.org/D12605
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 May 2022 12:10:28 +0400] rev 49171
followlines: don't put Unicode directly into the .js file (
issue6559)
Apparently some web server setups may serve this file in a different encoding
than UTF-8, and that results in visual garbage in the followlines button that
renders for every line in a file. So instead of using this Unicode character in
UTF-8 we can encode it as \u2212. Or, to be more explicit, we can use −
HTML entity, which resolves into exactly that character.
Since now we're using innerHTML property to set the minus part of the button,
let's use it to set the plus part as well (even though the plus sign was plain
ASCII). A wise man once said "A foolish consistency is the hobgob... eh,
whatever." Throw a brick at me if this makes things worse.
Differential Revision: https://phab.mercurial-scm.org/D12597
Matt Harbison <matt_harbison@yahoo.com> [Thu, 28 Apr 2022 11:20:17 -0400] rev 49170
wix: bump the minimum Windows required to 8.1
PyOxidizer binaries are built with py 3.9.6, so not even Windows 7 is supported.
Unfortunately, there don't appear to be more recent values for newer versions of
Windows, but at least Windows 8.1 is still in extended support for another 9
months or so.
Differential Revision: https://phab.mercurial-scm.org/D12596
Matt Harbison <matt_harbison@yahoo.com> [Thu, 28 Apr 2022 11:01:41 -0400] rev 49169
wix: drop python2 conditionals
Differential Revision: https://phab.mercurial-scm.org/D12595
Anton Shestakov <av6@dwimlabs.net> [Wed, 27 Apr 2022 19:45:19 +0400] rev 49168
tests: fix misspelling of supersede
Differential Revision: https://phab.mercurial-scm.org/D12589
Martin von Zweigbergk <martinvonz@google.com> [Tue, 26 Apr 2022 09:06:30 -0700] rev 49167
filemerge: add configs to disable some or all partial merge tools
When rolling out partial merge tools to users, it's useful to be able
to easily turn one or all of them off if a problem is discovered. This
patch adds support for that. They can of course also be useful for
individual users to be able to temporarily turn off a tool they are
otherwise using.
Differential Revision: https://phab.mercurial-scm.org/D12588
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 04 May 2022 17:40:23 +0100] rev 49166
censor: fix [hg update] away from a revision with censored files
Differential Revision: https://phab.mercurial-scm.org/D12604
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 22 Apr 2022 14:39:00 +0100] rev 49165
censor: demonstrate a bug
Differential Revision: https://phab.mercurial-scm.org/D12584
Raphaël Gomès <rgomes@octobus.net> [Wed, 04 May 2022 18:17:44 +0200] rev 49164
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Wed, 04 May 2022 18:04:46 +0200] rev 49163
Added signature for changeset
0ddd5e1f5f67
Raphaël Gomès <rgomes@octobus.net> [Wed, 04 May 2022 18:04:06 +0200] rev 49162
Added tag 6.1.2 for changeset
0ddd5e1f5f67
Raphaël Gomès <rgomes@octobus.net> [Wed, 04 May 2022 18:00:01 +0200] rev 49161
ci: remove py2-rust support
Nobody cares about this very narrow usecase, and py2 support is over by
July 1st. This helps with the CI load, and removes some flakiness.
Raphaël Gomès <rgomes@octobus.net> [Wed, 04 May 2022 17:45:20 +0200] rev 49160
relnotes: add release notes for 6.1.2