Open mnrozhkov opened 9 months ago
Thanks for the report!
DVC CLI does not do any monorepo slicing at the moment -- that is limited to Studio. The reason you only saw 2 experiments in dvc exp list
is because you did not include -A
for that command. All dvc exp
commands will look at the entire repo.
Looks like https://github.com/iterative/dvc/issues/10244#issuecomment-1899063451 is related.
I didn't notice at first that these are entirely different dvc projects with project_a/.dvc
and project_b/.dvc
. @pmrowla Thoughts on how dvc exp
commands should handle this scenario? See the link above, where it looks like we end up pushing two copies of each experiment from each project.
I'm not sure we are actually pushing two copies of the experiment, I'm guessing that there are actually two separate experiments with the same name being generated.
git refs (and exps) apply to the entire repository. If we actually need to separate exps by subrepo, then we need to extend the exp ref namespace to differentiate them in the dvc init --subdir
case
so the exp refs would go somewhere like
refs/exps/<git-sha>/subrepo/path/to/subdir/exp-name
Summary / Background
I'm testing DVC Experiments for monorepo scenario. I encountered unexpected behavior for
dvc exp remove
Within a mono repo say we have:
When working inside
project_a
, I list experimentsand get 2 experiments I ran for
project_a
Then, I want to remove all experiments for
project_a
withDVC removes all experiments for all projects in the repo
Expected behavior
dvc exp remove -A
should remove only experiments withinproject_a
scope