relnotes/6.1
author Manuel Jacob <me@manueljacob.de>
Sat, 21 May 2022 23:31:30 +0200
changeset 49232 4c57ce494a4e
parent 49160 4420e06c8810
child 49316 ce50d95cfa57
child 49364 e8ea403b1c46
permissions -rw-r--r--
worker: stop relying on garbage collection to release memoryview On CPython, before resizing the bytearray, all memoryviews referencing it must be released. Before this change, we ensured that all references to them were deleted. On CPython, this was enough to set the reference count to zero, which results in garbage collecting and releasing them. On PyPy, releasing the memoryviews is not necessary because they are implemented differently. If it would be necessary however, ensuring that all references are deleted would not be suffient because PyPy doesn’t use reference counting. By using with statements that take care of releasing the memoryviews, we ensure that the bytearray is resizable without relying on implementation details. So while this doesn’t fix any observable bug, it increases compatiblity with other and future Python implementations.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48804
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     1
'''This is the last release to support Python 2. Mercurial is Python 3 only starting with 6.2'''
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
     2
49160
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
     3
= Mercurial 6.1.2 =
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
     4
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
     5
 * Improve Windows test suite
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
     6
 * Fix `debuglock` not ignoring a missing lockfile when forcing a lock
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
     7
 * Improve help of `ui.large-file-limit`
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
     8
 * Set the large-file-limit to 10MB (from 10MiB) for clarity
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
     9
 * While rewriting desc hashes, ignore ambiguous prefix "hashes"
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    10
 * Fix a crash in partial amend with copies
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    11
 * Fix a py3 compatiblity bug
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    12
 * Fix incorrect metadata causing dirstate-v2 data loss in edge case
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    13
 * Fix cleanup of old dirstate-v2 data files when using `rhg`
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    14
 * Make reference to `.hg/last_message.txt` relative in commit
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    15
 * Fix an infinite hang when `rhg` is used in the background
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    16
 * Fix Python DLL loading bug in Windows
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    17
 * Add `--docket` flag to `debugstate` to check out dirstate-v2 metadata
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    18
 * Remove `debugdirstateignorepatternhash` in favor of `debugstate --docket`
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    19
 * Fix incorrect metadata causing systematic complete dirstate-v2 rewrite
4420e06c8810 relnotes: add release notes for 6.1.2
Raphaël Gomès <rgomes@octobus.net>
parents: 49006
diff changeset
    20
49006
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    21
= Mercurial 6.1.1 =
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    22
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    23
 * Fix Rust compilation on `aarcch64`
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    24
 * Fix Rust compilation on architectures where `char` is unsigned
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    25
 * When the merge tool uses `$output`, don't leave markers in `$local`
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    26
 * Improve test suite support on big-endian platforms
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    27
 * Cap the number of concurrent threads to 16 in Rust `hg status` to prevent huge speed regression at higher thread counts
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    28
 * Fix `amend` with copies in extras
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    29
 * Abort if commit we're trying to `unamend` was not created by `hg [un]amend`
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    30
 * Fix file name in the pullbundle help text
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    31
 * Fix an issue with data not being correctly reset in the C implementation of dirstate-v2
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    32
 * Fix issue6673 where some tags were missing from cache after a merge
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    33
 * Fix stream-cloning a repo with empty requirements
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    34
 * Fix a false warning about content-divergence creation
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    35
 * Fix silly blackbox entries when hg is interrupted
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    36
 * Fix unsoundness (no known exploits) in Rust extensions (see cfd270d83169 and dd6b67d5c256)
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    37
 * Fix Rust dirstate counters not being updated correctly leading to some potential bugs (none known)
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    38
 * Stop relying on a compiler implementation detail in Rust HgPath
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    39
5bd6bcd31dd1 relnotes: add notes for 6.1.1
Raphaël Gomès <rgomes@octobus.net>
parents: 48804
diff changeset
    40
