import: simplify status reporting logic (and make it more I18N-friendly)
authorGreg Ward <greg@gerg.ca>
Sat, 01 Oct 2011 21:30:49 -0400
changeset 15194 0705f2ac79d6
parent 15193 a84e3ed661cb
child 15195 5b2a3bb06cef
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.
mercurial/commands.py
tests/test-import-bypass.t
tests/test-import.t
tests/test-patch-offset.t
tests/test-patch.t
--- 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'))
--- a/tests/test-import-bypass.t	Fri Oct 07 15:36:35 2011 -0500
+++ b/tests/test-import-bypass.t	Sat Oct 01 21:30:49 2011 -0400
@@ -171,7 +171,6 @@
   $ hg import --bypass ../patch1.diff ../patch2.diff
   applying ../patch1.diff
   applying ../patch2.diff
-  applied 16581080145e
   $ shortlog
   o  3:bc8ca3f8a7c4 test 0 0 - default - addf
   |
@@ -196,7 +195,6 @@
   $ hg import --bypass --exact ../patch1.diff ../patch2.diff
   applying ../patch1.diff
   applying ../patch2.diff
-  applied 16581080145e
   $ shortlog
   o  3:d60cb8989666 test 0 0 - foo - addf
   |
--- a/tests/test-import.t	Fri Oct 07 15:36:35 2011 -0500
+++ b/tests/test-import.t	Sat Oct 01 21:30:49 2011 -0400
@@ -199,7 +199,6 @@
   $ hg init b
   $ hg --cwd a export 0:tip | hg --cwd b import -
   applying patch from stdin
-  applied 80971e65b431
   $ hg --cwd a id
   1d4bd90af0e4 tip
   $ hg --cwd b id
@@ -356,10 +355,15 @@
   $ hg clone -qr0 a b
   $ hg --cwd b parents --template 'parent: {rev}\n'
   parent: 0
-  $ hg --cwd b import ../patch1 ../patch2
+  $ hg --cwd b import -v ../patch1 ../patch2
   applying ../patch1
+  patching file a
+  a
+  created 1d4bd90af0e4
   applying ../patch2
-  applied 1d4bd90af0e4
+  patching file a
+  a
+  created 6d019af21222
   $ hg --cwd b rollback
   repository tip rolled back to revision 1 (undo commit)
   working directory now based on revision 1
@@ -433,6 +437,7 @@
   applying fuzzy-tip.patch
   patching file a
   Hunk #1 succeeded at 1 with fuzz 2 (offset -2 lines).
+  applied to working directory
   $ hg revert -a
   reverting a
 
@@ -449,6 +454,7 @@
   applying fuzzy-tip.patch
   patching file a
   Hunk #1 succeeded at 1 with fuzz 2 (offset -2 lines).
+  applied to working directory
   $ cd ..
 
 
@@ -651,6 +657,7 @@
   removing a
   adding b
   recording removal of a as rename to b (88% similar)
+  applied to working directory
   $ hg st -C
   A b
     a
@@ -665,6 +672,7 @@
   patching file b
   removing a
   adding b
+  applied to working directory
   $ hg st -C
   A b
   R a
--- a/tests/test-patch-offset.t	Fri Oct 07 15:36:35 2011 -0500
+++ b/tests/test-patch-offset.t	Sat Oct 01 21:30:49 2011 -0400
@@ -69,6 +69,7 @@
   Hunk #2 succeeded at 87 (offset 34 lines).
   Hunk #3 succeeded at 109 (offset 34 lines).
   a
+  created 189885cecb41
 
 compare imported changes against reference file
 
--- a/tests/test-patch.t	Fri Oct 07 15:36:35 2011 -0500
+++ b/tests/test-patch.t	Sat Oct 01 21:30:49 2011 -0400
@@ -37,7 +37,7 @@
   $ hg --cwd b import -v ../a.diff
   applying ../a.diff
   Using custom patch
-
+  applied to working directory
 
 Issue2417: hg import with # comments in description