dvc: autowrap repo tree into CleanTree

This commit is contained in:
Alexander Schepanovski
2020-01-03 21:46:05 +07:00
parent 45933113df
commit 5e92a079b8
4 changed files with 14 additions and 20 deletions
+2 -2
View File
@@ -83,7 +83,7 @@ class Repo(object):
self.scm = SCM(self.root_dir)
self.tree = CleanTree(WorkingTree(self.root_dir))
self.tree = WorkingTree(self.root_dir)
self.tmp_dir = os.path.join(self.dvc_dir, "tmp")
makedirs(self.tmp_dir, exist_ok=True)
@@ -120,7 +120,7 @@ class Repo(object):
@tree.setter
def tree(self, tree):
self._tree = tree
self._tree = tree if isinstance(tree, CleanTree) else CleanTree(tree)
# Our graph cache is no longer valid, as it was based on the previous
# tree.
self._reset()
+2 -3
View File
@@ -1,6 +1,5 @@
from funcy import group_by
from dvc.ignore import CleanTree
from dvc.scm.tree import WorkingTree
@@ -30,7 +29,7 @@ def brancher( # noqa: E302
scm = self.scm
self.tree = CleanTree(WorkingTree(self.root_dir))
self.tree = WorkingTree(self.root_dir)
yield "working tree"
if all_commits:
@@ -44,7 +43,7 @@ def brancher( # noqa: E302
try:
for sha, names in group_by(scm.resolve_rev, revs).items():
self.tree = CleanTree(scm.get_tree(sha))
self.tree = scm.get_tree(sha)
yield ", ".join(names)
finally:
self.tree = saved_tree
+5 -9
View File
@@ -1,15 +1,11 @@
import os
from errno import ENOENT
import dvc.logger as logger
from dvc.ignore import CleanTree
from . import locked
from dvc import logger
from dvc.scm.base import FileNotInCommitError
from dvc.scm.git import DIFF_A_REF
from dvc.scm.git import DIFF_A_TREE
from dvc.scm.git import DIFF_B_REF
from dvc.scm.git import DIFF_B_TREE
from dvc.scm.git import DIFF_A_REF, DIFF_B_REF, DIFF_A_TREE, DIFF_B_TREE
from dvc.scm.git import DIFF_EQUAL
from . import locked
DIFF_TARGET = "target"
@@ -136,9 +132,9 @@ def _is_dir(path, a_outs, b_outs):
def _get_diff_outs(self, diff_dct):
self.tree = CleanTree(diff_dct[DIFF_A_TREE])
self.tree = diff_dct[DIFF_A_TREE]
a_outs = {str(out): out for st in self.stages for out in st.outs}
self.tree = CleanTree(diff_dct[DIFF_B_TREE])
self.tree = diff_dct[DIFF_B_TREE]
b_outs = {str(out): out for st in self.stages for out in st.outs}
outs_paths = set(a_outs.keys())
outs_paths.update(b_outs.keys())
+5 -6
View File
@@ -4,7 +4,7 @@ import shutil
import pytest
from dvc.exceptions import DvcIgnoreInCollectedDirError
from dvc.ignore import DvcIgnore, DvcIgnoreDirs, DvcIgnorePatterns, CleanTree
from dvc.ignore import DvcIgnore, DvcIgnoreDirs, DvcIgnorePatterns
from dvc.scm.tree import WorkingTree
from dvc.utils import relpath
from dvc.compat import fspath_py35, fspath
@@ -113,11 +113,10 @@ def test_ignore_on_branch(tmp_dir, scm, dvc):
scm.checkout("master")
assert _files_set(".", dvc.tree) == {"./foo", "./bar"}
tree = CleanTree(scm.get_tree("branch"))
assert _files_set(".", tree) == {
to_posixpath(os.path.join(tree.tree_root, DvcIgnore.DVCIGNORE_FILE)),
to_posixpath(os.path.join(tree.tree_root, "bar")),
dvc.tree = scm.get_tree("branch")
assert _files_set(".", dvc.tree) == {
to_posixpath(os.path.join(dvc.root_dir, DvcIgnore.DVCIGNORE_FILE)),
to_posixpath(os.path.join(dvc.root_dir, "bar")),
}