Mercurial > hg
view relnotes/5.3 @ 44985:1ca0047fd7e1
absorb: preserve changesets which were already empty
Most commands in Mercurial (commit, rebase, absorb itself) don’t create empty
changesets or drop them if they become empty. If there’s a changeset that’s
empty, it must be a deliberate choice of the user. At least it shouldn’t be
absorb’s responsibility to prune them. The fact that changesets that became
empty during absorb are pruned, is unaffected by this.
This case was found while writing patches which make it possible to configure
absorb and rebase to not drop empty changesets. Even without having such config
set, I think it’s valuable to preserve changesets which were already empty.
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Mon, 01 Jun 2020 20:57:14 +0200 |
parents | 1f8f215219ff |
children |
line wrap: on
line source
== New Features == * Windows will process hgrc files in %PROGRAMDATA%\Mercurial\hgrc.d. == New Experimental Features == == Bug Fixes == * The `indent()` template function was documented to not indent empty lines, but it still indented the first line even if it was empty. It no longer does that. == Backwards Compatibility Changes == == Internal API Changes == * Matcher instances no longer have a `explicitdir` property. Consider rewriting your code to use `repo.wvfs.isdir()` and/or `ctx.hasdir()` instead. Also, the `traversedir` property is now also called when only `explicitdir` used to be called. That may mean that you can simply remove the use of `explicitdir` if you were already using `traversedir`. * The `revlog.nodemap` object have been merged into the `revlog.index` object. * `n in revlog.nodemap` becomes `revlog.index.has_node(n)`, * `revlog.nodemap[n]` becomes `revlog.index.rev(n)`, * `revlog.nodemap.get(n)` becomes `revlog.index.get_rev(n)`. * `copies.duplicatecopies()` was renamed to `copies.graftcopies()`. Its arguments changed from revision numbers to context objects. It also lost its `repo` and `skip` arguments (they should no longer be needed).