comparison mercurial/hgweb/webcommands.py @ 8352:eefcb59d44d6

webcommands: add 'branches' command, similar to 'tags'
author Sune Foldager <cryo@cyanite.org>
date Tue, 12 May 2009 09:43:36 +0200
parents 9f53e203a09b
children 418ea63f00fb
comparison
equal deleted inserted replaced
8351:f28c2f8b9969 8352:eefcb59d44d6
17 # __all__ is populated with the allowed commands. Be sure to add to it if 17 # __all__ is populated with the allowed commands. Be sure to add to it if
18 # you're adding a new command, or the new command won't work. 18 # you're adding a new command, or the new command won't work.
19 19
20 __all__ = [ 20 __all__ = [
21 'log', 'rawfile', 'file', 'changelog', 'shortlog', 'changeset', 'rev', 21 'log', 'rawfile', 'file', 'changelog', 'shortlog', 'changeset', 'rev',
22 'manifest', 'tags', 'summary', 'filediff', 'diff', 'annotate', 'filelog', 22 'manifest', 'tags', 'branches', 'summary', 'filediff', 'diff', 'annotate',
23 'archive', 'static', 'graph', 23 'filelog', 'archive', 'static', 'graph',
24 ] 24 ]
25 25
26 def log(web, req, tmpl): 26 def log(web, req, tmpl):
27 if 'file' in req.form and req.form['file'][0]: 27 if 'file' in req.form and req.form['file'][0]:
28 return filelog(web, req, tmpl) 28 return filelog(web, req, tmpl)
356 node=hex(web.repo.changelog.tip()), 356 node=hex(web.repo.changelog.tip()),
357 entries=lambda **x: entries(False,0, **x), 357 entries=lambda **x: entries(False,0, **x),
358 entriesnotip=lambda **x: entries(True,0, **x), 358 entriesnotip=lambda **x: entries(True,0, **x),
359 latestentry=lambda **x: entries(True,1, **x)) 359 latestentry=lambda **x: entries(True,1, **x))
360 360
361 def branches(web, req, tmpl):
362 b = web.repo.branchtags()
363 l = [(-web.repo.changelog.rev(n), n, t) for t, n in b.iteritems()]
364 parity = paritygen(web.stripecount)
365
366 def entries(limit, **map):
367 count = 0
368 for r, n, t in sorted(l):
369 if limit > 0 and count >= limit:
370 return
371 count += 1
372 yield {'parity': parity.next(),
373 'branch': t,
374 'node': hex(n),
375 'date': web.repo[n].date()}
376
377 return tmpl('branches', node=hex(web.repo.changelog.tip()),
378 entries=lambda **x: entries(0, **x),
379 latestentry=lambda **x: entries(1, **x))
380
361 def summary(web, req, tmpl): 381 def summary(web, req, tmpl):
362 i = web.repo.tagslist() 382 i = web.repo.tagslist()
363 i.reverse() 383 i.reverse()
364 384
365 def tagentries(**map): 385 def tagentries(**map):