diff -r 1746da638d95 -r 1d6499adf211 hgext/patchbomb.py --- a/hgext/patchbomb.py Sun Jul 26 01:56:25 2009 +0200 +++ b/hgext/patchbomb.py Sun Jul 26 01:58:13 2009 +0200 @@ -10,9 +10,9 @@ The series is started off with a "[PATCH 0 of N]" introduction, which describes the series as a whole. -Each patch email has a Subject line of "[PATCH M of N] ...", using the first -line of the changeset description as the subject text. The message contains -two or three body parts: +Each patch email has a Subject line of "[PATCH M of N] ...", using the +first line of the changeset description as the subject text. The +message contains two or three body parts: The changeset description. @@ -20,15 +20,16 @@ The patch itself, as generated by "hg export". -Each message refers to the first in the series using the In-Reply-To and -References headers, so they will show up as a sequence in threaded mail and -news readers, and in mail archives. +Each message refers to the first in the series using the In-Reply-To +and References headers, so they will show up as a sequence in threaded +mail and news readers, and in mail archives. -With the -d/--diffstat option, you will be prompted for each changeset with a -diffstat summary and the changeset summary, so you can be sure you are sending -the right changes. +With the -d/--diffstat option, you will be prompted for each changeset +with a diffstat summary and the changeset summary, so you can be sure +you are sending the right changes. -To configure other defaults, add a section like this to your hgrc file:: +To configure other defaults, add a section like this to your hgrc +file:: [email] from = My Name @@ -36,35 +37,38 @@ cc = cc1, cc2, ... bcc = bcc1, bcc2, ... -Then you can use the "hg email" command to mail a series of changesets as a -patchbomb. +Then you can use the "hg email" command to mail a series of changesets +as a patchbomb. -To avoid sending patches prematurely, it is a good idea to first run the -"email" command with the "-n" option (test only). You will be prompted for an -email recipient address, a subject and an introductory message describing the -patches of your patchbomb. Then when all is done, patchbomb messages are -displayed. If the PAGER environment variable is set, your pager will be fired -up once for each patchbomb message, so you can verify everything is alright. +To avoid sending patches prematurely, it is a good idea to first run +the "email" command with the "-n" option (test only). You will be +prompted for an email recipient address, a subject and an introductory +message describing the patches of your patchbomb. Then when all is +done, patchbomb messages are displayed. If the PAGER environment +variable is set, your pager will be fired up once for each patchbomb +message, so you can verify everything is alright. -The -m/--mbox option is also very useful. Instead of previewing each patchbomb -message in a pager or sending the messages directly, it will create a UNIX -mailbox file with the patch emails. This mailbox file can be previewed with -any mail user agent which supports UNIX mbox files, e.g. with mutt:: +The -m/--mbox option is also very useful. Instead of previewing each +patchbomb message in a pager or sending the messages directly, it will +create a UNIX mailbox file with the patch emails. This mailbox file +can be previewed with any mail user agent which supports UNIX mbox +files, e.g. with mutt:: % mutt -R -f mbox -When you are previewing the patchbomb messages, you can use `formail' (a -utility that is commonly installed as part of the procmail package), to send -each message out:: +When you are previewing the patchbomb messages, you can use `formail' +(a utility that is commonly installed as part of the procmail +package), to send each message out:: % formail -s sendmail -bm -t < mbox That should be all. Now your patchbomb is on its way out. -You can also either configure the method option in the email section to be a -sendmail compatible mailer or fill out the [smtp] section so that the -patchbomb extension can automatically send patchbombs directly from the -commandline. See the [email] and [smtp] sections in hgrc(5) for details. +You can also either configure the method option in the email section +to be a sendmail compatible mailer or fill out the [smtp] section so +that the patchbomb extension can automatically send patchbombs +directly from the commandline. See the [email] and [smtp] sections in +hgrc(5) for details. ''' import os, errno, socket, tempfile, cStringIO, time @@ -173,27 +177,30 @@ def patchbomb(ui, repo, *revs, **opts): '''send changesets by email - By default, diffs are sent in the format generated by hg export, one per - message. The series starts with a "[PATCH 0 of N]" introduction, which - describes the series as a whole. + By default, diffs are sent in the format generated by hg export, + one per message. The series starts with a "[PATCH 0 of N]" + introduction, which describes the series as a whole. - Each patch email has a Subject line of "[PATCH M of N] ...", using the - first line of the changeset description as the subject text. The message - contains two or three parts. First, the changeset description. Next, - (optionally) if the diffstat program is installed and -d/--diffstat is - used, the result of running diffstat on the patch. Finally, the patch - itself, as generated by "hg export". + Each patch email has a Subject line of "[PATCH M of N] ...", using + the first line of the changeset description as the subject text. + The message contains two or three parts. First, the changeset + description. Next, (optionally) if the diffstat program is + installed and -d/--diffstat is used, the result of running + diffstat on the patch. Finally, the patch itself, as generated by + "hg export". - By default the patch is included as text in the email body for easy - reviewing. Using the -a/--attach option will instead create an attachment - for the patch. With -i/--inline an inline attachment will be created. + By default the patch is included as text in the email body for + easy reviewing. Using the -a/--attach option will instead create + an attachment for the patch. With -i/--inline an inline attachment + will be created. - With -o/--outgoing, emails will be generated for patches not found in the - destination repository (or only those which are ancestors of the specified - revisions if any are provided) + With -o/--outgoing, emails will be generated for patches not found + in the destination repository (or only those which are ancestors + of the specified revisions if any are provided) - With -b/--bundle, changesets are selected as for --outgoing, but a single - email containing a binary Mercurial bundle as an attachment will be sent. + With -b/--bundle, changesets are selected as for --outgoing, but a + single email containing a binary Mercurial bundle as an attachment + will be sent. Examples: @@ -212,8 +219,8 @@ hg email -b -r 3000 # bundle of all ancestors of 3000 not in default hg email -b -r 3000 DEST # bundle of all ancestors of 3000 not in DEST - Before using this command, you will need to enable email in your hgrc. See - the [email] section in hgrc(5) for details. + Before using this command, you will need to enable email in your + hgrc. See the [email] section in hgrc(5) for details. ''' _charsets = mail._charsets(ui)