@@ -10,16 +10,20 @@ Changelog
:branch: beta
news
++++
- implemented #91 added nicer looking archive urls
- implemented #44 into file browsing, and added follow branch option
fixes
- fixed file browser bug, when switching into given form revision the url was
not changing
- fixed #92
1.1.0 (**2010-12-18**)
----------------------
#!/usr/bin/env python
# encoding: utf-8
# whoosh indexer daemon for rhodecode
# Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
#
# -*- coding: utf-8 -*-
"""
rhodecode.lib.indexers.daemon
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A deamon will read from task table and run tasks
:created_on: Jan 26, 2010
:author: marcink
:copyright: (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
:license: GPLv3, see COPYING for more details.
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2
# of the License or (at your opinion) any later version of the license.
# This program is distributed in the hope that it will be useful,
@@ -14,20 +21,16 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
Created on Jan 26, 2010
@author: marcink
import sys
import os
import traceback
from os.path import dirname as dn
from os.path import join as jn
#to get the rhodecode import
project_path = dn(dn(dn(dn(os.path.realpath(__file__)))))
sys.path.append(project_path)
@@ -96,13 +99,14 @@ class WhooshIndexingDaemon(object):
for f in files:
index_paths_.add(jn(repo.path, f.path))
for dir in dirs:
except RepositoryError:
except RepositoryError, e:
log.debug(traceback.format_exc())
pass
return index_paths_
def get_node(self, repo, path):
n_path = path[len(repo.path) + 1:]
node = repo.get_changeset().get_node(n_path)
@@ -115,14 +119,21 @@ class WhooshIndexingDaemon(object):
"""Adding doc to writer this function itself fetches data from
the instance of vcs backend"""
node = self.get_node(repo, path)
#we just index the content of chosen files
if node.extension in INDEX_EXTENSIONS:
log.debug(' >> %s [WITH CONTENT]' % path)
u_content = node.content
if not isinstance(u_content, unicode):
log.warning(' >> %s Could not get this content as unicode '
'replacing with empty content', path)
u_content = u''
else:
log.debug(' >> %s' % path)
#just index file name without it's content
writer.add_document(owner=unicode(repo.contact),
@@ -140,13 +151,13 @@ class WhooshIndexingDaemon(object):
if not os.path.exists(self.index_location):
os.mkdir(self.index_location)
idx = create_in(self.index_location, SCHEMA, indexname=IDX_NAME)
writer = idx.writer()
print self.repo_paths.values()
for cnt, repo in enumerate(self.repo_paths.values()):
log.debug('building index @ %s' % repo.path)
for idx_path in self.get_paths(repo):
self.add_doc(writer, idx_path, repo)
Status change: