# HG changeset patch # User Mateusz Kwapich # Date 2015-12-02 20:19:01 # Node ID b6a0f0895a250d77a5cc3244fbdb0dbd2e573a71 # Parent 2226cd4f32ed9bf6a5be2aa4dfab032e00704eb1 histedit: add torule method to histedit action objects To make histedit action objects responsible for understanding the format of their action lines we are adding a torule method which for a histedit action will return a string which can be saved in histedit state or shown in text editor when editing the plan. diff --git a/hgext/histedit.py b/hgext/histedit.py --- a/hgext/histedit.py +++ b/hgext/histedit.py @@ -359,6 +359,23 @@ class histeditaction(object): raise error.Abort(_('unknown changeset %s listed') % ha[:12]) + def torule(self): + """build a histedit rule line for an action + + by default lines are in the form: + + """ + ctx = self.repo[self.node] + summary = '' + if ctx.description(): + summary = ctx.description().splitlines()[0] + line = '%s %s %d %s' % (self.verb, ctx, ctx.rev(), summary) + # trim to 75 columns by default so it's not stupidly wide in my editor + # (the 5 more are left for verb) + maxlen = self.repo.ui.configint('histedit', 'linelen', default=80) + maxlen = max(maxlen, 22) # avoid truncating hash + return util.ellipsis(line, maxlen) + def constraints(self): """Return a set of constrains that this action should be verified for """