mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-02 07:18:25 +01:00
experiments: fix stash ordering bug (#4805)
This commit is contained in:
@@ -163,8 +163,10 @@ class Experiments:
|
||||
|
||||
@property
|
||||
def stash_reflog(self):
|
||||
"""Return stash reflog in Git 'stash@{...}' index order."""
|
||||
if "refs/stash" in self.scm.repo.refs:
|
||||
return self.scm.repo.refs["refs/stash"].log()
|
||||
# gitpython reflog log() returns commits oldest to newest
|
||||
return reversed(self.scm.repo.refs["refs/stash"].log())
|
||||
return []
|
||||
|
||||
@property
|
||||
|
||||
@@ -160,14 +160,29 @@ def test_get_baseline(tmp_dir, scm, dvc):
|
||||
)
|
||||
scm.add(["dvc.yaml", "dvc.lock", "copy.py", "params.yaml", "metrics.yaml"])
|
||||
scm.commit("init")
|
||||
expected = scm.get_rev()
|
||||
assert dvc.experiments.get_baseline(expected) is None
|
||||
init_rev = scm.get_rev()
|
||||
assert dvc.experiments.get_baseline(init_rev) is None
|
||||
|
||||
results = dvc.experiments.run(stage.addressing, params=["foo=2"])
|
||||
assert dvc.experiments.get_baseline(first(results)) == expected
|
||||
exp_rev = first(results)
|
||||
assert dvc.experiments.get_baseline(exp_rev) == init_rev
|
||||
|
||||
dvc.experiments.run(stage.addressing, params=["foo=3"], queue=True)
|
||||
assert dvc.experiments.get_baseline("stash@{0}") == expected
|
||||
assert dvc.experiments.get_baseline("stash@{0}") == init_rev
|
||||
|
||||
dvc.experiments.checkout(exp_rev)
|
||||
scm.add(["dvc.yaml", "dvc.lock", "copy.py", "params.yaml", "metrics.yaml"])
|
||||
scm.commit("promote exp")
|
||||
promote_rev = scm.get_rev()
|
||||
|
||||
results = dvc.experiments.run(stage.addressing, params=["foo=4"])
|
||||
exp_rev = first(results)
|
||||
assert dvc.experiments.get_baseline(promote_rev) is None
|
||||
assert dvc.experiments.get_baseline(exp_rev) == promote_rev
|
||||
|
||||
dvc.experiments.run(stage.addressing, params=["foo=5"], queue=True)
|
||||
assert dvc.experiments.get_baseline("stash@{0}") == promote_rev
|
||||
assert dvc.experiments.get_baseline("stash@{1}") == init_rev
|
||||
|
||||
|
||||
def test_update_py_params(tmp_dir, scm, dvc):
|
||||
|
||||
Reference in New Issue
Block a user