Files
@ a83a1799480c
Branch filter:
Location: kallithea/pylons_app/controllers/changeset.py - annotation
a83a1799480c
1.4 KiB
text/x-python
Reimplemented way of caching repos list, hg model now get's repos objects right from cached dict, this way we skipp creating instances of MercurialRepository and gain performance. Some import cleanup
a83a1799480c 50a39f923f31 665b344927f4 665b344927f4 58b46f9194c3 50a39f923f31 58b46f9194c3 50a39f923f31 50a39f923f31 665b344927f4 665b344927f4 665b344927f4 50a39f923f31 50a39f923f31 665b344927f4 50a39f923f31 665b344927f4 50a39f923f31 50a39f923f31 50a39f923f31 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 58b46f9194c3 50a39f923f31 | from pylons import tmpl_context as c
from pylons_app.lib.auth import LoginRequired
from pylons_app.lib.base import BaseController, render
from pylons_app.model.hg_model import HgModel
from vcs.utils import diffs as differ
import logging
from vcs.nodes import FileNode
log = logging.getLogger(__name__)
class ChangesetController(BaseController):
@LoginRequired()
def __before__(self):
super(ChangesetController, self).__before__()
def index(self, revision):
hg_model = HgModel()
c.changeset = hg_model.get_repo(c.repo_name).get_changeset(revision)
c.changeset_old = c.changeset.parents[0]
c.changes = []
for node in c.changeset.added:
filenode_old = FileNode(node.path, '')
f_udiff = differ.get_udiff(filenode_old, node)
diff = differ.DiffProcessor(f_udiff).as_html()
c.changes.append(('added', node, diff))
for node in c.changeset.changed:
filenode_old = c.changeset_old.get_node(node.path)
f_udiff = differ.get_udiff(filenode_old, node)
diff = differ.DiffProcessor(f_udiff).as_html()
c.changes.append(('changed', node, diff))
for node in c.changeset.removed:
c.changes.append(('removed', node, None))
return render('changeset/changeset.html')
|