Mercurial > public > src > rhodecode
comparison pylons_app/controllers/files.py @ 158:f905f45c457e
moved diff libs to vcs. updated htmls and css for diff and source
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 17 May 2010 01:51:47 +0200 |
parents | 0c00fbaff55a |
children | 0f7f93df5802 |
comparison
equal
deleted
inserted
replaced
157:a72fb7d330bd | 158:f905f45c457e |
---|---|
4 from pylons.controllers.util import abort, redirect | 4 from pylons.controllers.util import abort, redirect |
5 | 5 |
6 from pylons_app.lib.base import BaseController, render | 6 from pylons_app.lib.base import BaseController, render |
7 from pylons_app.lib.utils import get_repo_slug | 7 from pylons_app.lib.utils import get_repo_slug |
8 from pylons_app.model.hg_model import HgModel | 8 from pylons_app.model.hg_model import HgModel |
9 from difflib import unified_diff | 9 from vcs.utils import diffs as differ |
10 from pylons_app.lib.differ import render_udiff | |
11 from vcs.exceptions import RepositoryError, ChangesetError | 10 from vcs.exceptions import RepositoryError, ChangesetError |
12 | 11 |
13 log = logging.getLogger(__name__) | 12 log = logging.getLogger(__name__) |
14 | 13 |
15 class FilesController(BaseController): | 14 class FilesController(BaseController): |
81 c.no_changes = diff1 == diff2 | 80 c.no_changes = diff1 == diff2 |
82 c.f_path = f_path | 81 c.f_path = f_path |
83 c.repo = hg_model.get_repo(c.repo_name) | 82 c.repo = hg_model.get_repo(c.repo_name) |
84 c.changeset_1 = c.repo.get_changeset(diff1) | 83 c.changeset_1 = c.repo.get_changeset(diff1) |
85 c.changeset_2 = c.repo.get_changeset(diff2) | 84 c.changeset_2 = c.repo.get_changeset(diff2) |
86 f1 = c.changeset_1.get_node(f_path) | |
87 f2 = c.changeset_2.get_node(f_path) | |
88 | 85 |
89 c.diff1 = 'r%s:%s' % (c.changeset_1.revision, c.changeset_1._short) | 86 c.diff1 = 'r%s:%s' % (c.changeset_1.revision, c.changeset_1._short) |
90 c.diff2 = 'r%s:%s' % (c.changeset_2.revision, c.changeset_2._short) | 87 c.diff2 = 'r%s:%s' % (c.changeset_2.revision, c.changeset_2._short) |
91 | |
92 f_udiff = unified_diff(f1.content.splitlines(True), | |
93 f2.content.splitlines(True), | |
94 f1.name, | |
95 f2.name) | |
96 | 88 |
97 c.diff_files = render_udiff(udiff=f_udiff, differ='difflib') | 89 |
98 print c.diff_files | 90 f_udiff = differ.get_udiff(c.changeset_1.get_node(f_path), |
99 if len(c.diff_files) < 1: | 91 c.changeset_2.get_node(f_path)) |
100 c.no_changes = True | 92 c.differ = differ.DiffProcessor(f_udiff) |
101 return render('files/file_diff.html') | 93 return render('files/file_diff.html') |
102 | 94 |
103 def _get_history(self, repo, node, f_path): | 95 def _get_history(self, repo, node, f_path): |
104 from vcs.nodes import NodeKind | 96 from vcs.nodes import NodeKind |
105 if not node.kind is NodeKind.FILE: | 97 if not node.kind is NodeKind.FILE: |