Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Jan 2022 19:07:52 +0300] rev 48686
obsolete: make sure windows tests pass when stat() is given a URL
This is a temporary fix for an issue that's only visible on windows, but exists
on other platforms as well.
The issue is if we're trying to use obsstore from a remote peer and that peer
is a static HTTP repo, vfs tries to os.stat() a remote file using a URL to that
file (e.g. http://localhost/repo/.hg/store/obsstore). The next patch in this
series makes branchcache obsolescence-aware, so in certain situations exchange
process will try os.stat()ing a URL. On windows this will produce an OSError
that is not ENOENT, but EINVAL instead (because of `:` symbol, for example).
Differential Revision: https://phab.mercurial-scm.org/D12100
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 31 Jan 2022 18:38:15 +0100] rev 48685
transaction: do not rely on a global variable to post_finalize file
We can just add a new argument to the `addfilegenerator` function. This is more
explicit and therefor clearer and less error prone.
Differential Revision: https://phab.mercurial-scm.org/D12125
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 31 Jan 2022 08:44:48 +0100] rev 48684
dirstate: introduce a "tracked-key" feature
A new format variant is introduced. When used, a `tracked-key` file will be
generated. That file will be update when the set of tracked file might have
changed. This will be useful for external automation (e.g. build tool) to be
notified when the set of relevant files changes.
One of the motivation for this changes is to mitigate effect dirstate-v2 has on
such automation. Since the dirstate file is updated much more frequently on
dirstate-v2, monitoring update to that file is no longer a viable strategy.
See the associated documentation for details about the feature
To prevent older client to update the repository without updating that file, a
new requirements is introduced.
The `postfinalizegenerators` business is a bit weird, so I'll likely clean that
up soon.
Differential Revision: https://phab.mercurial-scm.org/D12124
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 31 Jan 2022 14:26:35 +0100] rev 48683
dirstate: rename the filegenerator used for writing
We will need a different name in the next changesets. Changing the name is
actually not that trivial so we do it in its own changeset.
Differential Revision: https://phab.mercurial-scm.org/D12123
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 31 Jan 2022 08:23:54 +0100] rev 48682
dirstate: use a context manager when writing the dirstate
This make sure the file is closed in a timely manner.
We define a lambda for the file opening. It might seems a bit overkill here but
a future changeset will need to do more of those.
Differential Revision: https://phab.mercurial-scm.org/D12122
Raphaël Gomès <rgomes@octobus.net> [Wed, 02 Feb 2022 17:24:05 +0100] rev 48681
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Wed, 02 Feb 2022 17:02:34 +0100] rev 48680
Added signature for changeset
75676122c2bf
Raphaël Gomès <rgomes@octobus.net> [Wed, 02 Feb 2022 17:02:09 +0100] rev 48679
Added tag 6.0.2 for changeset
75676122c2bf
Raphaël Gomès <rgomes@octobus.net> [Wed, 02 Feb 2022 15:03:29 +0100] rev 48678
relnotes: add 6.0.1 and 6.0.2 notes
Differential Revision: https://phab.mercurial-scm.org/D12130
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 01 Feb 2022 15:19:50 +0100] rev 48677
branchmap: stop writing cache for uncommitted data
If we are about to write the branch while a transaction is active. we delay
that write. After the transaction is closed, we flush all the write we delayed
(unless they have been written in between).
Differential Revision: https://phab.mercurial-scm.org/D12128
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 31 Jan 2022 19:28:58 +0100] rev 48676
transaction: add a way to know a transaction has been finalized
This will be useful to fix the timing of the branchmap on disk caching.
Differential Revision: https://phab.mercurial-scm.org/D12127
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 01 Feb 2022 15:14:05 +0100] rev 48675
branchmap: Add a test about writing branchmap and aborted transaction
It turn out that we update the branchmap on disk whenever we recompute it…
including in a middle of a transaction. This means writing the new branchmap too
early (the changeset are not visible yet) and worse… it mean writing branchmap
for transaction we rollback.
so we introduce a test to highlight the issue (and prevent it to regress in the
future).
Differential Revision: https://phab.mercurial-scm.org/D12126
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 01 Feb 2022 16:36:20 +0100] rev 48674
dirstate-v2: rename the configuration to enable the format
The rename of the old experimental name was overlooked before the 6.0 release.
We rename everything to use the new name (and keep the released name as an alias
for compatibility).
Differential Revision: https://phab.mercurial-scm.org/D12129
Martin von Zweigbergk <martinvonz@google.com> [Wed, 26 Jan 2022 15:32:18 -0800] rev 48673
arbitraryfilectx: use our existing helpers for reading and writing files
Differential Revision: https://phab.mercurial-scm.org/D12090