74 import email.Utils, email.Encoders, email.Generator |
74 import email.Utils, email.Encoders, email.Generator |
75 from mercurial import cmdutil, commands, hg, mail, patch, util |
75 from mercurial import cmdutil, commands, hg, mail, patch, util |
76 from mercurial.i18n import _ |
76 from mercurial.i18n import _ |
77 from mercurial.node import bin |
77 from mercurial.node import bin |
78 |
78 |
79 def prompt(ui, prompt, default='', rest=': ', empty_ok=False): |
79 def prompt(ui, prompt, default='', rest=':', empty_ok=False): |
80 if not ui.interactive(): |
80 if not ui.interactive(): |
81 if default or empty_ok: |
81 if default or empty_ok: |
82 return default |
82 return default |
83 raise util.Abort(_("%sPlease enter a valid value" % (prompt+rest))) |
83 raise util.Abort(_("%s Please enter a valid value" % (prompt+rest))) |
84 if default: |
84 if default: |
85 prompt += ' [%s]' % default |
85 prompt += ' [%s]' % default |
86 prompt += rest |
86 prompt += rest |
87 while True: |
87 while True: |
88 r = ui.prompt(prompt, default=default) |
88 r = ui.prompt(prompt, default=default) |
97 def cdiffstat(ui, summary, patchlines): |
97 def cdiffstat(ui, summary, patchlines): |
98 s = patch.diffstat(patchlines) |
98 s = patch.diffstat(patchlines) |
99 if summary: |
99 if summary: |
100 ui.write(summary, '\n') |
100 ui.write(summary, '\n') |
101 ui.write(s, '\n') |
101 ui.write(s, '\n') |
102 ans = prompt(ui, _('does the diffstat above look okay? '), 'y') |
102 ans = prompt(ui, _('does the diffstat above look okay?'), 'y') |
103 if not ans.lower().startswith('y'): |
103 if not ans.lower().startswith('y'): |
104 raise util.Abort(_('diffstat rejected')) |
104 raise util.Abort(_('diffstat rejected')) |
105 return s |
105 return s |
106 |
106 |
107 def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None): |
107 def makepatch(ui, repo, patch, opts, _charsets, idx, total, patchname=None): |
328 if len(patches) > 1 or opts.get('intro'): |
328 if len(patches) > 1 or opts.get('intro'): |
329 tlen = len(str(len(patches))) |
329 tlen = len(str(len(patches))) |
330 |
330 |
331 flag = ' '.join(opts.get('flag')) |
331 flag = ' '.join(opts.get('flag')) |
332 if flag: |
332 if flag: |
333 subj = '[PATCH %0*d of %d %s] ' % (tlen, 0, len(patches), flag) |
333 subj = '[PATCH %0*d of %d %s]' % (tlen, 0, len(patches), flag) |
334 else: |
334 else: |
335 subj = '[PATCH %0*d of %d] ' % (tlen, 0, len(patches)) |
335 subj = '[PATCH %0*d of %d]' % (tlen, 0, len(patches)) |
336 subj += opts.get('subject') or prompt(ui, 'Subject:', rest=subj) |
336 subj += ' ' + (opts.get('subject') or |
|
337 prompt(ui, 'Subject: ', rest=subj)) |
337 |
338 |
338 body = '' |
339 body = '' |
339 if opts.get('diffstat'): |
340 if opts.get('diffstat'): |
340 d = cdiffstat(ui, _('Final summary:\n'), jumbo) |
341 d = cdiffstat(ui, _('Final summary:\n'), jumbo) |
341 if d: |
342 if d: |