Differences between revisions 6 and 7
Revision 6 as of 2022-01-05 17:43:26
Size: 4673
Editor: RaphaelGomes
Comment:
Revision 7 as of 2022-02-02 16:34:27
Size: 5397
Editor: RaphaelGomes
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:

= Mercurial 6.0.2 =

  * Fix `hg incoming` and `hg outgoing` with remote subrepos on Windows
  * Fix Rust build on MacOS
  * Fix a (15 year old?) bug where some data loss could happen in a very tight race window (f38ae2d7390e + ccd9cb73125c)
  * Remove support for running `hg unamend` on merge changesets at it was never actually implemented
  * Fix stream-clone requirements filtering which caused some stream-clones to be unusable from an older version of Mercurial
  * Rename dirstate-v2 configuration name from `exp-rc-dirstate-v2` to `use-dirstate-v2`. This was overlooked in `6.0`, the old name will be kept as an alias for compatibility.
  * Fix a bug where the branchmap could point to uncommitted data

This release was delayed due to the ongoing efforts to improve robustness of the UX on Windows, especially on Python 3.

This is the last release to support Python 2. Python 2 support will be dropped for all platforms in Mercurial 6.1.

Mercurial 6.0.2

  • Fix hg incoming and hg outgoing with remote subrepos on Windows

  • Fix Rust build on MacOS
  • Fix a (15 year old?) bug where some data loss could happen in a very tight race window (f38ae2d7390e + ccd9cb73125c)
  • Remove support for running hg unamend on merge changesets at it was never actually implemented

  • Fix stream-clone requirements filtering which caused some stream-clones to be unusable from an older version of Mercurial
  • Rename dirstate-v2 configuration name from exp-rc-dirstate-v2 to use-dirstate-v2. This was overlooked in 6.0, the old name will be kept as an alias for compatibility.

  • Fix a bug where the branchmap could point to uncommitted data

Mercurial 6.0.1

  • Improve documentation around Rust (see hg help rust) and rust-related actions

  • Improve upgrade/downgrade edge cases for dirstate-v2

  • Make the test suite nicer to big-endian platforms
  • Make the test suite nicer to NetBSD
  • Fix a performance regression on fsmonitor (issue6612)
  • Add fixes for Python 3.10
  • Fix a deadlock when using sparse and share-safe together

Mercurial 6.0

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 config and look for section paths for details.

  • the new bookmarks.mode paths option supports the new mode mirror. See hg help config and look for section paths 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 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
  • Added a compatibility fix for Python 3.11

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
  • The test harness plays nicer with NetBSD
  • Improved rpm packaging

Release6.0 (last edited 2022-02-18 13:39:56 by RaphaelGomes)