[PATCH] histedit: add a config allowing changing histedit rule line length limit

Mateusz Kwapich mitrandir at fb.com
Thu Feb 26 09:46:17 UTC 2015


# HG changeset patch
# User Mateusz Kwapich <mitrandir at fb.com>
# Date 1421880324 28800
#      Wed Jan 21 14:45:24 2015 -0800
# Node ID d223d1b0cc6ebda31edda6710b9c05ca1926b8fb
# Parent  ff5caa8dfd993680d9602ca6ebb14da9de10d5f4
histedit: add a config allowing changing histedit rule line length limit

Since many users are using terminals wider than 80 chars there should be an
option to have longer lines in histedit editor.

Even if the summary line is shorter than 80 chars after adding action line
prefixes (like "pick 7c2fd3b9020c") it doesn't fit there anymore. Setting
it to for example 110 would be a  nice option to have.

diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -638,7 +638,7 @@ def _histedit(ui, repo, state, *freeargs
 
         ctxs = [repo[r] for r in revs]
         if not rules:
-            rules = '\n'.join([makedesc(c) for c in ctxs])
+            rules = '\n'.join([makedesc(ui, c) for c in ctxs])
             rules += '\n\n'
             rules += editcomment % (node.short(root), node.short(topmost))
             rules = ui.edit(rules, ui.username())
@@ -805,7 +805,7 @@ def between(repo, old, new, keep):
             raise util.Abort(_('cannot edit immutable changeset: %s') % root)
     return [c.node() for c in ctxs]
 
-def makedesc(c):
+def makedesc(ui, c):
     """build a initial action line for a ctx `c`
 
     line are in the form:
@@ -817,7 +817,9 @@ def makedesc(c):
         summary = c.description().splitlines()[0]
     line = 'pick %s %d %s' % (c, c.rev(), summary)
     # trim to 80 columns so it's not stupidly wide in my editor
-    return util.ellipsis(line, 80)
+    maxlen = ui.configint('histedit', 'action_line_maxlen', default=80)
+    maxlen = max(maxlen, 22) # avoid truncating hash
+    return util.ellipsis(line, maxlen)
 
 def verifyrules(rules, repo, ctxs):
     """Verify that there exists exactly one edit rule per given changeset.


More information about the Mercurial-devel mailing list