export: export working directory parent by default
A common usecase for export is to preview the patch that will be patchbombed or
to see what changed in a revision found by bisect. Showing the working
directory parent is thus a useful and obvious default.
--- a/mercurial/commands.py Wed Apr 10 13:12:24 2013 +0200
+++ b/mercurial/commands.py Mon Feb 11 00:43:12 2013 +0100
@@ -2709,11 +2709,12 @@
('', '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 @@
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"))
--- a/tests/test-export.t Wed Apr 10 13:12:24 2013 +0200
+++ b/tests/test-export.t Mon Feb 11 00:43:12 2013 +0100
@@ -148,8 +148,23 @@
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]