patchbomb: save introductory message in .hg/last-email.txt
authorNicolas Dumazet <nicdumz.commits@gmail.com>
Tue, 21 Dec 2010 19:44:28 +0900
changeset 13198 e71b2aa74ce3
parent 13197 684a977c2ae0
child 13199 a38df1250945
patchbomb: save introductory message in .hg/last-email.txt
hgext/patchbomb.py
tests/test-patchbomb.t
--- a/hgext/patchbomb.py	Fri Dec 17 12:05:45 2010 +0000
+++ b/hgext/patchbomb.py	Tue Dec 21 19:44:28 2010 +0900
@@ -193,6 +193,9 @@
     PAGER environment variable is set, your pager will be fired up once
     for each patchbomb message, so you can verify everything is alright.
 
+    In case email sending fails, you will find a backup of your series
+    introductory message in ``.hg/last-email.txt``.
+
     Examples::
 
       hg email -r 3000          # send patch 3000 only
@@ -309,6 +312,10 @@
             ui.write(_('\nWrite the introductory message for the '
                        'patch series.\n\n'))
             body = ui.edit(body, sender)
+            # Save serie description in case sendmail fails
+            msgfile = repo.opener('last-email.txt', 'wb')
+            msgfile.write(body)
+            msgfile.close()
         return body
 
     def getpatchmsgs(patches, patchnames=None):
--- a/tests/test-patchbomb.t	Fri Dec 17 12:05:45 2010 +0000
+++ b/tests/test-patchbomb.t	Tue Dec 21 19:44:28 2010 +0900
@@ -145,6 +145,17 @@
   +b
   
 
+.hg/last-email.txt
+
+  $ cat > editor << '__EOF__'
+  > #!/bin/sh
+  > echo "a precious introductory message" > "$1"
+  > __EOF__
+  $ chmod +x editor
+  $ HGEDITOR="'`pwd`'"/editor hg email -n -t foo -s test -r 0:tip > /dev/null
+  $ cat .hg/last-email.txt
+  a precious introductory message
+
   $ hg email -m test.mbox -f quux -t foo -c bar -s test 0:tip \
   > --config extensions.progress= --config progress.assume-tty=1 \
   > --config progress.delay=0 --config progress.refresh=0