diff --git a/dvc/repo/experiments/__init__.py b/dvc/repo/experiments/__init__.py index 06f326d9e..3667b7735 100644 --- a/dvc/repo/experiments/__init__.py +++ b/dvc/repo/experiments/__init__.py @@ -879,7 +879,11 @@ class Experiments: exclude = f"{EXEC_NAMESPACE}/*" ref = self.scm.describe(rev, base=EXPS_NAMESPACE, exclude=exclude) if ref: - return ExpRefInfo.from_ref(ref).name + name = ExpRefInfo.from_ref(ref).name + if name: + return name + if rev in self.stash_revs: + return self.stash_revs[rev].name return None def get_running_exps(self) -> Dict[str, int]: diff --git a/dvc/repo/experiments/show.py b/dvc/repo/experiments/show.py index f1632a67e..e37a199d3 100644 --- a/dvc/repo/experiments/show.py +++ b/dvc/repo/experiments/show.py @@ -61,10 +61,7 @@ def _collect_experiment_commit( if name: break if not name: - if stash: - pass - else: - name = repo.experiments.get_exact_name(rev) + name = repo.experiments.get_exact_name(rev) if name: name = name.rsplit("/")[-1] res["name"] = name @@ -187,6 +184,7 @@ def show( experiment = _collect_experiment_commit( repo, stash_rev, + sha_only=sha_only, stash=stash_rev not in running, param_deps=param_deps, running=running, diff --git a/tests/func/experiments/test_show.py b/tests/func/experiments/test_show.py index bc6d72cb6..81be6f4b1 100644 --- a/tests/func/experiments/test_show.py +++ b/tests/func/experiments/test_show.py @@ -68,12 +68,15 @@ def test_show_experiment(tmp_dir, scm, dvc, exp_stage, workspace): def test_show_queued(tmp_dir, scm, dvc, exp_stage): baseline_rev = scm.get_rev() - dvc.experiments.run(exp_stage.addressing, params=["foo=2"], queue=True) + dvc.experiments.run( + exp_stage.addressing, params=["foo=2"], queue=True, name="test_name" + ) exp_rev = dvc.experiments.scm.resolve_rev(f"{EXPS_STASH}@{{0}}") results = dvc.experiments.show()[baseline_rev] assert len(results) == 2 exp = results[exp_rev]["data"] + assert exp["name"] == "test_name" assert exp["queued"] assert exp["params"]["params.yaml"] == {"data": {"foo": 2}}