Mercurial > hg
view relnotes/6.0 @ 48598:a6f16ec07ed7
stream-clone: add a explicit test for format change during stream clone
They are different kind of requirements, the one which impact the data storage
and are relevant to the files being streamed and the one which does not. For
example some requirements are only relevant to the working copy, like sparse, or
dirstate-v2.
Since they are irrelevant to the content being streamed, they do not prevent the
receiving side to use streaming clone and mercurial skip adverting them over
the wire and, ideally, within the bundle.
In addition, this let the client decide to use whichever format it desire for
the part that does not affect the store itself. So the configuration related to
these format are used as normal when doing a streaming clone.
In practice, the feature was not really tested and is badly broken with bundle-2,
since the requirements are not filtered out from the stream bundle.
So we start with adding simple tests as a good base before the fix and adjust
the feature.
Differential Revision: https://phab.mercurial-scm.org/D12029
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 17 Jan 2022 18:51:47 +0100 |
parents | 229f5ee1a08a |
children | 75676122c2bf |
line wrap: on
line source
== New Features == * `debugrebuildfncache` now has an option to rebuild only the index files * a new `bookmarks.mode` path option have been introduced to control the bookmark update strategy during exchange with a peer. See `hg help paths` for details. * a new `bookmarks.mirror` option has been introduced. See `hg help bookmarks` for details. * more commands support detailed exit codes when config `ui.detailed-exit-codes` is enabled == Default Format Change == == New Experimental Features == * '''Major feature''': version 2 of the dirstate is available (the first version is as old as Mercurial itself). It allows for much faster working copy inspection (status, diff, commit, update, etc.) and richer information (symlink and exec info on Windows, etc.). The format has been frozen with room for some future evolution and the current implementations (Python, Python + C, Python + Rust or pure Rust) should be compatible with any future change or optimization that the format allows. You can get more information [[https://www.mercurial-scm.org/repo/hg/file/tip/mercurial/helptext/internals/dirstate-v2.txt | in the internal documentation]] * Added a new `web.full-garbage-collection-rate` to control performance. See de2e04fe4897a554b9ef433167f11ea4feb2e09c for more information * Added a new `histedit.later-commits-first` option to affect the ordering of commits in `chistedit` to match the order in `hg log -G`. It will affect the text-based version before graduating from experimental. == Bug Fixes == * `hg fix --working-dir` now correctly works when in an uncommitted merge state * Unintentional duplicated calls to `hg fix`'s internals were removed, making it potentially much faster * `rhg cat` can be called without a revision * `rhg cat` can be called with the `.` revision * `rhg cat` is more robust than before with regards to edge cases. Some still remain like a tag or bookmark that is ambiguous with a nodeid prefix, only nodeids (prefixed or not) are supported as of now. * `rhg cat` is even faster * `rhg` (Rust fast-path for `hg`) now supports the full config list syntax * `rhg` now parses some corner-cases for revsets correctly * Fixed an `fsmonitor` on Python 3 during exception handling * Lots of Windows fixes * Lots of miscellaneous other fixes * Removed a CPython-specific compatibility hack to improve support for alternative Python implementations == Backwards Compatibility Changes == == Internal API Changes == The following functions have been removed: * `dirstate.normal` * `dirstate.normallookup` * `dirstate.otherparent` * `dirstate.add` * `dirstate.addfile` * `dirstate.remove` * `dirstate.drop` * `dirstate.dropfile` * `dirstate.__getitem__` * `dirstatemap.nonnormalentries` * `dirstatemap.nonnormalset` * `dirstatemap.otherparentset` * `dirstatemap.non_normal_or_other_parent_paths` * `dirstateitem.dm_nonnormal` * `dirstateitem.dm_otherparent` * `dirstateitem.merged_removed` * `dirstateitem.from_p2` * `dirstateitem.merged` * `dirstateitem.new_merged` * `dirstateitem.new_added` * `dirstateitem.new_from_p2` * `dirstateitem.new_possibly_dirty` * `dirstateitem.new_normal` * `dirstateitem.from_p2_removed` Miscellaneous: * `wireprotov1peer`'s `batchable` is now a simple function and not a generator anymore * The Rust extensions (and by extension the experimental `rhg status`) only use a tree-based dirstate in-memory, even when using dirstate-v1. See bf8837e3d7cec40fe649c47163a3154dda03fa16 for more details * The Rust minimum supported version is now 1.48.0 in accordance with out policy of keeping up with Debian stable * The test harness plays nicer with the NixOS sandbox