D9325: histedit: don't crash if commit message is empty
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Mon Nov 16 19:10:38 UTC 2020
martinvonz created this revision.
Herald added a reviewer: durin42.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
If the commit message is empty, histedit will crash before this patch
because it assumes that `summary.splitlines()` is non-empty. One of
our users at work ran into this crash for a commit that was created by
an internal system.
I don't think we have a good way of testing this because it's hard to
create a commit with an empty commit message. I've added a comment to
help prevent regressions.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D9325
AFFECTED FILES
hgext/histedit.py
CHANGE DETAILS
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -528,7 +528,8 @@
summary = cmdutil.rendertemplate(
ctx, ui.config(b'histedit', b'summary-template')
)
- summary = summary.splitlines()[0]
+ # Handle the fact that `''.splitlines() => []`
+ summary = summary.splitlines()[0] if summary else b''
line = b'%s %s %s' % (self.verb, ctx, summary)
# trim to 75 columns by default so it's not stupidly wide in my editor
# (the 5 more are left for verb)
To: martinvonz, durin42, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list