changeset 23101:b564330d4b1f stable

amend: abort early if no username is configured with evolve enabled (issue4211) Amend will reuse the original username if a new one is not provided with -U, but obsolete.createmarkers() only considers ui.username() for the obsolete marker's metadata. Allowing the metadata field to be spoofed seems to defeat the point of the field in the first place. This covers 'evolve amend' and 'ci --amend' with evolve enabled. Without this, the transaction aborts but the parent changeset is set to -1. The corresponding test will be added to evolve separately.
author Matt Harbison <matt_harbison@yahoo.com>
date Tue, 28 Oct 2014 23:05:19 -0400
parents ac494b087feb
children 16da812ad970
files mercurial/cmdutil.py
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/cmdutil.py	Tue Oct 28 14:06:06 2014 -0700
+++ b/mercurial/cmdutil.py	Tue Oct 28 23:05:19 2014 -0400
@@ -2121,6 +2121,11 @@
                       scmutil.match(repo[None], pats, opts), opts)
 
 def amend(ui, repo, commitfunc, old, extra, pats, opts):
+    # amend will reuse the existing user if not specified, but the obsolete
+    # marker creation requires that the current user's name is specified.
+    if obsolete._enabled:
+        ui.username() # raise exception if username not set
+
     ui.note(_('amending changeset %s\n') % old)
     base = old.p1()