changeset 11413:4c1fe996838c

patchbomb: reduce number of opts.get calls Rename outgoing() function to getoutgoing() analogous to getbundle() etc. to avoid name conflict.
author Christian Ebert <blacktrash@gmx.net>
date Wed, 16 Jun 2010 00:37:21 +0200
parents 51ceb1571805
children 0fa4474bdc2f
files hgext/patchbomb.py
diffstat 1 files changed, 23 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/patchbomb.py	Sat Jun 19 17:56:52 2010 -0500
+++ b/hgext/patchbomb.py	Wed Jun 16 00:37:21 2010 +0200
@@ -235,7 +235,15 @@
 
     _charsets = mail._charsets(ui)
 
-    def outgoing(dest, revs):
+    bundle = opts.get('bundle')
+    date = opts.get('date')
+    mbox = opts.get('mbox')
+    outgoing = opts.get('outgoing')
+    rev = opts.get('rev')
+    # internal option used by pbranches
+    patches = opts.get('patches')
+
+    def getoutgoing(dest, revs):
         '''Return the revisions present locally but not in dest'''
         dest = ui.expandpath(dest or 'default-push', dest or 'default')
         dest, branches = hg.parseurl(dest)
@@ -271,38 +279,36 @@
                 pass
             os.rmdir(tmpdir)
 
-    if not (opts.get('test') or opts.get('mbox')):
+    if not (opts.get('test') or mbox):
         # really sending
         mail.validateconfig(ui)
 
-    if not (revs or opts.get('rev')
-            or opts.get('outgoing') or opts.get('bundle')
-            or opts.get('patches')):
+    if not (revs or rev or outgoing or bundle or patches):
         raise util.Abort(_('specify at least one changeset with -r or -o'))
 
-    if opts.get('outgoing') and opts.get('bundle'):
+    if outgoing and bundle:
         raise util.Abort(_("--outgoing mode always on with --bundle;"
                            " do not re-specify --outgoing"))
 
-    if opts.get('outgoing') or opts.get('bundle'):
+    if outgoing or bundle:
         if len(revs) > 1:
             raise util.Abort(_("too many destinations"))
         dest = revs and revs[0] or None
         revs = []
 
-    if opts.get('rev'):
+    if rev:
         if revs:
             raise util.Abort(_('use only one form to specify the revision'))
-        revs = opts.get('rev')
+        revs = rev
 
-    if opts.get('outgoing'):
-        revs = outgoing(dest, opts.get('rev'))
-    if opts.get('bundle'):
+    if outgoing:
+        revs = getoutgoing(dest, rev)
+    if bundle:
         opts['revs'] = revs
 
     # start
-    if opts.get('date'):
-        start_time = util.parsedate(opts.get('date'))
+    if date:
+        start_time = util.parsedate(date)
     else:
         start_time = util.makedate()
 
@@ -381,11 +387,9 @@
               ui.config('patchbomb', 'from') or
               prompt(ui, 'From', ui.username()))
 
-    # internal option used by pbranches
-    patches = opts.get('patches')
     if patches:
         msgs = getpatchmsgs(patches, opts.get('patchnames'))
-    elif opts.get('bundle'):
+    elif bundle:
         msgs = getbundlemsgs(getbundle(dest))
     else:
         msgs = getpatchmsgs(list(getpatches(revs)))
@@ -463,9 +467,9 @@
                     raise
             if fp is not ui:
                 fp.close()
-        elif opts.get('mbox'):
+        elif mbox:
             ui.status(_('Writing '), subj, ' ...\n')
-            fp = open(opts.get('mbox'), 'In-Reply-To' in m and 'ab+' or 'wb+')
+            fp = open(mbox, 'In-Reply-To' in m and 'ab+' or 'wb+')
             generator = email.Generator.Generator(fp, mangle_from_=True)
             # Should be time.asctime(), but Windows prints 2-characters day
             # of month instead of one. Make them print the same thing.