Ticket #2591: detect_big_changesets.2.patch
| File detect_big_changesets.2.patch, 4.2 KB (added by cboos, 3 years ago) |
|---|
-
trac/db_default.py
436 436 ('timeline', 'default_daysback', '30'), 437 437 ('timeline', 'changeset_show_files', '0'), 438 438 ('timeline', 'ticket_show_details', 'false'), 439 ('changeset', 'max_diff_files', '1000'), 440 ('changeset', 'max_diff_bytes', '100000'), 439 441 ('browser', 'hide_properties', 'svk:merge'), 440 442 ('wiki', 'ignore_missing_pages', 'false'), 441 443 ) -
trac/versioncontrol/web_ui/changeset.py
370 370 del changed_props[k] 371 371 return changed_props 372 372 373 def _estimate_changes(old_node, new_node): 374 old_size = old_node.get_content_length() 375 new_size = new_node.get_content_length() 376 return abs(old_size - new_size) 377 373 378 mimeview = Mimeview(self.env) 374 379 375 380 def _content_changes(old_node, new_node): … … 409 414 else: 410 415 return [] 411 416 417 max_diff_bytes = int(self.config.get('changeset', 'max_diff_bytes')) 418 max_diff_files = int(self.config.get('changeset', 'max_diff_files')) 419 diff_bytes = diff_files = 0 420 if max_diff_bytes or max_diff_files: 421 for old_node, new_node, kind, change in get_changes(): 422 if change == Changeset.EDIT and kind == Node.FILE: 423 diff_files += 1 424 diff_bytes += _estimate_changes(old_node, new_node) 425 show_diffs = (not max_diff_files or diff_files <= max_diff_files) and \ 426 (not max_diff_bytes or diff_bytes <= max_diff_bytes or \ 427 diff_files == 1) 428 412 429 idx = 0 413 430 for old_node, new_node, kind, change in get_changes(): 414 431 if change != Changeset.EDIT: … … 420 437 if props: 421 438 req.hdf['changeset.changes.%d.props' % idx] = props 422 439 show_entry = True 423 if kind == Node.FILE :440 if kind == Node.FILE and show_diffs: 424 441 diffs = _content_changes(old_node, new_node) 425 442 if diffs != []: 426 443 if diffs: 427 444 req.hdf['changeset.changes.%d.diff' % idx] = diffs 428 445 # elif None (means: manually compare to (previous)) 429 446 show_entry = True 430 if show_entry :447 if show_entry or not show_diffs: 431 448 info = _change_info(old_node, new_node, change) 449 if change == Changeset.EDIT and not show_diffs: 450 if chgset: 451 diff_href = self.env.href.changeset(new_node.rev, 452 new_node.path) 453 else: 454 diff_href = self.env.href.changeset( 455 new_node.created_rev, new_node.created_path, 456 old=old_node.created_rev, 457 old_path=old_node.created_path) 458 info['diff_href'] = diff_href 432 459 req.hdf['changeset.changes.%d' % idx] = info 433 460 idx += 1 # the sequence should be immutable 434 461 -
templates/changeset.cs
136 136 var:item.browser_href.old ?>" title="Show original file (rev. <?cs 137 137 var:item.rev.old ?>)"><?cs var:item.path.old ?></a>)</em></small><?cs 138 138 /if ?><?cs 139 if:$ndiffs + $nprops > #0 ?> 139 if:item.diff_href ?> 140 (<a href="<?cs var:item.diff_href ?>" title="Show differences">full diff</a>)<?cs 141 elif:$ndiffs + $nprops > #0 ?> 140 142 (<a href="#file<?cs var:name(item) ?>" title="Show differences"><?cs 141 143 if:$ndiffs > #0 ?><?cs var:ndiffs ?> diff<?cs if:$ndiffs > #1 ?>s<?cs /if ?><?cs 142 144 /if ?><?cs
