diff --git a/dvc/commands/experiments/ls.py b/dvc/commands/experiments/ls.py index fcc1456a6..3d4ec7f2c 100644 --- a/dvc/commands/experiments/ls.py +++ b/dvc/commands/experiments/ls.py @@ -25,7 +25,14 @@ class CmdExperimentsList(CmdBase): for baseline in exps: if not (name_only or sha_only): - ui.write(f"{baseline[:7]}:") + tag_base = "refs/tags/" + branch_base = "refs/heads/" + name = baseline[:7] + if baseline.startswith(tag_base): + name = baseline[len(tag_base) :] + elif baseline.startswith(branch_base): + name = baseline[len(branch_base) :] + ui.write(f"{name}:") for exp_name, rev in exps[baseline]: if name_only: ui.write(exp_name) diff --git a/dvc/repo/experiments/ls.py b/dvc/repo/experiments/ls.py index 3a8cebd4a..f3018aa63 100644 --- a/dvc/repo/experiments/ls.py +++ b/dvc/repo/experiments/ls.py @@ -42,7 +42,7 @@ def ls( for baseline in ref_info_dict: name = baseline if tags[baseline] or ref_heads[baseline]: - name = tags[baseline] or ref_heads[baseline][len(base) + 1 :] + name = tags[baseline] or ref_heads[baseline] for info in ref_info_dict[baseline]: if git_remote: exp_rev = None diff --git a/tests/func/experiments/test_experiments.py b/tests/func/experiments/test_experiments.py index 72536554a..3931a0e6c 100644 --- a/tests/func/experiments/test_experiments.py +++ b/tests/func/experiments/test_experiments.py @@ -362,7 +362,7 @@ def test_list(tmp_dir, scm, dvc, exp_stage): exp_c = first(results) ref_info_c = first(exp_refs_by_rev(scm, exp_c)) - assert dvc.experiments.ls() == {"master": [(ref_info_c.name, exp_c)]} + assert dvc.experiments.ls() == {"refs/heads/master": [(ref_info_c.name, exp_c)]} exp_list = dvc.experiments.ls(rev=ref_info_a.baseline_sha) assert {key: set(val) for key, val in exp_list.items()} == { @@ -372,20 +372,20 @@ def test_list(tmp_dir, scm, dvc, exp_stage): exp_list = dvc.experiments.ls(rev=[baseline_a, scm.get_rev()]) assert {key: set(val) for key, val in exp_list.items()} == { baseline_a: {(ref_info_a.name, exp_a), (ref_info_b.name, exp_b)}, - "master": {(ref_info_c.name, exp_c)}, + "refs/heads/master": {(ref_info_c.name, exp_c)}, } exp_list = dvc.experiments.ls(all_commits=True) assert {key: set(val) for key, val in exp_list.items()} == { baseline_a: {(ref_info_a.name, exp_a), (ref_info_b.name, exp_b)}, - "master": {(ref_info_c.name, exp_c)}, + "refs/heads/master": {(ref_info_c.name, exp_c)}, } scm.checkout("branch", True) exp_list = dvc.experiments.ls(all_commits=True) assert {key: set(val) for key, val in exp_list.items()} == { baseline_a: {(ref_info_a.name, exp_a), (ref_info_b.name, exp_b)}, - "branch": {(ref_info_c.name, exp_c)}, + "refs/heads/branch": {(ref_info_c.name, exp_c)}, } @@ -676,7 +676,7 @@ def test_experiment_unchanged(tmp_dir, scm, dvc, exp_stage): dvc.experiments.run(exp_stage.addressing) dvc.experiments.run(exp_stage.addressing) - assert len(dvc.experiments.ls()["master"]) == 2 + assert len(dvc.experiments.ls()["refs/heads/master"]) == 2 def test_experiment_run_dry(tmp_dir, scm, dvc, exp_stage): diff --git a/tests/func/experiments/test_remote.py b/tests/func/experiments/test_remote.py index 22a901ec8..1d244a399 100644 --- a/tests/func/experiments/test_remote.py +++ b/tests/func/experiments/test_remote.py @@ -165,7 +165,7 @@ def test_list_remote(tmp_dir, scm, dvc, git_downstream, exp_stage, use_url): exp_list = downstream_exp.ls(all_commits=True, git_remote=remote) assert {key: set(val) for key, val in exp_list.items()} == { baseline_a: {(ref_info_a.name, None), (ref_info_b.name, None)}, - "master": {(ref_info_c.name, None)}, + "refs/heads/master": {(ref_info_c.name, None)}, } diff --git a/tests/func/experiments/test_save.py b/tests/func/experiments/test_save.py index 82231cd15..1d3141748 100644 --- a/tests/func/experiments/test_save.py +++ b/tests/func/experiments/test_save.py @@ -71,7 +71,7 @@ def test_exp_save_after_commit(tmp_dir, dvc, scm): all_exps = dvc.experiments.ls(all_commits=True) assert all_exps[baseline][0][0] == "exp-1" - assert all_exps["master"][0][0] == "exp-2" + assert all_exps["refs/heads/master"][0][0] == "exp-2" def test_exp_save_with_staged_changes(tmp_dir, dvc, scm): diff --git a/tests/unit/command/test_experiments.py b/tests/unit/command/test_experiments.py index a58d8ca6b..9d8c6c82c 100644 --- a/tests/unit/command/test_experiments.py +++ b/tests/unit/command/test_experiments.py @@ -198,7 +198,7 @@ def test_experiments_list_format(mocker, capsys, args, expected, dvc, scm): mocker.patch( "dvc.repo.experiments.ls.ls", return_value={ - "main": [ + "refs/heads/main": [ ("exp-a", "sha-a"), ] },