diff --git a/rhodecode/lib/db_manage.py b/rhodecode/lib/db_manage.py --- a/rhodecode/lib/db_manage.py +++ b/rhodecode/lib/db_manage.py @@ -306,6 +306,7 @@ class DbManage(object): and disables dotencode """ settings_model = SettingsModel(sa=self.sa) + from rhodecode.lib.vcs.backends.hg import largefiles_store # Build HOOKS hooks = [ @@ -336,12 +337,12 @@ class DbManage(object): self.sa.add(largefiles) # set default largefiles cache dir, defaults to - # /repo location/.cache/largefiles + # /repo_store_location/.cache/largefiles largefiles = RhodeCodeUi() largefiles.ui_section = 'largefiles' largefiles.ui_key = 'usercache' - largefiles.ui_value = os.path.join(repo_store_path, '.cache', - 'largefiles') + largefiles.ui_value = largefiles_store(repo_store_path) + self.sa.add(largefiles) # enable hgsubversion disabled by default diff --git a/rhodecode/lib/vcs/backends/hg/__init__.py b/rhodecode/lib/vcs/backends/hg/__init__.py --- a/rhodecode/lib/vcs/backends/hg/__init__.py +++ b/rhodecode/lib/vcs/backends/hg/__init__.py @@ -21,6 +21,7 @@ """ HG module """ +import os import logging from rhodecode.lib.vcs import connection @@ -46,3 +47,10 @@ def discover_hg_version(raise_on_exc=Fal if raise_on_exc: raise return '' + + +def largefiles_store(base_location): + """ + Return a largefile store relative to base_location + """ + return os.path.join(base_location, '.cache', 'largefiles') diff --git a/rhodecode/tests/database/conftest.py b/rhodecode/tests/database/conftest.py --- a/rhodecode/tests/database/conftest.py +++ b/rhodecode/tests/database/conftest.py @@ -92,6 +92,9 @@ class DBBackend(object): def __init__( self, config_file, db_name=None, basetemp=None, connection_string=None): + + from rhodecode.lib.vcs.backends.hg import largefiles_store + self.fixture_store = os.path.join(self._store, self._type) self.db_name = db_name or self._base_db_name self._base_ini_file = config_file @@ -99,6 +102,7 @@ class DBBackend(object): self.stdout = '' self._basetemp = basetemp or tempfile.gettempdir() self._repos_location = os.path.join(self._basetemp, 'rc_test_repos') + self._repos_hg_largefiles_store = largefiles_store(self._basetemp) self.connection_string = connection_string @property @@ -154,6 +158,9 @@ class DBBackend(object): self._type, destroy=True) as _ini_file: if not os.path.isdir(self._repos_location): os.makedirs(self._repos_location) + if not os.path.isdir(self._repos_hg_largefiles_store): + os.makedirs(self._repos_hg_largefiles_store) + self.execute( "paster setup-rhodecode {0} --user=marcink " "--email=marcin@rhodeocode.com --password={1} "