view relnotes/5.3 @ 45450:47d10ade5bc4

histedit: cache description line Navigating the curses-based histedit interface can be pretty slow because it redraws everything whenever you make a change. This patch simply replaces `@property` by `@util.propertycache` on the `histeditrule.desc()` function so it's not re-calculated every time the screen needs to be re-rendered. I timed it on an example of 30 simple commits, where I moved the top commit down 25 steps and then up 25 steps after. Before this patch, that (the whole `hg histedit` invocation) took 11.6 s of CPU and after this patch it took 0.8 s). Differential Revision: https://phab.mercurial-scm.org/D9016
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 11 Sep 2020 09:35:49 -0700
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).