diff mercurial/commands.py @ 15194:0705f2ac79d6

import: simplify status reporting logic (and make it more I18N-friendly) The old code printed (with ui.status()) the changeset ID created by patch N after committing patch N+1, e.g. applying patch1 applying patch2 applied 1d4bd90af0e4 where 1d4bd90af0e4 is the changeset ID resulting from patch1. That's just weird. It's also inconsistent: we only reported the changeset ID when applying >1 patches. And it's inconsistent with 'commit', which only tells you the new changeset ID in verbose mode. Finally, the existing code was I18N-hostile, since it concatenated translated strings. The new way is to print the just-created changeset ID with ui.note() immediately after committing it. It also clarifies what the user message is for easier I18N.
author Greg Ward <greg@gerg.ca>
date Sat, 01 Oct 2011 21:30:49 -0400
parents 3834ca04664a
children 5b2a3bb06cef
line wrap: on
line diff
--- a/mercurial/commands.py	Fri Oct 07 15:36:35 2011 -0500
+++ b/mercurial/commands.py	Sat Oct 01 21:30:49 2011 -0400
@@ -3276,8 +3276,8 @@
             patch.extract(ui, hunk)
 
         if not tmpname:
-            return None
-        commitid = _('to working directory')
+            return (None, None)
+        msg = _('applied to working directory')
 
         try:
             cmdline_message = cmdutil.logmessage(ui, opts)
@@ -3362,8 +3362,8 @@
                 finally:
                     store.close()
             if n:
-                commitid = short(n)
-            return commitid
+                msg = _('created %s') % short(n)
+            return (msg, n)
         finally:
             os.unlink(tmpname)
 
@@ -3371,7 +3371,6 @@
         wlock = repo.wlock()
         lock = repo.lock()
         parents = repo.parents()
-        lastcommit = None
         for p in patches:
             pf = os.path.join(d, p)
 
@@ -3384,16 +3383,14 @@
 
             haspatch = False
             for hunk in patch.split(pf):
-                commitid = tryone(ui, hunk, parents)
-                if commitid:
+                (msg, node) = tryone(ui, hunk, parents)
+                if msg:
                     haspatch = True
-                    if lastcommit:
-                        ui.status(_('applied %s\n') % lastcommit)
-                    lastcommit = commitid
+                    ui.note(msg + '\n')
                 if update or opts.get('exact'):
                     parents = repo.parents()
                 else:
-                    parents = [repo[commitid]]
+                    parents = [repo[node]]
 
             if not haspatch:
                 raise util.Abort(_('no diffs found'))