# HG changeset patch # User Martin von Zweigbergk # Date 2020-09-11 16:35:49 # Node ID 47d10ade5bc4469ffaef09af845c13145b085fd5 # Parent 814c7430f82828349da3e29403f34e60449972de 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 diff --git a/hgext/histedit.py b/hgext/histedit.py --- a/hgext/histedit.py +++ b/hgext/histedit.py @@ -1151,7 +1151,7 @@ class histeditrule(object): h, ) - @property + @util.propertycache def desc(self): summary = ( cmdutil.rendertemplate(