diff --git a/dvc/commands/experiments/apply.py b/dvc/commands/experiments/apply.py index 98392eef2..1114b369e 100644 --- a/dvc/commands/experiments/apply.py +++ b/dvc/commands/experiments/apply.py @@ -4,21 +4,13 @@ import logging from dvc.cli import completion from dvc.cli.command import CmdBase from dvc.cli.utils import append_doc_link -from dvc.ui import ui logger = logging.getLogger(__name__) class CmdExperimentsApply(CmdBase): def run(self): - if not self.args.force: - ui.write( - "The --no-force option is deprecated and will be removed in a future" - " DVC release. To revert the result of 'exp apply', run:\n" - "\n\tgit reset --hard\n" - "\tgit stash apply refs/exps/apply/stash\n" - ) - self.repo.experiments.apply(self.args.experiment) + self.repo.experiments.apply(self.args.experiment, force=self.args.force) return 0 @@ -33,10 +25,11 @@ def add_parser(experiments_subparsers, parent_parser): formatter_class=argparse.RawDescriptionHelpFormatter, ) experiments_apply_parser.add_argument( - "--no-force", - action="store_false", - dest="force", - help="Fail if this command would overwrite conflicting changes.", + "-f", + "--force", + action="store_true", + default=False, + help="Do not prompt when removing working directory files.", ) experiments_apply_parser.add_argument( "experiment", help="Experiment to be applied." diff --git a/tests/unit/command/test_experiments.py b/tests/unit/command/test_experiments.py index b18d9e973..1fb1d52c1 100644 --- a/tests/unit/command/test_experiments.py +++ b/tests/unit/command/test_experiments.py @@ -27,7 +27,19 @@ def test_experiments_apply(dvc, scm, mocker): assert cmd.run() == 0 - m.assert_called_once_with(cmd.repo, "exp_rev") + m.assert_called_once_with(cmd.repo, "exp_rev", force=False) + + +def test_experiments_apply_force(dvc, scm, mocker): + cli_args = parse_args(["experiments", "apply", "exp_rev", "--force"]) + assert cli_args.func == CmdExperimentsApply + + cmd = cli_args.func(cli_args) + m = mocker.patch("dvc.repo.experiments.apply.apply", return_value={}) + + assert cmd.run() == 0 + + m.assert_called_once_with(cmd.repo, "exp_rev", force=True) def test_experiments_diff(dvc, scm, mocker):