/loggerhead/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/loggerhead/trunk

« back to all changes in this revision

Viewing changes to loggerhead/controllers/view_ui.py

  • Committer: William Grant
  • Date: 2012-02-09 03:25:36 UTC
  • mto: This revision was merged to the branch mainline in revision 468.
  • Revision ID: william.grant@canonical.com-20120209032536-x2gk84acqsfodaku
Fix more non-existent fileid or revid crashes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
#
19
19
 
20
20
import os
21
 
import time
22
21
 
23
 
import bzrlib.errors
 
22
from bzrlib.errors import (
 
23
    BinaryFile,
 
24
    NoSuchId,
 
25
    NoSuchRevision,
 
26
    )
24
27
import bzrlib.textfile
25
28
import bzrlib.osutils
26
29
 
76
79
    def file_contents(self, file_id, revid):
77
80
        try:
78
81
            file_lines = self.text_lines(file_id, revid)
79
 
        except bzrlib.errors.BinaryFile:
 
82
        except BinaryFile:
80
83
            # bail out; this isn't displayable text
81
84
            return ['(This is a binary file.)']
82
85
 
92
95
            raise HTTPBadRequest('No file_id or filename '
93
96
                                 'provided to view')
94
97
 
95
 
        if file_id is None:
96
 
            file_id = history.get_file_id(revid, path)
97
 
 
98
 
        # no navbar for revisions
99
 
        navigation = util.Container()
100
 
 
101
 
        if path is None:
102
 
            path = history.get_path(revid, file_id)
 
98
        try:
 
99
            if file_id is None:
 
100
                file_id = history.get_file_id(revid, path)
 
101
            if path is None:
 
102
                path = history.get_path(revid, file_id)
 
103
        except (NoSuchId, NoSuchRevision):
 
104
            raise HTTPNotFound()
 
105
 
103
106
        filename = os.path.basename(path)
104
107
 
105
 
        change = history.get_changes([ revid ])[0]
 
108
        change = history.get_changes([revid])[0]
106
109
        # If we're looking at the tip, use head: in the URL instead
107
110
        if revid == branch.last_revision():
108
111
            revno_url = 'head:'
126
129
 
127
130
        try:
128
131
            file = inv[file_id]
129
 
        except bzrlib.errors.NoSuchId:
 
132
        except NoSuchId:
130
133
            raise HTTPNotFound()
131
134
 
132
135
        if file.kind == "directory":
133
136
            raise HTTPMovedPermanently(self._branch.context_url(['/files', revno_url, path]))
134
137
 
 
138
        # no navbar for revisions
 
139
        navigation = util.Container()
 
140
 
135
141
        return {
136
142
            # In AnnotateUI, "annotated" is a dictionary mapping lines to changes.
137
143
            # We exploit the fact that bool({}) is False when checking whether