diff --git a/dvc/path/data_item.py b/dvc/path/data_item.py index de93fe5ff..6a40c0ff1 100644 --- a/dvc/path/data_item.py +++ b/dvc/path/data_item.py @@ -1,4 +1,5 @@ import os +import stat import shutil from dvc.path.path import Path @@ -104,6 +105,6 @@ class DataItem(object): md5 = file_md5(self.data.relative)[0] self._cache_file = os.path.join(self.cache_dir, md5) self._git.modify_gitignore([self.data.relative]) - if os.path.isfile(self.cache.relative): - return - System.hardlink(self.data.relative, self.cache.relative) + if not os.path.isfile(self.cache.relative): + System.hardlink(self.data.relative, self.cache.relative) + os.chmod(self.data.relative, stat.S_IREAD) diff --git a/dvc/path/factory.py b/dvc/path/factory.py index efae5bf99..9dc3164fb 100644 --- a/dvc/path/factory.py +++ b/dvc/path/factory.py @@ -4,7 +4,7 @@ from dvc.path.data_item import DataItem, DataItemError, DataDirError from dvc.path.path import Path from dvc.path.stated_data_item import StatedDataItem from dvc.system import System - +from dvc.logger import Logger class PathFactory(object): def __init__(self, git, config): diff --git a/dvc/repository_change.py b/dvc/repository_change.py index c34916a92..f932b6554 100644 --- a/dvc/repository_change.py +++ b/dvc/repository_change.py @@ -7,7 +7,7 @@ from dvc.logger import Logger from dvc.path.data_item import DataDirError, DataItemInStatusDirError from dvc.path.stated_data_item import StatedDataItem from dvc.utils import cached_property - +from dvc.config import ConfigI class RepositoryChangeError(DvcException): def __init__(self, msg): @@ -116,7 +116,10 @@ class RepositoryChange(object): def data_file_timesteps(self): res = set() - for root, dirs, files in os.walk('.'): + for root, dirs, files in os.walk(self._settings.git.git_dir_abs): + if root.startswith(os.path.join(self._settings.git.git_dir_abs, ConfigI.CONFIG_DIR)): + continue + for file in files: filename = os.path.join(root, file) if os.path.exists(filename):