import: --no-commit should update .hg/last-message.txt
authorSteve Borho <steve@borho.org>
Thu, 21 Oct 2010 16:04:34 -0500
changeset 12913 0e0a52bd58f9
parent 12912 15b8a652b558
child 12914 27bc21814e9c
import: --no-commit should update .hg/last-message.txt The patch parser goes through all of that trouble extracting the commit message from the patch file. It seems such a waste not to use it.
mercurial/commands.py
tests/test-import.t
--- a/mercurial/commands.py	Tue Nov 02 09:47:47 2010 +0100
+++ b/mercurial/commands.py	Thu Oct 21 16:04:34 2010 -0500
@@ -2279,6 +2279,7 @@
     d = opts["base"]
     strip = opts["strip"]
     wlock = lock = None
+    msgs = []
 
     def tryone(ui, hunk):
         tmpname, message, user, date, branch, nodeid, p1, p2 = \
@@ -2329,7 +2330,10 @@
             finally:
                 files = cmdutil.updatedir(ui, repo, files,
                                           similarity=sim / 100.0)
-            if not opts.get('no_commit'):
+            if opts.get('no_commit'):
+                if message:
+                    msgs.append(message)
+            else:
                 if opts.get('exact'):
                     m = None
                 else:
@@ -2378,6 +2382,8 @@
             if not haspatch:
                 raise util.Abort(_('no diffs found'))
 
+        if msgs:
+            repo.opener('last-message.txt', 'wb').write('* * *\n'.join(msgs))
     finally:
         release(lock, wlock)
 
--- a/tests/test-import.t	Tue Nov 02 09:47:47 2010 +0100
+++ b/tests/test-import.t	Thu Oct 21 16:04:34 2010 -0500
@@ -437,6 +437,14 @@
   $ hg revert -a
   reverting a
 
+
+import with --no-commit should have written .hg/last-message.txt
+
+  $ echo '\n' | cat .hg/last-message.txt -
+  change
+  
+
+
 test fuzziness with eol=auto
 
   $ hg --config patch.eol=auto import --no-commit -v tip.patch