Ejemplo n.º 1
0
def test_ignore_on_branch(tmp_dir, scm, dvc):
    tmp_dir.scm_gen({"foo": "foo", "bar": "bar"}, commit="add files")

    with tmp_dir.branch("branch", new=True):
        tmp_dir.scm_gen(DvcIgnore.DVCIGNORE_FILE, "foo", commit="add ignore")

    assert _files_set(".", dvc.tree) == {"./foo", "./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")),
    }
Ejemplo n.º 2
0
def test_ignore_on_branch(tmp_dir, scm, dvc):
    tmp_dir.scm_gen({"foo": "foo", "bar": "bar"}, commit="add files")

    scm.checkout("branch", create_new=True)
    tmp_dir.scm_gen(DvcIgnore.DVCIGNORE_FILE, "foo", commit="add ignore")

    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")),
    }
Ejemplo n.º 3
0
def test_metadata_unchanged_when_moving_ignored_file(dvc_repo, repo_dir):
    new_data_path = repo_dir.DATA_SUB + "_new"

    ignore_file = os.path.join(dvc_repo.root_dir, DvcIgnore.DVCIGNORE_FILE)
    repo_dir.create(
        ignore_file,
        "\n".join(
            [to_posixpath(repo_dir.DATA_SUB),
             to_posixpath(new_data_path)]),
    )

    mtime_sig, size = get_mtime_and_size(repo_dir.DATA_DIR, dvc_repo.dvcignore)

    shutil.move(repo_dir.DATA_SUB, new_data_path)

    new_mtime_sig, new_size = get_mtime_and_size(repo_dir.DATA_DIR,
                                                 dvc_repo.dvcignore)

    assert new_mtime_sig == mtime_sig
    assert new_size == size
Ejemplo n.º 4
0
def test_metadata_unchanged_on_ignored_file_deletion(dvc_repo, repo_dir):
    ignore_file = os.path.join(dvc_repo.root_dir, DvcIgnore.DVCIGNORE_FILE)
    repo_dir.create(ignore_file, to_posixpath(repo_dir.DATA_SUB))

    mtime, size = get_mtime_and_size(repo_dir.DATA_DIR, dvc_repo.dvcignore)

    os.remove(repo_dir.DATA_SUB)
    new_mtime, new_size = get_mtime_and_size(repo_dir.DATA_DIR,
                                             dvc_repo.dvcignore)

    assert new_mtime == mtime
    assert new_size == size
Ejemplo n.º 5
0
def test_ignore_on_branch(git, dvc_repo, repo_dir):
    dvc_repo.add(repo_dir.DATA_DIR)
    dvc_repo.scm.commit("add data dir")

    branch_name = "branch_one"
    dvc_repo.scm.checkout(branch_name, create_new=True)

    repo_dir.create(DvcIgnore.DVCIGNORE_FILE, to_posixpath(repo_dir.DATA_SUB))
    dvc_repo.scm.add([DvcIgnore.DVCIGNORE_FILE])
    git.index.commit("add ignore")

    dvc_repo.scm.checkout("master")

    git_tree = dvc_repo.scm.get_tree(branch_name)
    branch_data_files = set(
        itertools.chain.from_iterable([
            files for _, _, files in dvc_repo.tree.walk(
                repo_dir.DATA_DIR,
                dvcignore=DvcIgnoreFilter(repo_dir.root_dir, git_tree),
            )
        ]))
    assert branch_data_files == {"data"}
Ejemplo n.º 6
0
def _files_set(root, tree):
    return {to_posixpath(f) for f in tree.walk_files(root)}
Ejemplo n.º 7
0
def _files_set(root, dvcignore):
    return {to_posixpath(f) for f in walk_files(root, dvcignore)}