hgext/patchbomb.py
changeset 4280 a9336520a4ee
parent 4279 126d1967a3f8
child 4283 8625504f507c
equal deleted inserted replaced
4279:126d1967a3f8 4280:a9336520a4ee
    77 except ImportError: pass
    77 except ImportError: pass
    78 
    78 
    79 def patchbomb(ui, repo, *revs, **opts):
    79 def patchbomb(ui, repo, *revs, **opts):
    80     '''send changesets as a series of patch emails
    80     '''send changesets as a series of patch emails
    81 
    81 
    82     The series starts with a "[PATCH 0 of N]" introduction, which
    82     By default, the series starts with a "[PATCH 0 of N]" introduction, which
    83     describes the series as a whole.
    83     describes the series as a whole.
    84 
    84 
    85     Each patch email has a Subject line of "[PATCH M of N] ...", using
    85     Each patch email has a Subject line of "[PATCH M of N] ...", using
    86     the first line of the changeset description as the subject text.
    86     the first line of the changeset description as the subject text.
    87     The message contains two or three body parts.  First, the rest of
    87     The message contains two or three body parts.  First, the rest of
    88     the changeset description.  Next, (optionally) if the diffstat
    88     the changeset description.  Next, (optionally) if the diffstat
    89     program is installed, the result of running diffstat on the patch.
    89     program is installed, the result of running diffstat on the patch.
    90     Finally, the patch itself, as generated by "hg export".
    90     Finally, the patch itself, as generated by "hg export".
    91 
    91 
    92     With --outgoing, emails will be generated for patches not
    92     With --outgoing, emails will be generated for patches not
    93     found in the target repository (or only those which are
    93     found in the destination repository (or only those which are
    94     ancestors of the specified revisions if any are provided)
    94     ancestors of the specified revisions if any are provided)
       
    95 
       
    96     With --bundle, changesets are selected as for --outgoing,
       
    97     but a single email containing a binary Mercurial bundle as an
       
    98     attachment will be sent.
       
    99 
       
   100     Examples:
       
   101 
       
   102     hg email -r 3000          # send patch 3000 only
       
   103     hg email -r 3000 -r 3001  # send patches 3000 and 3001
       
   104     hg email -r 3000:3005     # send patches 3000 through 3005
       
   105     hg email 3000             # send patch 3000 (deprecated)
       
   106 
       
   107     hg email -o               # send all patches not in default
       
   108     hg email -o DEST          # send all patches not in DEST
       
   109     hg email -o -r 3000       # send all ancestors of 3000 not in default
       
   110     hg email -o -r 3000 DEST  # send all ancestors of 3000 not in DEST
       
   111 
       
   112     hg email -b               # send bundle of all patches not in default
       
   113     hg email -b DEST          # send bundle of all patches not in DEST
       
   114     hg email -b -r 3000       # bundle of all ancestors of 3000 not in default
       
   115     hg email -b -r 3000 DEST  # bundle of all ancestors of 3000 not in DEST
       
   116 
       
   117     Before using this command, you will need to enable email in your hgrc.
       
   118     See hgrc(5) for details.
    95     '''
   119     '''
    96 
   120 
    97     def prompt(prompt, default = None, rest = ': ', empty_ok = False):
   121     def prompt(prompt, default = None, rest = ': ', empty_ok = False):
    98         if default: prompt += ' [%s]' % default
   122         if default: prompt += ' [%s]' % default
    99         prompt += rest
   123         prompt += rest