@@ -26,11 +26,12 @@
import logging
from pylons import tmpl_context as c
import binascii
from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
from rhodecode.lib.base import BaseRepoController, render
from rhodecode.lib.odict import OrderedDict
from rhodecode.lib import safe_unicode
log = logging.getLogger(__name__)
@@ -44,8 +45,34 @@ class BranchesController(BaseRepoControl
def index(self):
c.repo_branches = OrderedDict()
for name, hash_ in c.rhodecode_repo.branches.items():
c.repo_branches[name] = c.rhodecode_repo.get_changeset(hash_)
def _branchtags(localrepo):
bt = {}
bt_closed = {}
for bn, heads in localrepo.branchmap().iteritems():
tip = heads[-1]
if 'close' not in localrepo.changelog.read(tip)[5]:
bt[bn] = tip
else:
bt_closed[bn] = tip
return bt, bt_closed
bt, bt_closed = _branchtags(c.rhodecode_repo._repo)
cs_g = c.rhodecode_repo.get_changeset
_branches = [(safe_unicode(n), cs_g(binascii.hexlify(h)),) for n, h in
bt.items()]
_closed_branches = [(safe_unicode(n), cs_g(binascii.hexlify(h)),) for n, h in
bt_closed.items()]
c.repo_branches = OrderedDict(sorted(_branches,
key=lambda ctx: ctx[0],
reverse=False))
c.repo_closed_branches = OrderedDict(sorted(_closed_branches,
return render('branches/branches.html')
@@ -9,8 +9,7 @@
</tr>
%for cnt,branch in enumerate(c.repo_branches.items()):
<tr class="parity${cnt%2}">
<td><span class="tooltip" title="${h.age(branch[1].date)}">
${branch[1].date}</span>
<td><span class="tooltip" title="${h.age(branch[1].date)}">${branch[1].date}</span>
</td>
<td>
<span class="logtags">
@@ -27,8 +26,28 @@
%endfor
% if hasattr(c,'repo_closed_branches') and c.repo_closed_branches:
%for cnt,branch in enumerate(c.repo_closed_branches.items()):
<span class="branchtag">${h.link_to(branch[0]+' [closed]',
h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}</span>
</span>
<td title="${branch[1].author}">${h.person(branch[1].author)}</td>
<td>r${branch[1].revision}:${h.short_id(branch[1].raw_id)}</td>
<td class="nowrap">
${h.link_to(_('changeset'),h.url('changeset_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
|
${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name,revision=branch[1].raw_id))}
%endif
</table>
%else:
${_('There are no branches yet')}
\ No newline at end of file
Status change: