diff --git a/hgext/amend.py b/hgext/amend.py --- a/hgext/amend.py +++ b/hgext/amend.py @@ -16,7 +16,6 @@ from mercurial import ( cmdutil, commands, - error, pycompat, registrar, ) @@ -50,8 +49,8 @@ See :hg:`help commit` for more details. """ opts = pycompat.byteskwargs(opts) - if len(opts['note']) > 255: - raise error.Abort(_("cannot store a note of more than 255 bytes")) + cmdutil.checknotesize(ui, opts) + with repo.wlock(), repo.lock(): if not opts.get('logfile'): opts['message'] = opts.get('message') or repo['.'].description() diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -210,6 +210,18 @@ return datemaydiffer +def checknotesize(ui, opts): + """ make sure note is of valid format """ + + note = opts.get('note') + if not note: + return + + if len(note) > 255: + raise error.Abort(_(b"cannot store a note of more than 255 bytes")) + if b'\n' in note: + raise error.Abort(_(b"note cannot contain a newline")) + def ishunk(x): hunkclasses = (crecordmod.uihunk, patch.recordhunk) return isinstance(x, hunkclasses)