Mercurial > kallithea
diff rhodecode/controllers/files.py @ 1810:203af05539e0 beta
implements #330 api method for listing nodes at particular revision
- improved filtering by files in file list
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 28 Dec 2011 04:12:27 +0200 |
parents | ef0066e95be5 |
children | cf51bbfb120e |
line wrap: on
line diff
--- a/rhodecode/controllers/files.py Sat Dec 24 02:21:22 2011 +0200 +++ b/rhodecode/controllers/files.py Wed Dec 28 04:12:27 2011 +0200 @@ -49,6 +49,7 @@ from rhodecode.controllers.changeset import anchor_url, _ignorews_url,\ _context_url, get_line_ctx, get_ignore_ws from rhodecode.lib.diffs import wrapped_diff +from rhodecode.model.scm import ScmModel log = logging.getLogger(__name__) @@ -107,25 +108,6 @@ return file_node - def __get_paths(self, changeset, starting_path): - """recursive walk in root dir and return a set of all path in that dir - based on repository walk function - """ - _files = list() - _dirs = list() - - try: - tip = changeset - for topnode, dirs, files in tip.walk(starting_path): - for f in files: - _files.append(f.path) - for d in dirs: - _dirs.append(d.path) - except RepositoryError, e: - log.debug(traceback.format_exc()) - pass - return _dirs, _files - @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 'repository.admin') def index(self, repo_name, revision, f_path): @@ -505,6 +487,7 @@ def nodelist(self, repo_name, revision, f_path): if request.environ.get('HTTP_X_PARTIAL_XHR'): cs = self.__get_cs_or_redirect(revision, repo_name) - _d, _f = self.__get_paths(cs, f_path) + _d, _f = ScmModel().get_nodes(repo_name, cs.raw_id, f_path, + flat=False) return _d + _f