export: catch exporting empty revsets (
issue3353)
Additionally add tests for empty revsets and unknown revisions.
--- a/mercurial/commands.py Wed Apr 04 11:18:42 2012 +0200
+++ b/mercurial/commands.py Wed Apr 04 12:31:31 2012 +0200
@@ -2413,9 +2413,9 @@
Returns 0 on success.
"""
changesets += tuple(opts.get('rev', []))
- if not changesets:
+ revs = scmutil.revrange(repo, changesets)
+ if not revs:
raise util.Abort(_("export requires at least one changeset"))
- revs = scmutil.revrange(repo, changesets)
if len(revs) > 1:
ui.note(_('exporting patches:\n'))
else:
--- a/tests/test-export.t Wed Apr 04 11:18:42 2012 +0200
+++ b/tests/test-export.t Wed Apr 04 12:31:31 2012 +0200
@@ -129,3 +129,17 @@
exporting patch:
____________0123456789_______ABCDEFGHIJKLMNOPQRSTUVWXYZ______abcdefghijklmnopqrstuvwxyz____.patch
+Catch exporting unknown revisions (especially empty revsets, see issue3353)
+
+ $ hg export
+ abort: export requires at least one changeset
+ [255]
+ $ hg export ""
+ hg: parse error: empty query
+ [255]
+ $ hg export 999
+ abort: unknown revision '999'!
+ [255]
+ $ hg export "not all()"
+ abort: export requires at least one changeset
+ [255]