annotate rhodecode/controllers/compare.py @ 2854:d998cc84cf72 rhodecode-0.0.1.4.2

Merge branch beta into stable
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 19 Sep 2012 22:38:12 +0200
parents 1cd0a0c05f42
children 5fba3778431c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2241
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
2 """
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
3 rhodecode.controllers.compare
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
5
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
6 compare controller for pylons showoing differences between two
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
7 repos, branches, bookmarks or tips
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
8
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
9 :created_on: May 6, 2012
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
10 :author: marcink
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
11 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com>
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
12 :license: GPLv3, see COPYING for more details.
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
13 """
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
14 # This program is free software: you can redistribute it and/or modify
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
15 # it under the terms of the GNU General Public License as published by
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
16 # the Free Software Foundation, either version 3 of the License, or
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
17 # (at your option) any later version.
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
18 #
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
19 # This program is distributed in the hope that it will be useful,
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
22 # GNU General Public License for more details.
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
23 #
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
24 # You should have received a copy of the GNU General Public License
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
25 # along with this program. If not, see <http://www.gnu.org/licenses/>.
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
26 import logging
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
27 import traceback
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
28
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
29 from webob.exc import HTTPNotFound
2241
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
30 from pylons import request, response, session, tmpl_context as c, url
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
31 from pylons.controllers.util import abort, redirect
2593
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
32 from pylons.i18n.translation import _
2241
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
33
2593
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
34 from rhodecode.lib.vcs.exceptions import EmptyRepositoryError, RepositoryError
2348
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
35 from rhodecode.lib import helpers as h
2241
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
36 from rhodecode.lib.base import BaseRepoController, render
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
37 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
38 from rhodecode.lib import diffs
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
39
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
40 from rhodecode.model.db import Repository
2442
3bf057a7f7e8 small refactoring, moved shared for diff generation of code into pull-request model
Marcin Kuzminski <marcin@python-works.com>
parents: 2434
diff changeset
41 from rhodecode.model.pull_request import PullRequestModel
2847
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
42 from webob.exc import HTTPBadRequest
2241
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
43
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
44 log = logging.getLogger(__name__)
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
45
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
46
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
47 class CompareController(BaseRepoController):
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
48
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
49 @LoginRequired()
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
50 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
51 'repository.admin')
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
52 def __before__(self):
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
53 super(CompareController, self).__before__()
b2a2868d7bec Basic compare-view controller with ref parsing
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
54
2847
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
55 def __get_cs_or_redirect(self, rev, repo, redirect_after=True,
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
56 partial=False):
2593
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
57 """
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
58 Safe way to get changeset if error occur it redirects to changeset with
2847
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
59 proper message. If partial is set then don't do redirect raise Exception
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
60 instead
2593
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
61
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
62 :param rev: revision to fetch
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
63 :param repo: repo instance
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
64 """
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
65
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
66 try:
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
67 type_, rev = rev
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
68 return repo.scm_instance.get_changeset(rev)
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
69 except EmptyRepositoryError, e:
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
70 if not redirect_after:
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
71 return None
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
72 h.flash(h.literal(_('There are no changesets yet')),
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
73 category='warning')
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
74 redirect(url('summary_home', repo_name=repo.repo_name))
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
75
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
76 except RepositoryError, e:
2684
2b6939a77052 Bumped mercurial version to 2.3
Marcin Kuzminski <marcin@python-works.com>
parents: 2593
diff changeset
77 log.error(traceback.format_exc())
2593
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
78 h.flash(str(e), category='warning')
2847
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
79 if not partial:
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
80 redirect(h.url('summary_home', repo_name=repo.repo_name))
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
81 raise HTTPBadRequest()
2593
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
82
2363
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
83 def index(self, org_ref_type, org_ref, other_ref_type, other_ref):
2362
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
84
2363
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
85 org_repo = c.rhodecode_db_repo.repo_name
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
86 org_ref = (org_ref_type, org_ref)
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
87 other_ref = (other_ref_type, other_ref)
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
88 other_repo = request.GET.get('repo', org_repo)
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
89
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
90 c.swap_url = h.url('compare_url', repo_name=other_repo,
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
91 org_ref_type=other_ref[0], org_ref=other_ref[1],
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
92 other_ref_type=org_ref[0], other_ref=org_ref[1],
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
93 repo=org_repo)
745dda7817ed Rewrote url routes to make all validations and parsing for compare view + added compare fork button into forked repos
Marcin Kuzminski <marcin@python-works.com>
parents: 2362
diff changeset
94
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
95 c.org_repo = org_repo = Repository.get_by_repo_name(org_repo)
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
96 c.other_repo = other_repo = Repository.get_by_repo_name(other_repo)
2362
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
97
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
98 if c.org_repo is None or c.other_repo is None:
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
99 log.error('Could not found repo %s or %s' % (org_repo, other_repo))
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
100 raise HTTPNotFound
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
101
2444
b45e9fd75ac0 data checks
Marcin Kuzminski <marcin@python-works.com>
parents: 2442
diff changeset
102 if c.org_repo.scm_instance.alias != 'hg':
b45e9fd75ac0 data checks
Marcin Kuzminski <marcin@python-works.com>
parents: 2442
diff changeset
103 log.error('Review not available for GIT REPOS')
b45e9fd75ac0 data checks
Marcin Kuzminski <marcin@python-works.com>
parents: 2442
diff changeset
104 raise HTTPNotFound
2847
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
105 partial = request.environ.get('HTTP_X_PARTIAL_XHR')
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
106 self.__get_cs_or_redirect(rev=org_ref, repo=org_repo, partial=partial)
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
107 self.__get_cs_or_redirect(rev=other_ref, repo=other_repo, partial=partial)
2593
16a6a2f5d422 Add check for existing revisions in compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2487
diff changeset
108
2442
3bf057a7f7e8 small refactoring, moved shared for diff generation of code into pull-request model
Marcin Kuzminski <marcin@python-works.com>
parents: 2434
diff changeset
109 c.cs_ranges, discovery_data = PullRequestModel().get_compare_data(
3bf057a7f7e8 small refactoring, moved shared for diff generation of code into pull-request model
Marcin Kuzminski <marcin@python-works.com>
parents: 2434
diff changeset
110 org_repo, org_ref, other_repo, other_ref
3bf057a7f7e8 small refactoring, moved shared for diff generation of code into pull-request model
Marcin Kuzminski <marcin@python-works.com>
parents: 2434
diff changeset
111 )
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
112
2393
b94eac50ec4d added changeset review status into repo/branch compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2363
diff changeset
113 c.statuses = c.rhodecode_db_repo.statuses([x.raw_id for x in
b94eac50ec4d added changeset review status into repo/branch compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2363
diff changeset
114 c.cs_ranges])
2487
995d938ce14b Fixed origin repo in pull-request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2444
diff changeset
115 c.target_repo = c.repo_name
2434
f29469677319 Added basic models for saving open pull requests
Marcin Kuzminski <marcin@python-works.com>
parents: 2395
diff changeset
116 # defines that we need hidden inputs with changesets
f29469677319 Added basic models for saving open pull requests
Marcin Kuzminski <marcin@python-works.com>
parents: 2395
diff changeset
117 c.as_form = request.GET.get('as_form', False)
2847
1cd0a0c05f42 swap the select values with revisions dynamically when switching the repos on pull request view
Marcin Kuzminski <marcin@python-works.com>
parents: 2684
diff changeset
118 if partial:
2395
b262e349a7a5 created pull-request overview
Marcin Kuzminski <marcin@python-works.com>
parents: 2393
diff changeset
119 return render('compare/compare_cs.html')
2393
b94eac50ec4d added changeset review status into repo/branch compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2363
diff changeset
120
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
121 c.org_ref = org_ref[1]
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
122 c.other_ref = other_ref[1]
2350
d787da66c292 Changed compare-view of remote repos to use incoming option instead of outgoing.
Marcin Kuzminski <marcin@python-works.com>
parents: 2348
diff changeset
123 # diff needs to have swapped org with other to generate proper diff
2362
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
124 _diff = diffs.differ(other_repo, other_ref, org_repo, org_ref,
3c4afb8894bd Improved cross repos diffs
Marcin Kuzminski <marcin@python-works.com>
parents: 2355
diff changeset
125 discovery_data)
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
126 diff_processor = diffs.DiffProcessor(_diff, format='gitdiff')
2348
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
127 _parsed = diff_processor.prepare()
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
128
2348
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
129 c.files = []
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
130 c.changes = {}
2393
b94eac50ec4d added changeset review status into repo/branch compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2363
diff changeset
131
b94eac50ec4d added changeset review status into repo/branch compare view
Marcin Kuzminski <marcin@python-works.com>
parents: 2363
diff changeset
132 for f in _parsed:
2348
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
133 fid = h.FID('', f['filename'])
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
134 c.files.append([fid, f['operation'], f['filename'], f['stats']])
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
135 diff = diff_processor.as_html(enable_comments=False, diff_lines=[f])
a07e04ef7bb4 Implemented basic compare view(for pull requests) for mercurial.
Marcin Kuzminski <marcin@python-works.com>
parents: 2337
diff changeset
136 c.changes[fid] = [f['operation'], f['filename'], diff]
2337
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
137
f8c953c6b040 Created base for diffing two repositories inside rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 2245
diff changeset
138 return render('compare/compare_diff.html')