[PATCH fixed] commands: move bundle type validation earlier
Bryan O'Sullivan
bos at serpentine.com
Fri Apr 13 13:01:41 CDT 2012
# HG changeset patch
# User Bryan O'Sullivan <bryano at fb.com>
# Date 1334340067 25200
# Node ID 189952015337e2a15a9ef87cc87d117485eebb80
# Parent 0b29e73127720e495aaa207e84aaec5c6307c848
commands: move bundle type validation earlier
Checking the bundle type late in the command's execution can mean
that we do work for a long time before complaining about incorrect
user input and aborting. Guess how I discovered this.
diff -r 0b29e7312772 -r 189952015337 mercurial/commands.py
--- a/mercurial/commands.py Fri Apr 13 09:26:26 2012 -0700
+++ b/mercurial/commands.py Fri Apr 13 11:01:07 2012 -0700
@@ -972,6 +972,12 @@
if 'rev' in opts:
revs = scmutil.revrange(repo, opts['rev'])
+ bundletype = opts.get('type', 'bzip2').lower()
+ btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
+ bundletype = btypes.get(bundletype)
+ if bundletype not in changegroup.bundletypes:
+ raise util.Abort(_('unknown bundle type specified with --type'))
+
if opts.get('all'):
base = ['null']
else:
@@ -998,12 +1004,6 @@
scmutil.nochangesfound(ui, outgoing and outgoing.excluded)
return 1
- bundletype = opts.get('type', 'bzip2').lower()
- btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
- bundletype = btypes.get(bundletype)
- if bundletype not in changegroup.bundletypes:
- raise util.Abort(_('unknown bundle type specified with --type'))
-
changegroup.writebundle(cg, fname, bundletype)
@command('cat',
diff -r 0b29e7312772 -r 189952015337 tests/test-bundle-type.t
--- a/tests/test-bundle-type.t Fri Apr 13 09:26:26 2012 -0700
+++ b/tests/test-bundle-type.t Fri Apr 13 11:01:07 2012 -0700
@@ -95,7 +95,6 @@
$ cd t1
$ hg bundle -a -t garbage ../bgarbage
- 1 changesets found
abort: unknown bundle type specified with --type
[255]
$ cd ..
More information about the Mercurial-devel
mailing list