11
11
from paste import httpexceptions
13
13
from loggerhead.apps import static_app
14
from loggerhead.controllers.annotate_ui import AnnotateUI
15
from loggerhead.controllers.atom_ui import AtomUI
14
16
from loggerhead.controllers.changelog_ui import ChangeLogUI
17
from loggerhead.controllers.diff_ui import DiffUI
18
from loggerhead.controllers.download_ui import DownloadUI
19
from loggerhead.controllers.filediff_ui import FileDiffUI
15
20
from loggerhead.controllers.inventory_ui import InventoryUI
16
from loggerhead.controllers.annotate_ui import AnnotateUI
17
21
from loggerhead.controllers.revision_ui import RevisionUI
18
from loggerhead.controllers.atom_ui import AtomUI
19
from loggerhead.controllers.download_ui import DownloadUI
22
from loggerhead.controllers.revlog_ui import RevLogUI
20
23
from loggerhead.controllers.search_ui import SearchUI
21
from loggerhead.controllers.diff_ui import DiffUI
22
24
from loggerhead.history import History
23
25
from loggerhead import util
26
30
class BranchWSGIApp(object):
28
32
def __init__(self, branch, friendly_name=None, config={},
29
graph_cache=None, branch_link=None, is_root=False):
33
graph_cache=None, branch_link=None, is_root=False,
30
35
self.branch = branch
31
36
self._config = config
32
37
self.friendly_name = friendly_name
36
41
graph_cache = bzrlib.lru_cache.LRUCache()
37
42
self.graph_cache = graph_cache
38
43
self.is_root = is_root
44
self.served_url = served_url
40
46
def get_history(self):
41
47
_history = History(self.branch, self.graph_cache)
70
76
kw = util.get_context(**kw)
71
77
return self.url(*args, **kw)
75
"""The URL that you can fetch this branch from."""
78
79
def static_url(self, path):
79
80
return self._static_url_base + path
81
82
controllers_dict = {
83
'+filediff': FileDiffUI,
82
85
'annotate': AnnotateUI,
83
87
'changes': ChangeLogUI,
89
'download': DownloadUI,
84
90
'files': InventoryUI,
85
91
'revision': RevisionUI,
86
'download': DownloadUI,
88
92
'search': SearchUI,
92
95
def last_updated(self):
103
106
if self._static_url_base is None:
104
107
self._static_url_base = self._url_base
105
108
self._environ = environ
109
if self.served_url is _DEFAULT:
110
self.served_url = self.url([])
106
111
path = request.path_info_pop(environ)
108
113
raise httpexceptions.HTTPMovedPermanently(