~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/util.py

  • Committer: Robey Pointer
  • Date: 2006-12-14 03:00:10 UTC
  • Revision ID: robey@lag.net-20061214030010-amia4mec3ydygjgk
add a timed event to fill in the revision cache, so that after running for
a little while, most page loads should be fast.  fix up some of the mechanism
around the history cache, so that it notices when the branch has been
updated, and reloads (and recomputes) the graph cache.

add branch nicks to the merged-in, merged-from listings.

add next/prev navbar to the bottom of the revision page.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
#
18
18
 
19
19
import cgi
 
20
import datetime
 
21
import logging
20
22
import re
21
23
import sha
 
24
import threading
 
25
 
 
26
import turbogears
 
27
 
 
28
 
 
29
log = logging.getLogger("loggerhead.controllers")
22
30
 
23
31
 
24
32
def timespan(delta):
51
59
    return ', '.join(seg)
52
60
 
53
61
 
 
62
def ago(timestamp):
 
63
    now = datetime.datetime.now()
 
64
    return timespan(now - timestamp) + ' ago'
 
65
    
 
66
 
54
67
class Container (object):
55
68
    """
56
69
    Convert a dict into an object with attributes.
157
170
        return '-rwxr-xr-x'
158
171
    return '-rw-r--r--'
159
172
 
160
 
        
 
173
 
 
174
def if_present(format, value):
 
175
    """
 
176
    format a value using a format string, if the value exists and is not None.
 
177
    """
 
178
    if value is None:
 
179
        return ''
 
180
    return format % value
 
181
 
 
182
 
 
183
# global branch history & cache
 
184
 
 
185
_history = None
 
186
_history_lock = threading.Lock()
 
187
 
 
188
def get_history():
 
189
    global _history
 
190
    from loggerhead.history import History
 
191
    
 
192
    _history_lock.acquire()
 
193
    try:
 
194
        if (_history is None) or _history.out_of_date():
 
195
            log.debug('Reload branch history...')
 
196
            if _history is not None:
 
197
                _history.dont_use_cache()
 
198
            _history = History.from_folder(turbogears.config.get('loggerhead.folder'))
 
199
            _history.use_cache(turbogears.config.get('loggerhead.cachepath'))
 
200
        return _history
 
201
    finally:
 
202
        _history_lock.release()
 
203