Merge pull request #723 from efiop/master

dvc: add cache dir to gitignore only if it is not external
This commit is contained in:
Ruslan Kuprieiev
2018-05-21 17:08:31 +03:00
committed by GitHub
2 changed files with 34 additions and 8 deletions
+12 -8
View File
@@ -94,14 +94,18 @@ class Project(object):
return proj
def _ignore(self):
self.scm.ignore_list([self.cache.cache_dir,
self.cache.link_state.state_file,
self.cache.link_state._lock_file.lock_file,
self.state.state_file,
self.state._lock_file.lock_file,
self.lock.lock_file,
self.config.config_local_file,
self.updater.updater_file])
l = [self.cache.link_state.state_file,
self.cache.link_state._lock_file.lock_file,
self.state.state_file,
self.state._lock_file.lock_file,
self.lock.lock_file,
self.config.config_local_file,
self.updater.updater_file]
if self.cache.cache_dir.startswith(self.root_dir):
l += [self.cache.cache_dir]
self.scm.ignore_list(l)
def install(self):
self.scm.install()
+22
View File
@@ -1,7 +1,10 @@
import os
import shutil
import tempfile
from dvc.cache import Cache
from dvc.system import System
from dvc.main import main
from tests.basic_env import TestDvc
@@ -40,3 +43,22 @@ class TestCacheLoadBadDirCache(TestDvc):
fname = 'not-list'
self.create(fname, '{"a": "b"}')
self._do_test(Cache.load_dir_cache(fname))
class TestExternalCacheDir(TestDvc):
def test(self):
cache_dir = tempfile.mkdtemp()
ret = main(['config', 'cache.dir', cache_dir])
self.assertEqual(ret, 0)
shutil.rmtree('.dvc/cache')
main(['add', self.FOO])
self.assertEqual(ret, 0)
main(['add', self.DATA_DIR])
self.assertEqual(ret, 0)
self.assertFalse(os.path.exists('.dvc/cache'))
self.assertNotEquals(len(os.listdir(cache_dir)), 0)