|
246
by Martin Albisetti
* Start integration with bzr-search |
1 |
import sets |
2 |
import os |
|
3 |
from configobj import ConfigObj |
|
4 |
from bzrlib.plugins.search import errors |
|
5 |
from bzrlib.plugins.search import index as _mod_index |
|
6 |
from bzrlib.plugins.search.index import FileTextHit, RevisionHit |
|
7 |
from bzrlib.transport import get_transport |
|
8 |
from bzrlib.plugin import load_plugins |
|
9 |
load_plugins() |
|
10 |
||
11 |
def search_revisions(query_list=[]): |
|
12 |
#This is terribly stupid, you should pass on the location of the branch
|
|
13 |
absfolder = '/home/beuno/bzr_devel/bzr.garbage' |
|
14 |
trans = get_transport(absfolder) |
|
15 |
index = _mod_index.open_index_url(trans.base) |
|
16 |
query = [(query_item,) for query_item in query_list] |
|
17 |
revid_list = [] |
|
18 |
for result in index.search(query): |
|
19 |
if isinstance(result, FileTextHit): |
|
20 |
revid_list.append(result.text_key[1]) |
|
21 |
elif isinstance(result, RevisionHit): |
|
22 |
revid_list.append(result.revision_key) |
|
23 |
||
24 |
if len(revid_list) == 0: |
|
25 |
raise errors.NoMatch(query_listo) |
|
26 |
||
27 |
return list(sets.Set(revid_list)) |