Mercurial > hg
annotate relnotes/5.3 @ 47096:3c11c24b82b6
dirstate-tree: Add `WithBasename` wrapper for `HgPath`
In the tree-shaped dirstate we want to have nodes representing files or
directories, where directory nodes contain a map associating "base" names
to child nodes for child files and directories.
Many dirstate operations expect a full path from the repository root, but
re-concatenating string from nested map keys all the time might be expensive.
Instead, `WithBasename` stores a full path for these operations but
behaves as its base name (last path component) for equality and comparison.
Additionally `inclusive_ancestors` provides the successive map keys
that are needed when inserting a new dirstate node at a given full path.
Differential Revision: https://phab.mercurial-scm.org/D10365
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Thu, 08 Apr 2021 20:12:24 +0200 |
parents | 1f8f215219ff |
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 |
43951
1ccf340acf14
windows: add a global equivalent to /etc/mercurial for *.rc processing
Matt Harbison <matt_harbison@yahoo.com>
parents:
43889
diff
changeset
|
3 * Windows will process hgrc files in %PROGRAMDATA%\Mercurial\hgrc.d. |
1ccf340acf14
windows: add a global equivalent to /etc/mercurial for *.rc processing
Matt Harbison <matt_harbison@yahoo.com>
parents:
43889
diff
changeset
|
4 |
42309
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
5 |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
6 == 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
|
7 |
604c086ddde6
log: add config for making `hg log -G` always topo-sorted
Martin von Zweigbergk <martinvonz@google.com>
parents:
42271
diff
changeset
|
8 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
9 == Bug Fixes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
10 |
43695
fa246ada356b
templates: make {indent("", " ")} be empty
Martin von Zweigbergk <martinvonz@google.com>
parents:
43588
diff
changeset
|
11 * The `indent()` template function was documented to not indent empty lines, |
fa246ada356b
templates: make {indent("", " ")} be empty
Martin von Zweigbergk <martinvonz@google.com>
parents:
43588
diff
changeset
|
12 but it still indented the first line even if it was empty. It no longer does |
fa246ada356b
templates: make {indent("", " ")} be empty
Martin von Zweigbergk <martinvonz@google.com>
parents:
43588
diff
changeset
|
13 that. |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
14 |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
15 == Backwards Compatibility Changes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
16 |
42944
c2676b5a9f59
narrow: don't hexify paths and double-hexify known nodes on wire (BC)
Martin von Zweigbergk <martinvonz@google.com>
parents:
42935
diff
changeset
|
17 |
42271
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
18 == Internal API Changes == |
0ed293a3f00e
releasenotes: add a file in which to record release notes
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff
changeset
|
19 |
43777
c8e9a3636abe
relnotes: add note about changes to match.{explicit,reverse}dir
Martin von Zweigbergk <martinvonz@google.com>
parents:
43695
diff
changeset
|
20 * Matcher instances no longer have a `explicitdir` property. Consider |
c8e9a3636abe
relnotes: add note about changes to match.{explicit,reverse}dir
Martin von Zweigbergk <martinvonz@google.com>
parents:
43695
diff
changeset
|
21 rewriting your code to use `repo.wvfs.isdir()` and/or |
c8e9a3636abe
relnotes: add note about changes to match.{explicit,reverse}dir
Martin von Zweigbergk <martinvonz@google.com>
parents:
43695
diff
changeset
|
22 `ctx.hasdir()` instead. Also, the `traversedir` property is now |
c8e9a3636abe
relnotes: add note about changes to match.{explicit,reverse}dir
Martin von Zweigbergk <martinvonz@google.com>
parents:
43695
diff
changeset
|
23 also called when only `explicitdir` used to be called. That may |
c8e9a3636abe
relnotes: add note about changes to match.{explicit,reverse}dir
Martin von Zweigbergk <martinvonz@google.com>
parents:
43695
diff
changeset
|
24 mean that you can simply remove the use of `explicitdir` if you |
c8e9a3636abe
relnotes: add note about changes to match.{explicit,reverse}dir
Martin von Zweigbergk <martinvonz@google.com>
parents:
43695
diff
changeset
|
25 were already using `traversedir`. |
43889
458504a8cca1
relnotes: mention the merging of index and nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43777
diff
changeset
|
26 |
458504a8cca1
relnotes: mention the merging of index and nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43777
diff
changeset
|
27 * The `revlog.nodemap` object have been merged into the `revlog.index` object. |
458504a8cca1
relnotes: mention the merging of index and nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43777
diff
changeset
|
28 * `n in revlog.nodemap` becomes `revlog.index.has_node(n)`, |
458504a8cca1
relnotes: mention the merging of index and nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43777
diff
changeset
|
29 * `revlog.nodemap[n]` becomes `revlog.index.rev(n)`, |
458504a8cca1
relnotes: mention the merging of index and nodemap
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
43777
diff
changeset
|
30 * `revlog.nodemap.get(n)` becomes `revlog.index.get_rev(n)`. |
44090
2f0a44c69e07
copies: replace duplicatecopies() by function that takes contexts
Martin von Zweigbergk <martinvonz@google.com>
parents:
43951
diff
changeset
|
31 |
2f0a44c69e07
copies: replace duplicatecopies() by function that takes contexts
Martin von Zweigbergk <martinvonz@google.com>
parents:
43951
diff
changeset
|
32 * `copies.duplicatecopies()` was renamed to |
2f0a44c69e07
copies: replace duplicatecopies() by function that takes contexts
Martin von Zweigbergk <martinvonz@google.com>
parents:
43951
diff
changeset
|
33 `copies.graftcopies()`. Its arguments changed from revision numbers |
44092
833210fbd900
graftcopies: remove `skip` and `repo` arguments
Martin von Zweigbergk <martinvonz@google.com>
parents:
44090
diff
changeset
|
34 to context objects. It also lost its `repo` and `skip` arguments |
833210fbd900
graftcopies: remove `skip` and `repo` arguments
Martin von Zweigbergk <martinvonz@google.com>
parents:
44090
diff
changeset
|
35 (they should no longer be needed). |