bundle: extract the parsing of the bundle type in a function
authorPierre-Yves David <pierre-yves.david@fb.com>
Thu, 01 Oct 2015 18:01:24 -0700
changeset 26510 77c13f3c01ca
parent 26509 83d82fbefccb
child 26511 bb3d961c1648
bundle: extract the parsing of the bundle type in a function We are going to introduce significant extensions of the bundle parsing code to support creation of bundle2 through the bundle command. As an early step, we extract the logic in its own function.
mercurial/cmdutil.py
mercurial/commands.py
--- a/mercurial/cmdutil.py	Thu Oct 01 19:14:47 2015 -0700
+++ b/mercurial/cmdutil.py	Thu Oct 01 18:01:24 2015 -0700
@@ -10,7 +10,7 @@
 import os, sys, errno, re, tempfile, cStringIO, shutil
 import util, scmutil, templater, patch, error, templatekw, revlog, copies
 import match as matchmod
-import repair, graphmod, revset, phases, obsolete, pathutil
+import repair, graphmod, revset, phases, obsolete, pathutil, changegroup
 import changelog
 import bookmarks
 import encoding
@@ -3330,3 +3330,20 @@
                        % self._filename)
                 raise util.Abort(msg)
             self._abort()
+
+def parsebundletype(bundletype):
+    """return the internal bundle type to use from a user input
+
+    This is parsing user specified bundle type as accepted in:
+
+        'hg bundle --type TYPE'.
+    """
+    btypes = {'none': 'HG10UN',
+              'bzip2': 'HG10BZ',
+              'gzip': 'HG10GZ',
+              'bundle2': 'HG20'}
+    bundletype = btypes.get(bundletype)
+    if bundletype not in changegroup.bundletypes:
+        raise util.Abort(_('unknown bundle type specified with --type'))
+    return bundletype
+
--- a/mercurial/commands.py	Thu Oct 01 19:14:47 2015 -0700
+++ b/mercurial/commands.py	Thu Oct 01 18:01:24 2015 -0700
@@ -1238,13 +1238,7 @@
         revs = scmutil.revrange(repo, opts['rev'])
 
     bundletype = opts.get('type', 'bzip2').lower()
-    btypes = {'none': 'HG10UN',
-              'bzip2': 'HG10BZ',
-              'gzip': 'HG10GZ',
-              'bundle2': 'HG20'}
-    bundletype = btypes.get(bundletype)
-    if bundletype not in changegroup.bundletypes:
-        raise util.Abort(_('unknown bundle type specified with --type'))
+    bundletype = cmdutil.parsebundletype(bundletype)
 
     if opts.get('all'):
         base = ['null']