relnotes/5.6
author Arseniy Alekseyev <aalekseyev@janestreet.com>
Wed, 31 May 2023 10:37:55 +0100
changeset 50680 3b56395404a1
parent 45822 84eb4c833c41
permissions -rw-r--r--
stream-clone: avoid opening a revlog in case we do not need it Opening an revlog has a cost, especially if it is inline as we have to scan the file and construct an index. To prevent the associated slowdown, we just do a minimal scan to check that an inline file is still inline, and simply stream the file without creating a revlog when we can. This provides a big boost compared to the previous changeset, even if the full generation is still penalized by the initial gathering of information. All benchmarks are run on linux with Python 3.10.7. # benchmark.name = hg.exchange.stream.generate # benchmark.variants.version = v2 ### Compared to the previous changesets We get a large win all across the board! # mercurial-2018-08-01-zstd-sparse-revlog before: 0.250694 seconds after: 0.105986 seconds (-57.72%) # pypy-2018-08-01-zstd-sparse-revlog before: 3.885657 seconds after: 1.709748 seconds (-56.00%) # netbeans-2018-08-01-zstd-sparse-revlog before: 16.679371 seconds after: 7.687469 seconds (-53.91%) # mozilla-central-2018-08-01-zstd-sparse-revlog before: 38.575482 seconds after: 17.520316 seconds (-54.58%) # mozilla-try-2019-02-18-zstd-sparse-revlog before: 81.160994 seconds after: 37.073753 seconds (-54.32%) ### Compared to 6.4.3 We are still significantly slower than 6.4.3, the extra time is usually twice slower than the extra time we observe on the locked section, which is a quite interesting information. Except for mercurial-central that is much faster. That discrepancy is not really explained yet. # mercurial-2018-08-01-zstd-sparse-revlog 6.4.3: 0.072560 seconds after: 0.105986 seconds (+46.07%) (- 0.03 seconds) # pypy-2018-08-01-zstd-sparse-revlog 6.4.3: 1.211193 seconds after: 1.709748 seconds (+41.16%) (-0.45 seconds) # netbeans-2018-08-01-zstd-sparse-revlog 6.4.3: 4.932843 seconds after: 7.687469 seconds (+55.84%) (-2.75 seconds) # mozilla-central-2018-08-01-zstd-sparse-revlog 6.4.3: 34.012226 seconds after: 17.520316 seconds (-48.49%) (-16.49 seconds) # mozilla-try-2019-02-18-zstd-sparse-revlog 6.4.3: 23.850555 seconds after: 37.073753 seconds (+55.44%) (+13.22 seconds)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42298
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     1
== New Features ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
     2
45389
5178dd2233d0 rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents: 45201
diff changeset
     3
 * `hg mv -A` can now be used with `--at-rev`. It behaves just like
5178dd2233d0 rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents: 45201
diff changeset
     4
   `hg cp -A --at-rev`, i.e. it marks the destination as a copy of the
5178dd2233d0 rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents: 45201
diff changeset
     5
   source whether or not the source still exists (but the source must
5178dd2233d0 rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents: 45201
diff changeset
     6
   exist in the parent revision).
45169
3496b5f24371 relnotes: extend
Joerg Sonnenberger <joerg@bec.de>
parents: 45063
diff changeset
     7
45751
60d0634c43c2 relnotes: add diffcontains() to new features list
Yuya Nishihara <yuya@tcha.org>
parents: 45563
diff changeset
     8
 * New revset predicate `diffcontains(pattern)` for filtering revisions
60d0634c43c2 relnotes: add diffcontains() to new features list
Yuya Nishihara <yuya@tcha.org>
parents: 45563
diff changeset
     9
   in the same way as `hg grep --diff pattern`.
60d0634c43c2 relnotes: add diffcontains() to new features list
Yuya Nishihara <yuya@tcha.org>
parents: 45563
diff changeset
    10
45818
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    11
 * The memory footprint per changeset and per file during pull/unbundle
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    12
   operations has been significantly reduced.
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    13
45189
045f5361bd12 relnotes: make spacing before new section consistent
Manuel Jacob <me@manueljacob.de>
parents: 45169
diff changeset
    14
44401
9dab3fa64325 copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents: 44399
diff changeset
    15
== New Experimental Features ==
44377
8561ad49915d revset: add a revset for parents in merge state
Martin von Zweigbergk <martinvonz@google.com>
parents: 44335
diff changeset
    16
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    17
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    18
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    19
== Bug Fixes ==
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    20
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    21
45189
045f5361bd12 relnotes: make spacing before new section consistent
Manuel Jacob <me@manueljacob.de>
parents: 45169
diff changeset
    22
42298
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    23
== Backwards Compatibility Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    24
45191
fc54f52779dd relnotes: add release notes for relevant changes I did since the 5.4 release
Manuel Jacob <me@manueljacob.de>
parents: 45190
diff changeset
    25
44427
acbfa31cfaf2 debugmergestate: make templated
Martin von Zweigbergk <martinvonz@google.com>
parents: 44423
diff changeset
    26
42298
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    27
== Internal API Changes ==
0ed293a3f00e releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
    28
45563
2c86b9587740 merge: make low-level update() private (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 45389
diff changeset
    29
 * `merge.update()` is now private (renamed to `_update()`). Hopefully
2c86b9587740 merge: make low-level update() private (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 45389
diff changeset
    30
   the higher-level functions available in the same module cover your
2c86b9587740 merge: make low-level update() private (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 45389
diff changeset
    31
   use cases.
2c86b9587740 merge: make low-level update() private (API)
Martin von Zweigbergk <martinvonz@google.com>
parents: 45389
diff changeset
    32
45818
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    33
 * `phases.registernew` now takes a set of revisions instead of a list
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    34
   of nodes. `phases.advanceboundary` takes an optional set of revisions
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    35
   in addition to the list of nodes. The corresponeding members of the
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    36
   `phasecache` class follow this change.
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    37
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    38
 * The `addgroup` member of `revlog` classes no longer keeps a list of
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    39
   all found nodes. It now returns True iff a node was found in the group.
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    40
   An optional callback for duplicated nodes can be used by callers to keep
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    41
   track of all nodes themselve.
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    42
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    43
 * The `_chaininfocache` of `revlog` classes has been changed from a dict
c4ab93849383 relnotes: mention improved memory use and underlaying API changes
Joerg Sonnenberger <joerg@bec.de>
parents: 45751
diff changeset
    44
   to a LRU cache.