Mercurial > public > src > rhodecode
diff pylons_app/controllers/changeset.py @ 218:58b46f9194c3 v0.7.4
version bump. Made changesets work as should, but vcs had to be fixed for that.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 25 May 2010 00:32:18 +0200 |
parents | 50a39f923f31 |
children | a83a1799480c |
line wrap: on
line diff
--- a/pylons_app/controllers/changeset.py Mon May 24 22:25:08 2010 +0200 +++ b/pylons_app/controllers/changeset.py Tue May 25 00:32:18 2010 +0200 @@ -3,9 +3,10 @@ from pylons.controllers.util import abort, redirect from pylons_app.lib.auth import LoginRequired from pylons_app.lib.base import BaseController, render -from pylons_app.lib.utils import get_repo_slug 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__) @@ -19,5 +20,23 @@ 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')