diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2709,11 +2709,12 @@ def diff(ui, repo, *pats, **opts): ('', 'switch-parent', None, _('diff against the second parent')), ('r', 'rev', [], _('revisions to export'), _('REV')), ] + diffopts, - _('[OPTION]... [-o OUTFILESPEC] [-r] REV...')) + _('[OPTION]... [-o OUTFILESPEC] [-r] [REV]...')) def export(ui, repo, *changesets, **opts): """dump the header and diffs for one or more changesets Print the changeset header and diffs for one or more revisions. + If no revision is given, the parent of the working directory is used. The information shown in the changeset header is: author, date, branch name (if non-default), changeset hash, parent(s) and commit @@ -2769,6 +2770,8 @@ def export(ui, repo, *changesets, **opts Returns 0 on success. """ changesets += tuple(opts.get('rev', [])) + if not changesets: + changesets = ['.'] revs = scmutil.revrange(repo, changesets) if not revs: raise util.Abort(_("export requires at least one changeset")) diff --git a/tests/test-export.t b/tests/test-export.t --- a/tests/test-export.t +++ b/tests/test-export.t @@ -148,8 +148,23 @@ Checking if only alphanumeric characters Catch exporting unknown revisions (especially empty revsets, see issue3353) $ hg export - abort: export requires at least one changeset - [255] + # HG changeset patch + # User test + # Date 0 0 + # Thu Jan 01 00:00:00 1970 +0000 + # Node ID 197ecd81a57f760b54f34a58817ad5b04991fa47 + # Parent f3acbafac161ec68f1598af38f794f28847ca5d3 + !"#$%&(,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ + + diff -r f3acbafac161 -r 197ecd81a57f foo + --- a/foo Thu Jan 01 00:00:00 1970 +0000 + +++ b/foo Thu Jan 01 00:00:00 1970 +0000 + @@ -10,3 +10,4 @@ + foo-9 + foo-10 + foo-11 + +line + $ hg export "" hg: parse error: empty query [255]