# HG changeset patch # User Marcin Kuzminski # Date 1359227515 -3600 # Node ID 56cdbadcca53fa11a2fd31e85e72bc100a47077e # Parent 3e02db7d9f24de0f2f84d7b6d3e2092f489e08a3 reposcann should skip directories with starting with '.' some code cleanup, moved all skipping to get_repos function diff -r 3e02db7d9f24 -r 56cdbadcca53 rhodecode/lib/utils.py --- a/rhodecode/lib/utils.py Fri Jan 25 16:42:02 2013 +0100 +++ b/rhodecode/lib/utils.py Sat Jan 26 20:11:55 2013 +0100 @@ -171,7 +171,7 @@ raise -def get_repos(path, recursive=False): +def get_repos(path, recursive=False, skip_removed_repos=True): """ Scans given path for repos and return (name,(type,path)) tuple @@ -181,6 +181,7 @@ # remove ending slash for better results path = path.rstrip(os.sep) + log.debug('now scanning in %s location recursive:%s...' % (path, recursive)) def _get_repos(p): if not os.access(p, os.W_OK): @@ -189,6 +190,15 @@ if os.path.isfile(os.path.join(p, dirpath)): continue cur_path = os.path.join(p, dirpath) + + # skip removed repos + if skip_removed_repos and REMOVED_REPO_PAT.match(dirpath): + continue + + #skip . dirs + if dirpath.startswith('.'): + continue + try: scm_info = get_scm(cur_path) yield scm_info[1].split(path, 1)[-1].lstrip(os.sep), scm_info @@ -203,6 +213,9 @@ return _get_repos(path) +#alias for backward compat +get_filesystem_repos = get_repos + def is_valid_repo(repo_name, base_path, scm=None): """ diff -r 3e02db7d9f24 -r 56cdbadcca53 rhodecode/lib/vcs/utils/helpers.py --- a/rhodecode/lib/vcs/utils/helpers.py Fri Jan 25 16:42:02 2013 +0100 +++ b/rhodecode/lib/vcs/utils/helpers.py Sat Jan 26 20:11:55 2013 +0100 @@ -80,7 +80,7 @@ continue dirname = os.path.join(path, 'rm__.' + key) if os.path.isdir(dirname): - return [None] + return result # We still need to check if it's not bare repository as # bare repos don't have working directories try: @@ -131,6 +131,7 @@ content = code return content + def parse_changesets(text): """ Returns dictionary with *start*, *main* and *end* ids. diff -r 3e02db7d9f24 -r 56cdbadcca53 rhodecode/model/scm.py --- a/rhodecode/model/scm.py Fri Jan 25 16:42:02 2013 +0100 +++ b/rhodecode/model/scm.py Sat Jan 26 20:11:55 2013 +0100 @@ -46,7 +46,7 @@ from rhodecode.lib import helpers as h from rhodecode.lib.utils2 import safe_str, safe_unicode from rhodecode.lib.auth import HasRepoPermissionAny, HasReposGroupPermissionAny -from rhodecode.lib.utils import get_repos as get_filesystem_repos, make_ui, \ +from rhodecode.lib.utils import get_filesystem_repos, make_ui, \ action_logger, REMOVED_REPO_PAT from rhodecode.model import BaseModel from rhodecode.model.db import Repository, RhodeCodeUi, CacheInvalidation, \ @@ -224,10 +224,6 @@ repos = {} for name, path in get_filesystem_repos(repos_path, recursive=True): - # skip removed repos - if REMOVED_REPO_PAT.match(name) or path[0] is None: - continue - # name need to be decomposed and put back together using the / # since this is internal storage separator for rhodecode name = Repository.normalize_repo_name(name) @@ -247,7 +243,7 @@ repos[name] = klass(path[1]) except OSError: continue - + log.debug('found %s paths with repositories' % (len(repos))) return repos def get_repos(self, all_repos=None, sort_key=None, simple=False):