changeset 26510:77c13f3c01ca

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.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 01 Oct 2015 18:01:24 -0700
parents 83d82fbefccb
children bb3d961c1648
files mercurial/cmdutil.py mercurial/commands.py
diffstat 2 files changed, 19 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- 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']