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
--- a/hgext/histedit.py Fri Sep 11 09:55:08 2020 -0700
+++ b/hgext/histedit.py Fri Sep 11 09:35:49 2020 -0700
@@ -1151,7 +1151,7 @@
h,
)
- @property
+ @util.propertycache
def desc(self):
summary = (
cmdutil.rendertemplate(