~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/controllers/annotate_ui.py

  • Committer: Michael Hudson
  • Date: 2007-12-12 08:36:51 UTC
  • mto: This revision was merged to the branch mainline in revision 143.
  • Revision ID: michael.hudson@canonical.com-20071212083651-oyh34swjxbzceyi1
add a comment for spiv

Show diffs side-by-side

added added

removed removed

Lines of Context:
52
52
        z = time.time()
53
53
        h = self._branch.get_history()
54
54
        util.set_context(kw)
55
 
        
56
 
        if len(args) > 0:
57
 
            revid = h.fix_revid(args[0])
58
 
        else:
59
 
            revid = None
60
 
        path = None
61
 
        if len(args) > 1:
62
 
            path = '/'.join(args[1:])
63
 
            if not path.startswith('/'):
64
 
                path = '/' + path
65
 
        
66
 
        file_id = kw.get('file_id', None)
67
 
        if (file_id is None) and (path is None):
68
 
            raise HTTPError(400, 'No file_id or filename provided to annotate')
69
 
 
70
 
        if file_id is None:
71
 
            file_id = h.get_file_id(revid, path)
72
 
 
 
55
 
 
56
        h._branch.lock_read()
73
57
        try:
74
 
            revid_list, revid = h.get_file_view(revid, file_id)
75
 
        except:
76
 
            self.log.exception('Exception fetching changes')
77
 
            raise InternalError('Could not fetch changes')
78
 
            
79
 
        # no navbar for revisions
80
 
        navigation = util.Container()
81
 
        
82
 
        if path is None:
83
 
            path = h.get_path(revid, file_id)
84
 
        filename = os.path.basename(path)
85
 
 
86
 
        vals = {
87
 
            'branch': self._branch,
88
 
            'util': util,
89
 
            'revid': revid,
90
 
            'file_id': file_id,
91
 
            'path': path,
92
 
            'filename': filename,
93
 
            'history': h,
94
 
            'navigation': navigation,
95
 
            'change': h.get_changes([ revid ])[0],
96
 
            'contents': list(h.annotate_file(file_id, revid)),
97
 
        }
98
 
        h.flush_cache()
99
 
        self.log.info('/annotate: %r secs' % (time.time() - z,))
100
 
        return vals
 
58
            if len(args) > 0:
 
59
                revid = h.fix_revid(args[0])
 
60
            else:
 
61
                revid = h.last_revid
 
62
 
 
63
            path = None
 
64
            if len(args) > 1:
 
65
                path = '/'.join(args[1:])
 
66
                if not path.startswith('/'):
 
67
                    path = '/' + path
 
68
 
 
69
            file_id = kw.get('file_id', None)
 
70
            if (file_id is None) and (path is None):
 
71
                raise HTTPError(400, 'No file_id or filename provided to annotate')
 
72
 
 
73
            if file_id is None:
 
74
                file_id = h.get_file_id(revid, path)
 
75
 
 
76
            # no navbar for revisions
 
77
            navigation = util.Container()
 
78
 
 
79
            if path is None:
 
80
                path = h.get_path(revid, file_id)
 
81
            filename = os.path.basename(path)
 
82
 
 
83
            vals = {
 
84
                'branch': self._branch,
 
85
                'util': util,
 
86
                'revid': revid,
 
87
                'file_id': file_id,
 
88
                'path': path,
 
89
                'filename': filename,
 
90
                'history': h,
 
91
                'navigation': navigation,
 
92
                'change': h.get_changes([ revid ])[0],
 
93
                'contents': list(h.annotate_file(file_id, revid)),
 
94
            }
 
95
            h.flush_cache()
 
96
            self.log.info('/annotate: %r secs' % (time.time() - z,))
 
97
            return vals
 
98
        finally:
 
99
            h._branch.unlock()