= Mercurial 6.1 =
48804
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    41
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    42
== New Features ==
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    43
  * Added a way of specifying required extensions that prevent Mercurial from starting if they are not found. See `hg help config.extensions`.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    44
  * Merge conflict markers have been made clearer (see backwards compatibility below)
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    45
  * Improve detailed error codes
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    46
  * Added a hint about mangled whitespace on bad patch
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    47
  * Explain which order the commits are presented in `chistedit`
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    48
  * Introduce a `dirstate-tracked-hint` feature to help automation keep track of changes to tracked files. See `hg help config.use-dirstate-tracked-hint`.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    49
  * Shared repositories can be upgraded if the upgrade is specific to the share. For now, this only applies to `dirstate-v2` and `dirstate-tracked-hint`.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    50
  * When using the `narrow` extension, non-conflicting changes to files outside of the narrow specification can now be merged.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    51
  * When cloning a repository using stream-clone, the client can now control the repository format variants to use as long as the stream content does not restrict that variant.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    52
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    53
== Default Format Change ==
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    54
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    55
These changes affect newly created repositories (or new clones) done with Mercurial 6.1.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    56
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    57
  * The `share-safe` format variant is now enabled by default. It makes configuration and requirements more consistent across repository and their shares. This introduces a behavior change as shares from a repository using the new format will also use their main repository's configuration. See `hg help config.format.use-share-safe` for details about the feature and the available options for auto-upgrading existing shares.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    58
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    59
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    60
== New Experimental Features ==
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    61
  * The pure Rust version of Mercurial called `rhg` added support for most common invocations of `hg status`. See `hg help rust.rhg` for details on how to try it out.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    62
  * `rhg` supports narrow clones and sparse checkouts.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    63
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    64
== Bug Fixes ==
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    65
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    66
  * '''Obsolete revisions are skipped while computing heads. In conjunction with the `evolve` extension >= 10.5.0, this leads to massive exchange (push/pull) speedups in repositories with a lot of heads and/or obsolete revisions.'''
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    67
  * Stream-clones now properly advertise all requirements needed. This can result in the stream-clone feature being disabled for some clients using < 6.0.2. A small bugfix patch for these older client is available if necessary.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    68
  * The `--no-check` and `--no-merge` flags now properly overwrite the behavior from `commands.update.check`
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    69
  * `rhg`'s fallback detection is more robust in general in the presence of more advanced configs
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    70
  * `rhg`'s `blackbox` now supports milliseconds by default and uses the same ISO 8601 format as the Python implementation
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    71
  * Fix `rhg` crash on non-generaldelta revlogs
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    72
  * The `lfs`, `largefiles` and `sparse` extensions now correctly take the appropriate lock before writing requirements 
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    73
  * The `notify` extension does not produce errors anymore if a revision is not found
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    74
  * Remove unnecessary and overly strict check for divergence in `hg fix`
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    75
  * Windows compatibility improvements
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    76
  * Miscellaneous Python 3 and typing improvements
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    77
  * Many other small or internal fixes
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    78
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    79
== Backwards Compatibility Changes ==
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    80
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    81
  * The use of `share-safe`, means shares (of new repositories) will also use their main repository's configuration see the `Default Format Change` section for details.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    82
  * The fix to stream-clone requirements advertising means some requirements previously (wrongly) omitted are now sent. This can confuse client using a Mercurial version < 6.0.2. The client would consider these requirements unsupported even if it actually know them. If you encounter this, either upgrade your client or apply the necessary patch.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    83
  * The labels passed to merge tools have changed slightly. Merge tools can get labels passed to them if you include `$labellocal`, `$labelbase`, and/or `$labelother` in the `merge-tool.<tool name>.args` configuration. These labels used to have some space-padding, and truncation to fit within 72 columns. Both the padding and the truncation has been removed.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    84
  * Some of the text in labels passed to merge tools has changed. For example, in conflicts while running `hg histedit`, the labels used to be "local", "base", and "histedit". They are now "already edited", "parent of current change", and "current change", respectively.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    85
  * The computation of namedbranch heads now ignores obsolete revisions. User of the Changeset Evolution feature may see a change in location and numbers of heads of each named branches (and topic).
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    86
  * The remotefilelog extension now requires an appropriate excludepattern for subrepositories.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    87
  * `debugsparse`'s interface has been reworked to be more flexible. Since it's a debug command it is not actually a breaking change, but it is worth noting here.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    88
  * Temporary files for merges are now all inside a `hgmerge` directory instead of at the root of `TMPDIR`. The corresponding experimental `mergetempdirprefix` config option has been removed.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    89
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    90
== Internal API Changes ==
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    91
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    92
  * The dirstate API received minor modifications.
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    93
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    94
== Miscellaneous ==
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    95
f0081a551f37 relnotes: add 6.1
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    96
  * Removed exchange-v2. It was a prototype that had never been in a working state and had been left untouched since 2017.