Changeset - ba08786c49ef
[Not reviewed]
beta
0 1 0
Marcin Kuzminski - 12 years ago 2013-05-30 00:29:23
marcin@python-works.com
fixed #850 Whoosh indexer should use the default revision flag to make index
1 file changed with 19 insertions and 5 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/indexers/daemon.py
Show inline comments
 
@@ -41,6 +41,7 @@ sys.path.append(project_path)
 

	
 
from rhodecode.config.conf import INDEX_EXTENSIONS
 
from rhodecode.model.scm import ScmModel
 
from rhodecode.model.db import Repository
 
from rhodecode.lib.utils2 import safe_unicode, safe_str
 
from rhodecode.lib.indexers import SCHEMA, IDX_NAME, CHGSETS_SCHEMA, \
 
    CHGSET_IDX_NAME
 
@@ -109,6 +110,18 @@ class WhooshIndexingDaemon(object):
 
        else:
 
            self.initial = False
 

	
 
    def _get_index_revision(self, repo):
 
        db_repo = Repository.get_by_repo_name(repo.name)
 
        landing_rev = 'tip'
 
        if db_repo:
 
            landing_rev = db_repo.landing_rev
 
        return landing_rev
 

	
 
    def _get_index_changeset(self, repo):
 
        index_rev = self._get_index_revision(repo)
 
        cs = repo.get_changeset(index_rev)
 
        return cs
 

	
 
    def get_paths(self, repo):
 
        """
 
        recursive walk in root dir and return a set of all path in that dir
 
@@ -116,8 +129,8 @@ class WhooshIndexingDaemon(object):
 
        """
 
        index_paths_ = set()
 
        try:
 
            tip = repo.get_changeset('tip')
 
            for _topnode, _dirs, files in tip.walk('/'):
 
            cs = self._get_index_changeset(repo)
 
            for _topnode, _dirs, files in cs.walk('/'):
 
                for f in files:
 
                    index_paths_.add(jn(safe_str(repo.path), safe_str(f.path)))
 

	
 
@@ -128,7 +141,8 @@ class WhooshIndexingDaemon(object):
 

	
 
    def get_node(self, repo, path):
 
        n_path = path[len(repo.path) + 1:]
 
        node = repo.get_changeset().get_node(n_path)
 
        cs = self._get_index_changeset(repo)
 
        node = cs.get_node(n_path)
 
        return node
 

	
 
    def get_node_mtime(self, node):
 
@@ -222,7 +236,8 @@ class WhooshIndexingDaemon(object):
 
        :param repo: instance of vcs repo
 
        """
 
        i_cnt = iwc_cnt = 0
 
        log.debug('building index for [%s]' % repo.path)
 
        log.debug('building index for %s @revision:%s' % (repo.path,
 
                                                self._get_index_revision(repo)))
 
        for idx_path in self.get_paths(repo):
 
            i, iwc = self.add_doc(file_idx_writer, idx_path, repo, repo_name)
 
            i_cnt += i
 
@@ -284,7 +299,6 @@ class WhooshIndexingDaemon(object):
 
                    writer.commit(merge=True)
 
                    log.debug('>>> FINISHED REBUILDING CHANGESET INDEX <<<')
 
                else:
 
                    writer.cancel
 
                    log.debug('>> NOTHING TO COMMIT TO CHANGESET INDEX<<')
 

	
 
    def update_file_index(self):
0 comments (0 inline, 0 general)