diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1552,6 +1552,8 @@ def copy(ui, repo, pats, opts, rename=Fa for abs, rel, exact in srcs: copylist.append(abs) + if not copylist: + raise error.Abort(_(b'no files to copy')) # TODO: Add support for `hg cp --at-rev . foo bar dir` and # `hg cp --at-rev . dir1 dir2`, preferably unifying the code with the # existing functions below. diff --git a/tests/test-rename-rev.t b/tests/test-rename-rev.t --- a/tests/test-rename-rev.t +++ b/tests/test-rename-rev.t @@ -25,10 +25,9 @@ Test single file abort: --at-rev requires --after [255] # Errors out with non-existent source -BROKEN: this should have a better error message $ hg cp -A --at-rev . d1/non-existent d1/d d1/non-existent: no such file in rev 55d1fd85ef0a - abort: --at-rev requires a single source + abort: no files to copy [255] # Errors out with non-existent destination $ hg cp -A --at-rev . d1/b d1/non-existent