Mercurial > hg
annotate relnotes/5.1 @ 44856:b7808443ed6a
mergestate: split out merge state handling code from main merge module
There's already some pretty reasonable encapsulation here, but I want
to make the mergestate storage a property of the context so memctx
instances can do a reasonable thing. This is the first step in a
reshuffle to make that easier.
Differential Revision: https://phab.mercurial-scm.org/D8550
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 18 May 2020 14:59:59 -0400 |
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. |