diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2393,6 +2393,10 @@ def _dograft(ui, repo, *revs, **opts): # list of new nodes created by ongoing graft statedata['newnodes'] = [] + if opts.get('user') and opts.get('currentuser'): + raise error.Abort(_('--user and --currentuser are mutually exclusive')) + if opts.get('date') and opts.get('currentdate'): + raise error.Abort(_('--date and --currentdate are mutually exclusive')) if not opts.get('user') and opts.get('currentuser'): opts['user'] = ui.username() if not opts.get('date') and opts.get('currentdate'): diff --git a/tests/test-graft.t b/tests/test-graft.t --- a/tests/test-graft.t +++ b/tests/test-graft.t @@ -112,6 +112,16 @@ Specify revisions with -r: skipping ancestor revision 1:5d205f8b35b6 [255] +Conflicting date/user options: + + $ hg up -q 0 + $ hg graft -U --user foo 2 + abort: --user and --currentuser are mutually exclusive + [255] + $ hg graft -D --date '0 0' 2 + abort: --date and --currentdate are mutually exclusive + [255] + Can't graft with dirty wd: $ hg up -q 0