relnotes/6.6
author Raphaël Gomès <rgomes@octobus.net>
Tue, 01 Oct 2024 13:49:11 +0200
changeset 52060 8b7123c8947b
parent 51366 3fd1efb3ad12
permissions -rw-r--r--
update: add a Rust fast-path when updating from null (and clean) This case is easy to detect and we have all we need to generate a valid working copy and dirstate entirely in Rust, which speeds things up considerably: On my machine updating a repo of ~300k files goes from 10.00s down to 4.2s, all while consuming 50% less system time, with all caches hot. Something to note is that further improvements will probably happen with the upcoming `InnerRevlog` series that does smarter mmap hanlding, especially for filelogs. Here are benchmark numbers on a machine with only 4 cores (and no SMT enabled) ``` ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 5.328762 ~~~~~ rust: 1.308654 (-75.44%, -4.02) ### data-env-vars.name = mercurial-devel-2024-03-22-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 1.693271 ~~~~~ rust: 1.151053 (-32.02%, -0.54) ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 38.901613 ~~~~~ rust: 11.637880 (-70.08%, -27.26) ### data-env-vars.name = netbsd-xsrc-public-2024-09-19-ds2-pnm # benchmark.name = hg.command.update # bin-env-vars.hg.py-re2-module = default # bin-env-vars.hg.changeset.node = <this change> # benchmark.variants.atomic-update = no # benchmark.variants.scenario = null-to-tip # benchmark.variants.worker = default default: 4.793727 ~~~~~ rust: 1.505905 (-68.59%, -3.29) ```
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51366
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     1
= Mercurial 6.6.3 =
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     2
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     3
 * tests: don't use "status" operand of dd in test-censor.t (issue6858)
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     4
 * tests: make sha256line.py available for all tests
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     5
 * tests: use sha256line.py instead of /dev/random in test-censor.t (issue6858)
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     6
 * tests: fix nondeterministic test failure in test-contrib-perf.t
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     7
 * rust-changelog: don't panic on empty file lists
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     8
 * grep: restore usage of --include/--exclude options
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
     9
3fd1efb3ad12 relnotes: add 6.6.3
Raphaël Gomès <rgomes@octobus.net>
parents: 51311
diff changeset
    10
 = Mercurial 6.6.2 =
51311
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    11
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    12
 * histedit: remove superfluous echo() and endwin() calls (issue6859)
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    13
 * persistent-nodemap: avoid writing nodemap for empty revlog
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    14
 * persistent-nodemap: respect the mmap setting when refreshing data
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    15
 * bundle: do not detect --base argument that match nothing as lack of argument
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    16
 * narrow: prevent removal of ACL-defined excludes
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    17
 * pycompat: fix bytestr(bytes) in Python 3.11
136902b3a95d relnotes: add 6.6.2
Raphaël Gomès <rgomes@octobus.net>
parents: 51169
diff changeset
    18
51169
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    19
= Mercurial 6.6.1 =
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    20
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    21
The first two patches fix aborted transactions that could happen since 6.6.
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    22
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    23
 * revlog: avoid exposing delayed index entry too widely in non-inline revlog
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    24
 * revlog: avoid wrongly updating the data file location on "divert"
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    25
 * tests: do not fail tests in a state with uncommitted .py file removal
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    26
 * perf-tags: fix the --clear-fnode-cache-rev code
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    27
 * perf-tags: fix clear_cache_fnodes to actually clear that cache
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    28
 * censor: fix things around inlining
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    29
 * Various Python 3 cleanups
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    30
 * Various Windows test suite fixes
71bd09bebbe3 relnotes: add 6.6.1
Raphaël Gomès <rgomes@octobus.net>
parents: 51132
diff changeset
    31
51132
d45afa07564c relnotes: add 6.6
Raphaël Gomès <rgomes@octobus.net>
parents: 51126
diff changeset
    32
= Mercurial 6.6 =
51126
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    33
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    34
As usual, a *lot* of patches don't make it to this list.
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    35
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    36
== New Features ==
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    37
 * rust-config: add support for default config items
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    38
 * rhg: add config defaults to configitems.toml
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    39
 * rhg: support "status FILE"
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    40
 * rhg: support rhg files [FILE]
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    41
 * commands: add admin namespace
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    42
 * admin-command: add verify command
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    43
 * debug-delta-chain: add options to control what we compute
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    44
 * Added some caching for uncompressed revlog chunks that speed up some operations
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    45
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    46
== New Experimental Features ==
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    47
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    48
== Bug Fixes ==
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    49
 * Improve OpenVMS support
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    50
 * byteify-strings: passe sysstr to attr function and wrapper
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    51
 * journal: track bookmark deletion
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    52
 * transaction: actually delete file created during the transaction on rollback
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    53
 * pull: avoid referencing a variable before it is initialized
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    54
 * rust-filepatterns: also normalize RelPath
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    55
 * narrow: hoist a variable to a higher level to avoid use-before-init warning
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    56
 * convert: stabilize subversion date sorter
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    57
 * run-tests: detect HGWITHRUSTEXT value
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    58
 * censor: accept censored revision during upgrade
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    59
 * rust-matchers: fix quadratic complexity in `FileMatcher`
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    60
 * unstable: do not consider internal phases when computing unstable
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    61
 * Still a whole bunch of Python 2 -> 3 migration leftovers
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    62
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    63
== Backwards Compatibility Changes ==
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    64
 * perf: display all timing by default
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    65
 * infinitepush: drop the extension
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    66
 * debug-delta-chain: print less data by default
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    67
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    68
== Internal API Changes ==
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    69
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    70
 * The revlog interface has been significantly cleaned up.
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    71
 * configitems: add `documentation` field
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    72
 * configitems: declare items in a TOML file
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    73
 * configitems: move blackbox's config items to the new configitems.toml
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    74
 * path-suboption: deprecated specifying the attributes as bytes
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    75
 * pycompat: deprecate using bytes
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    76
 * check-code: drop the `safehasattr` rule
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    77
 * safehasattr: drop usage in favor of hasattr
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    78
 * rust: add `UncheckedRevision` type
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    79
 * rust: implement the `Graph` trait for all revlogs
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    80
 * rust: make `Revision` a newtype
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    81
 * perf: change the way we approach revlog reading
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    82
 * perf: ensure all readlog's reading is done within a `reading` context
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    83
 * delta-chain: move the debugdeltachain command in revlogutils
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    84
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    85
== Miscellaneous ==
27055614b685 relnotes: add 6.6rc0
Raphaël Gomès <rgomes@octobus.net>
parents:
diff changeset
    86