D6854: amend: prevent '\n' in the note string

mharbison72 (Matt Harbison) phabricator at mercurial-scm.org
Sun Sep 15 04:57:28 UTC 2019


mharbison72 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  This comes from the evolve function.  I'm not sure why this check was missing in
  core, since it was present when the length check was added to evolve.
  
  I didn't flag this as BC because 530b7361e3a9 <https://phab.mercurial-scm.org/rHG530b7361e3a92ea8ae4776d5f5355758093c8d95> mentioned this argument wasn't
  added to the release notes due to no display capability, and that hasn't changed
  AFAIK.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6854

AFFECTED FILES
  hgext/amend.py
  mercurial/cmdutil.py

CHANGE DETAILS

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)
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()



To: mharbison72, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list