diff --git a/hgext/amend.py b/hgext/amend.py
index e4803231f538f73700dfb66e27b1d75279b19e62_aGdleHQvYW1lbmQucHk=..7e999704178135dda8fd61c7eea126ac13691a30_aGdleHQvYW1lbmQucHk= 100644
--- 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
index e4803231f538f73700dfb66e27b1d75279b19e62_bWVyY3VyaWFsL2NtZHV0aWwucHk=..7e999704178135dda8fd61c7eea126ac13691a30_bWVyY3VyaWFsL2NtZHV0aWwucHk= 100644
--- 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)