Mercurial > hg
annotate relnotes/5.1 @ 49790:f463eb675e85 stable
emitrevision: consider ancestors revision to emit as available base
This should make more delta base valid. This notably affects:
* case where we skipped some parent with empty delta to directly delta against
an ancestors
* case where an intermediate snapshots is stored.
This change means we could sent largish intermediate snapshots over the wire.
However this is actually a sub goal here. Sending snapshots over the wire means
the client have a high odd of simply storing the pre-computed delta instead of
doing a lengthy process that will… end up doing the same intermediate snapshot.
In addition the overall size of snapshot (or any level) is "only" some or the
overall delta size. (0.17% for my mercurial clone, 20% for my clone of Mozilla
try). So Sending them other the wire is unlikely to change large impact on the
bandwidth used.
If we decide that minimising the bandwidth is an explicit goal, we should
introduce new logic to filter-out snapshot as delta. The current code has no
notion explicite of snapshot so far, they just tended to fall into the wobbly
filtering options.
In some cases, this patch can yield large improvement to the bundling time:
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.name = perf-bundle
# benchmark.variants.revs = last-100000
before: 68.787066 seconds
after: 47.552677 seconds (-30.87%)
That translate to large improvement to the pull time :
### data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog
# benchmark.name = pull
# benchmark.variants.issue6528 = disabled
# benchmark.variants.revs = last-100000
before: 142.186625 seconds
after: 75.897745 seconds (-46.62%)
No significant negative impact have been observed.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 12 Nov 2022 00:18:41 +0100 |
parents | cba59b338976 |
children |
rev | line source |
---|---|
42271
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 |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
3 * New config `commands.commit.post-status` shows status after successful |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
4 commit. |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
5 |
42498
089f14dd7df3
relnotes: document template support for `hg root`
Martin von Zweigbergk <martinvonz@google.com>
parents:
42405
diff
changeset
|
6 * `hg root` now has templating support, including support for showing |
089f14dd7df3
relnotes: document template support for `hg root`
Martin von Zweigbergk <martinvonz@google.com>
parents:
42405
diff
changeset
|
7 where a repo share's source is. See `hg help -v root` for details. |
089f14dd7df3
relnotes: document template support for `hg root`
Martin von Zweigbergk <martinvonz@google.com>
parents:
42405
diff
changeset
|
8 |
42552
4cafbd3b50c6
relnotes: document the new --force-close-branch flag
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
42541
diff
changeset
|
9 * New `--force-close-branch` flag for `hg commit` to forcibly close |
4cafbd3b50c6
relnotes: document the new --force-close-branch flag
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
42541
diff
changeset
|
10 branch from a non-head changeset. |
4cafbd3b50c6
relnotes: document the new --force-close-branch flag
Sushil khanchi <sushilkhanchi97@gmail.com>
parents:
42541
diff
changeset
|
11 |
42578
9f73620a65fe
relnotes: document new range-select mechanism in crecord
Kyle Lippincott <spectral@google.com>
parents:
42574
diff
changeset
|
12 * The curses-based interface for commands like `hg commit -i` now supports |
9f73620a65fe
relnotes: document new range-select mechanism in crecord
Kyle Lippincott <spectral@google.com>
parents:
42574
diff
changeset
|
13 a range-select mechanism. Select the first line using space like before, |
9f73620a65fe
relnotes: document new range-select mechanism in crecord
Kyle Lippincott <spectral@google.com>
parents:
42574
diff
changeset
|
14 navigate to the last line, and press X (capital x) to set all items in |
9f73620a65fe
relnotes: document new range-select mechanism in crecord
Kyle Lippincott <spectral@google.com>
parents:
42574
diff
changeset
|
15 the range at once. Lowercase x has been added as a synonym for space to |
9f73620a65fe
relnotes: document new range-select mechanism in crecord
Kyle Lippincott <spectral@google.com>
parents:
42574
diff
changeset
|
16 help reinforce the mechanism, and pressing enter/return continues to be a |
9f73620a65fe
relnotes: document new range-select mechanism in crecord
Kyle Lippincott <spectral@google.com>
parents:
42574
diff
changeset
|
17 synonym for "toggle the current line and move down to the next item in |
9f73620a65fe
relnotes: document new range-select mechanism in crecord
Kyle Lippincott <spectral@google.com>
parents:
42574
diff
changeset
|
18 this section." |
42309
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
19 |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
20 == New Experimental Features == |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
21 |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
22 * New config `experimental.log.topo` makes `hg log -G` use |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
23 topological sorting. This is especially useful for aliases since it |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
24 lets the alias accept an `-r` option while still using topological |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
25 sorting with or without the `-r` (unlike if you use the `sort(..., |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
26 topo)` revset). |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
27 |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
28 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
29 == Bug Fixes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
30 |
42405
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
31 * issue4292: "hg log and {files} {file_adds} {file_mods} {file_dels} |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
32 in template show wrong files on merged revision". See details in |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
33 "Backwards Compatibility Changes". |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
34 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
35 |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
36 == Backwards Compatibility Changes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
37 |
42334
bcb1a2b6cd00
relnotes: mention removed support for mixed log graph lines
Martin von Zweigbergk <martinvonz@google.com>
parents:
42309
diff
changeset
|
38 * Removed (experimental) support for log graph lines mixing |
bcb1a2b6cd00
relnotes: mention removed support for mixed log graph lines
Martin von Zweigbergk <martinvonz@google.com>
parents:
42309
diff
changeset
|
39 parent/grandparent styles. Setting |
bcb1a2b6cd00
relnotes: mention removed support for mixed log graph lines
Martin von Zweigbergk <martinvonz@google.com>
parents:
42309
diff
changeset
|
40 e.g. `experimental.graphstyle.parent = !` and |
bcb1a2b6cd00
relnotes: mention removed support for mixed log graph lines
Martin von Zweigbergk <martinvonz@google.com>
parents:
42309
diff
changeset
|
41 `experimental.graphstyle.grandparent = 3.` would use `!` for the |
bcb1a2b6cd00
relnotes: mention removed support for mixed log graph lines
Martin von Zweigbergk <martinvonz@google.com>
parents:
42309
diff
changeset
|
42 first three lines of the graph and then `.`. This is no longer |
bcb1a2b6cd00
relnotes: mention removed support for mixed log graph lines
Martin von Zweigbergk <martinvonz@google.com>
parents:
42309
diff
changeset
|
43 supported. |
bcb1a2b6cd00
relnotes: mention removed support for mixed log graph lines
Martin von Zweigbergk <martinvonz@google.com>
parents:
42309
diff
changeset
|
44 |
42372
ba6ca4e80607
relnotes: document changed behavior of ui.origbackuppath pointing to file
Martin von Zweigbergk <martinvonz@google.com>
parents:
42343
diff
changeset
|
45 * If `ui.origbackuppath` had been (incorrectly) configured to point |
ba6ca4e80607
relnotes: document changed behavior of ui.origbackuppath pointing to file
Martin von Zweigbergk <martinvonz@google.com>
parents:
42343
diff
changeset
|
46 to a file, we will now replace that file by a directory and put |
ba6ca4e80607
relnotes: document changed behavior of ui.origbackuppath pointing to file
Martin von Zweigbergk <martinvonz@google.com>
parents:
42343
diff
changeset
|
47 backups in that directory. This is similar to how we would |
ba6ca4e80607
relnotes: document changed behavior of ui.origbackuppath pointing to file
Martin von Zweigbergk <martinvonz@google.com>
parents:
42343
diff
changeset
|
48 previously replace files *in* the configured directory by |
ba6ca4e80607
relnotes: document changed behavior of ui.origbackuppath pointing to file
Martin von Zweigbergk <martinvonz@google.com>
parents:
42343
diff
changeset
|
49 subdirectories. |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
50 |
42405
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
51 * Template keyword `{file_mods}`, `{file_adds}`, and `{file_dels}` |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
52 have changed behavior on merge commits. They used to be relative to |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
53 the first parent, but they now consider both parents. `{file_adds}` |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
54 shows files that exists in the commit but did not exist in either |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
55 parent. `{file_dels}` shows files that do not exist in the commit |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
56 but existed in either parent. `{file_mods}` show the remaining |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
57 files from `{files}` that were not in the other two |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
58 sets. |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
59 |
0c72eddb4be5
templatekw: make {file_*} compare to both merge parents (issue4292)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42372
diff
changeset
|
60 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
61 == Internal API Changes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
62 |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
63 * Matchers are no longer iterable. Use `match.files()` instead. |
42341
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42334
diff
changeset
|
64 |
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42334
diff
changeset
|
65 * `match.visitdir()` and `match.visitchildrenset()` now expect the |
27d6956d386b
match: use '' instead of '.' for root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42334
diff
changeset
|
66 empty string instead of '.' to indicate the root directory. |
42343
d8e55c0c642c
util: make util.dirs() and util.finddirs() include root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42341
diff
changeset
|
67 |
d8e55c0c642c
util: make util.dirs() and util.finddirs() include root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42341
diff
changeset
|
68 * `util.dirs()` and `util.finddirs()` now include an entry for the |
d8e55c0c642c
util: make util.dirs() and util.finddirs() include root directory (API)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42341
diff
changeset
|
69 root directory (empty string). |
42535
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
70 |
42541
3de4f17f4824
shelve: move shelve extension to core
Navaneeth Suresh <navaneeths1998@gmail.com>
parents:
42535
diff
changeset
|
71 * shelve is no longer an extension now. it will be turned on by default. |
3de4f17f4824
shelve: move shelve extension to core
Navaneeth Suresh <navaneeths1998@gmail.com>
parents:
42535
diff
changeset
|
72 |
42535
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
73 * New API to manage unfinished operations: Earlier there were distinct APIs |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
74 which dealt with unfinished states and separate lists maintaining them |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
75 that are `cmdutil.afterresolvestates`, `cmdutil.unfinishedstates` and |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
76 `cmdutil.STATES`. Now these have been unified to a single |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
77 API which handles the various states and their utilities. This API |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
78 has been added to `state.py`. Now instead of adding to these 3 lists |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
79 independently a state for a new operation can be registered using |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
80 `addunfinished()` in `state` module. |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
81 |
df5f674050b7
relnotes: added description about statemod._statecheck
Taapas Agrawal <taapas2897@gmail.com>
parents:
42498
diff
changeset
|
82 * `cmdutil.checkunfinished()` now includes detection for merge too. |
42574
d28d91f9f35a
py3: don't run source transformer on hgext3rd (extensions)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42552
diff
changeset
|
83 |
42579
b8d54f4625cb
merge: disallow merge abort in case of an unfinished operation (issue6160)
Taapas Agrawal <taapas2897@gmail.com>
parents:
42578
diff
changeset
|
84 * merge abort has been disallowed in case an operation of higher |
b8d54f4625cb
merge: disallow merge abort in case of an unfinished operation (issue6160)
Taapas Agrawal <taapas2897@gmail.com>
parents:
42578
diff
changeset
|
85 precedence is in progress to avoid cases of partial abort of |
b8d54f4625cb
merge: disallow merge abort in case of an unfinished operation (issue6160)
Taapas Agrawal <taapas2897@gmail.com>
parents:
42578
diff
changeset
|
86 operations. |
b8d54f4625cb
merge: disallow merge abort in case of an unfinished operation (issue6160)
Taapas Agrawal <taapas2897@gmail.com>
parents:
42578
diff
changeset
|
87 |
42574
d28d91f9f35a
py3: don't run source transformer on hgext3rd (extensions)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42552
diff
changeset
|
88 * We used to automatically attempt to make extensions compatible with |
d28d91f9f35a
py3: don't run source transformer on hgext3rd (extensions)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42552
diff
changeset
|
89 Python 3 (by translating their source code while loading it). We no |
d28d91f9f35a
py3: don't run source transformer on hgext3rd (extensions)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42552
diff
changeset
|
90 longer do that. |