Mercurial > hg
annotate relnotes/5.3 @ 46801:32399d0813e0
rebase: skip obsolete commits even if they have pruned successors
Issue 5782 reported that `hg rebase -r <obsolete commit with pruned
successor>` failed with an error saying that it would cause
divergence. Commit b7e2cf114e85 (rebase: do not consider extincts for
divergence detection (issue5782), 2018-02-09) fixed it by letting you
rebase the commit. However, that fix seems inconsistent with how we
handle `hg rebase -r <pruned commit>`. To me, it should make no
difference whether a commit is pruned itself or if it has (only)
pruned successors. This patch changes it so we treat these two kinds
of commits the same way. I let the message we print remain "note: not
rebasing <commit>, it has no successor" even though that last part is
not technically correct for commits with pruned successors. I doubt it
will confuse users.
Differential Revision: https://phab.mercurial-scm.org/D10240
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 19 Mar 2021 12:08:46 -0700 |
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). |