Mercurial > kallithea
diff rhodecode/controllers/changeset.py @ 1130:1cecc7db3106 beta
fixed some limits in changesets and changelogs
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 13 Mar 2011 13:38:07 +0100 |
parents | ce4287e3e3c9 |
children | 461f5acc7bbb |
line wrap: on
line diff
--- a/rhodecode/controllers/changeset.py Sun Mar 13 11:34:57 2011 +0100 +++ b/rhodecode/controllers/changeset.py Sun Mar 13 13:38:07 2011 +0100 @@ -52,6 +52,7 @@ 'repository.admin') def __before__(self): super(ChangesetController, self).__before__() + c.affected_files_cut_off = 60 def index(self, revision): @@ -66,7 +67,7 @@ #get ranges of revisions if preset rev_range = revision.split('...')[:2] - range_limit = 50 + try: if len(rev_range) == 2: rev_start = rev_range[0] @@ -86,7 +87,7 @@ c.changes = OrderedDict() c.sum_added = 0 c.sum_removed = 0 - + c.cut_off = False for changeset in c.cs_ranges: c.changes[changeset.raw_id] = [] @@ -112,6 +113,8 @@ else: diff = wrap_to_table(_('Changeset is to big and was cut' ' off, see raw changeset instead')) + c.cut_off = True + break cs1 = None cs2 = node.last_changeset.raw_id @@ -120,35 +123,38 @@ #================================================================== # CHANGED FILES #================================================================== - for node in changeset.changed: - try: - filenode_old = changeset_parent.get_node(node.path) - except ChangesetError: - filenode_old = FileNode(node.path, '', EmptyChangeset()) + if not c.cut_off: + for node in changeset.changed: + try: + filenode_old = changeset_parent.get_node(node.path) + except ChangesetError: + filenode_old = FileNode(node.path, '', EmptyChangeset()) - if filenode_old.is_binary or node.is_binary: - diff = wrap_to_table(_('binary file')) - else: + if filenode_old.is_binary or node.is_binary: + diff = wrap_to_table(_('binary file')) + else: - if c.sum_removed < self.cut_off_limit: - f_gitdiff = differ.get_gitdiff(filenode_old, node) - diff = differ.DiffProcessor(f_gitdiff, format='gitdiff').as_html() - if diff: - c.sum_removed += len(diff) - else: - diff = wrap_to_table(_('Changeset is to big and was cut' - ' off, see raw changeset instead')) + if c.sum_removed < self.cut_off_limit: + f_gitdiff = differ.get_gitdiff(filenode_old, node) + diff = differ.DiffProcessor(f_gitdiff, format='gitdiff').as_html() + if diff: + c.sum_removed += len(diff) + else: + diff = wrap_to_table(_('Changeset is to big and was cut' + ' off, see raw changeset instead')) + c.cut_off = True + break - - cs1 = filenode_old.last_changeset.raw_id - cs2 = node.last_changeset.raw_id - c.changes[changeset.raw_id].append(('changed', node, diff, cs1, cs2)) + cs1 = filenode_old.last_changeset.raw_id + cs2 = node.last_changeset.raw_id + c.changes[changeset.raw_id].append(('changed', node, diff, cs1, cs2)) #================================================================== # REMOVED FILES #================================================================== - for node in changeset.removed: - c.changes[changeset.raw_id].append(('removed', node, None, None, None)) + if not c.cut_off: + for node in changeset.removed: + c.changes[changeset.raw_id].append(('removed', node, None, None, None)) if len(c.cs_ranges) == 1: c.changeset = c.cs_ranges[0] @@ -180,7 +186,7 @@ diff = _('binary file') + '\n' else: f_gitdiff = differ.get_gitdiff(filenode_old, node) - diff = differ.DiffProcessor(f_gitdiff).raw_diff() + diff = differ.DiffProcessor(f_gitdiff, format='gitdiff').raw_diff() cs1 = None cs2 = node.last_changeset.raw_id @@ -192,7 +198,7 @@ diff = _('binary file') else: f_gitdiff = differ.get_gitdiff(filenode_old, node) - diff = differ.DiffProcessor(f_gitdiff).raw_diff() + diff = differ.DiffProcessor(f_gitdiff, format='gitdiff').raw_diff() cs1 = filenode_old.last_changeset.raw_id cs2 = node.last_changeset.raw_id