##// END OF EJS Templates
compare: add options for ignore whitespace and increase context
Mads Kiilerich -
r4309:60ae17de default
parent child Browse files
Show More
@@ -45,7 +45,8 b' from kallithea.lib.auth import LoginRequ'
45 from kallithea.lib import diffs
45 from kallithea.lib import diffs
46 from kallithea.model.db import Repository
46 from kallithea.model.db import Repository
47 from kallithea.lib.diffs import LimitedDiffContainer
47 from kallithea.lib.diffs import LimitedDiffContainer
48
48 from kallithea.controllers.changeset import anchor_url, _ignorews_url,\
49 _context_url, get_line_ctx, get_ignore_ws
49
50
50 log = logging.getLogger(__name__)
51 log = logging.getLogger(__name__)
51
52
@@ -225,6 +226,12 b' class CompareController(BaseRepoControll'
225 other_ref_type=org_ref_type, other_ref_name=org_ref_name,
226 other_ref_type=org_ref_type, other_ref_name=org_ref_name,
226 merge=merge or '')
227 merge=merge or '')
227
228
229 # set callbacks for generating markup for icons
230 c.ignorews_url = _ignorews_url
231 c.context_url = _context_url
232 ignore_whitespace = request.GET.get('ignorews') == '1'
233 line_context = request.GET.get('context', 3)
234
228 org_repo = Repository.get_by_repo_name(org_repo)
235 org_repo = Repository.get_by_repo_name(org_repo)
229 other_repo = Repository.get_by_repo_name(other_repo)
236 other_repo = Repository.get_by_repo_name(other_repo)
230
237
@@ -285,7 +292,9 b' class CompareController(BaseRepoControll'
285
292
286 log.debug('running diff between %s and %s in %s'
293 log.debug('running diff between %s and %s in %s'
287 % (rev1, c.other_rev, org_repo.scm_instance.path))
294 % (rev1, c.other_rev, org_repo.scm_instance.path))
288 txtdiff = org_repo.scm_instance.get_diff(rev1=rev1, rev2=c.other_rev)
295 txtdiff = org_repo.scm_instance.get_diff(rev1=rev1, rev2=c.other_rev,
296 ignore_whitespace=ignore_whitespace,
297 context=line_context)
289
298
290 diff_processor = diffs.DiffProcessor(txtdiff or '', format='gitdiff',
299 diff_processor = diffs.DiffProcessor(txtdiff or '', format='gitdiff',
291 diff_limit=diff_limit)
300 diff_limit=diff_limit)
@@ -57,6 +57,8 b' from kallithea.model.comment import Chan'
57 from kallithea.model.changeset_status import ChangesetStatusModel
57 from kallithea.model.changeset_status import ChangesetStatusModel
58 from kallithea.model.forms import PullRequestForm
58 from kallithea.model.forms import PullRequestForm
59 from kallithea.lib.utils2 import safe_int
59 from kallithea.lib.utils2 import safe_int
60 from kallithea.controllers.changeset import anchor_url, _ignorews_url,\
61 _context_url, get_line_ctx, get_ignore_ws
60
62
61 log = logging.getLogger(__name__)
63 log = logging.getLogger(__name__)
62
64
@@ -194,13 +196,19 b' class PullrequestsController(BaseRepoCon'
194
196
195 c.statuses = c.org_repo.statuses([x.raw_id for x in c.cs_ranges])
197 c.statuses = c.org_repo.statuses([x.raw_id for x in c.cs_ranges])
196
198
199 ignore_whitespace = request.GET.get('ignorews') == '1'
200 line_context = request.GET.get('context', 3)
201 c.ignorews_url = _ignorews_url
202 c.context_url = _context_url
197 c.fulldiff = request.GET.get('fulldiff')
203 c.fulldiff = request.GET.get('fulldiff')
198 diff_limit = self.cut_off_limit if not c.fulldiff else None
204 diff_limit = self.cut_off_limit if not c.fulldiff else None
199
205
200 # we swap org/other ref since we run a simple diff on one repo
206 # we swap org/other ref since we run a simple diff on one repo
201 log.debug('running diff between %s and %s in %s'
207 log.debug('running diff between %s and %s in %s'
202 % (c.other_rev, c.org_rev, c.org_repo.scm_instance.path))
208 % (c.other_rev, c.org_rev, c.org_repo.scm_instance.path))
203 txtdiff = c.org_repo.scm_instance.get_diff(rev1=safe_str(c.other_rev), rev2=safe_str(c.org_rev))
209 txtdiff = c.org_repo.scm_instance.get_diff(rev1=safe_str(c.other_rev), rev2=safe_str(c.org_rev),
210 ignore_whitespace=ignore_whitespace,
211 context=line_context)
204
212
205 diff_processor = diffs.DiffProcessor(txtdiff or '', format='gitdiff',
213 diff_processor = diffs.DiffProcessor(txtdiff or '', format='gitdiff',
206 diff_limit=diff_limit)
214 diff_limit=diff_limit)
@@ -74,13 +74,15 b''
74 ${op}???
74 ${op}???
75 %endif
75 %endif
76 </div>
76 </div>
77 <div class="diff-actions">
77 <div class="diff-actions">
78 %if c.other_repo.repo_name == c.repo_name:
78 %if c.other_repo.repo_name == c.repo_name:
79 <a href="${h.url('files_diff_2way_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode_path),diff2=c.other_rev,diff1=c.org_rev,diff='diff',fulldiff=1)}" class="tooltip" title="${h.tooltip(_('Show full side-by-side diff for this file'))}">
79 <a href="${h.url('files_diff_2way_home',repo_name=c.repo_name,f_path=h.safe_unicode(filenode_path),diff2=c.other_rev,diff1=c.org_rev,diff='diff',fulldiff=1)}" class="tooltip" title="${h.tooltip(_('Show full side-by-side diff for this file'))}">
80 <img class="icon" src="${h.url('/images/icons/application_double.png')}"/>
80 <img class="icon" src="${h.url('/images/icons/application_double.png')}"/>
81 </a>
81 </a>
82 %endif
82 %endif
83 </div>
83 ${c.ignorews_url(request.GET)}
84 ${c.context_url(request.GET)}
85 </div>
84 </div>
86 </div>
85 </div>
87 </div>
86 <div class="code-body">
88 <div class="code-body">
@@ -59,6 +59,9 b''
59 ${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.files)) % (len(c.files),c.lines_added,c.lines_deleted)}:
59 ${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.files)) % (len(c.files),c.lines_added,c.lines_deleted)}:
60 %endif
60 %endif
61
61
62 ${c.ignorews_url(request.GET)}
63 ${c.context_url(request.GET)}
64
62 </div>
65 </div>
63 <div class="cs_files">
66 <div class="cs_files">
64 %if not c.files:
67 %if not c.files:
@@ -155,8 +155,10 b''
155 <div style="overflow: auto; clear: both">
155 <div style="overflow: auto; clear: both">
156 ##DIFF
156 ##DIFF
157 <div class="table" style="float:left;clear:none">
157 <div class="table" style="float:left;clear:none">
158 <div id="body" class="diffblock">
158 <div class="diffblock">
159 <div style="white-space:pre-wrap;padding:5px">${_('Compare view')}</div>
159 <div style="padding:5px">
160 ${_('Compare view')}
161 </div>
160 </div>
162 </div>
161 <div id="changeset_compare_view_content">
163 <div id="changeset_compare_view_content">
162 ##CS
164 ##CS
General Comments 0
You need to be logged in to leave comments. Login now