Mercurial > kallithea
comparison rhodecode/controllers/changeset.py @ 1259:4209cd4b7823 beta
fixed problem with binary files, and for files that were deleted.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 14 Apr 2011 10:52:12 +0200 |
parents | 0a2a10a1912f |
children | 7a0004efde12 |
comparison
equal
deleted
inserted
replaced
1258:3954bdaf6243 | 1259:4209cd4b7823 |
---|---|
102 #================================================================== | 102 #================================================================== |
103 for node in changeset.added: | 103 for node in changeset.added: |
104 filenode_old = FileNode(node.path, '', EmptyChangeset()) | 104 filenode_old = FileNode(node.path, '', EmptyChangeset()) |
105 if filenode_old.is_binary or node.is_binary: | 105 if filenode_old.is_binary or node.is_binary: |
106 diff = wrap_to_table(_('binary file')) | 106 diff = wrap_to_table(_('binary file')) |
107 st = (0, 0) | |
107 else: | 108 else: |
108 c.sum_added += node.size | 109 c.sum_added += node.size |
109 if c.sum_added < self.cut_off_limit: | 110 if c.sum_added < self.cut_off_limit: |
110 f_gitdiff = differ.get_gitdiff(filenode_old, node) | 111 f_gitdiff = differ.get_gitdiff(filenode_old, node) |
111 d = differ.DiffProcessor(f_gitdiff, format='gitdiff') | 112 d = differ.DiffProcessor(f_gitdiff, format='gitdiff') |
112 diff = d.as_html() | 113 diff = d.as_html() |
114 st = d.stat() | |
113 else: | 115 else: |
114 diff = wrap_to_table(_('Changeset is to big and ' | 116 diff = wrap_to_table(_('Changeset is to big and ' |
115 'was cut off, see raw ' | 117 'was cut off, see raw ' |
116 'changeset instead')) | 118 'changeset instead')) |
117 c.cut_off = True | 119 c.cut_off = True |
118 break | 120 break |
119 | 121 |
120 cs1 = None | 122 cs1 = None |
121 cs2 = node.last_changeset.raw_id | 123 cs2 = node.last_changeset.raw_id |
122 st = d.stat() | |
123 c.lines_added += st[0] | 124 c.lines_added += st[0] |
124 c.lines_deleted += st[1] | 125 c.lines_deleted += st[1] |
125 c.changes[changeset.raw_id].append(('added', node, diff, | 126 c.changes[changeset.raw_id].append(('added', node, diff, |
126 cs1, cs2, st)) | 127 cs1, cs2, st)) |
127 | 128 |
136 filenode_old = FileNode(node.path, '', | 137 filenode_old = FileNode(node.path, '', |
137 EmptyChangeset()) | 138 EmptyChangeset()) |
138 | 139 |
139 if filenode_old.is_binary or node.is_binary: | 140 if filenode_old.is_binary or node.is_binary: |
140 diff = wrap_to_table(_('binary file')) | 141 diff = wrap_to_table(_('binary file')) |
142 st = (0, 0) | |
141 else: | 143 else: |
142 | 144 |
143 if c.sum_removed < self.cut_off_limit: | 145 if c.sum_removed < self.cut_off_limit: |
144 f_gitdiff = differ.get_gitdiff(filenode_old, node) | 146 f_gitdiff = differ.get_gitdiff(filenode_old, node) |
145 d = differ.DiffProcessor(f_gitdiff, | 147 d = differ.DiffProcessor(f_gitdiff, |
146 format='gitdiff') | 148 format='gitdiff') |
147 diff = d.as_html() | 149 diff = d.as_html() |
148 | 150 st = d.stat() |
149 if diff: | 151 if diff: |
150 c.sum_removed += len(diff) | 152 c.sum_removed += len(diff) |
151 else: | 153 else: |
152 diff = wrap_to_table(_('Changeset is to big and ' | 154 diff = wrap_to_table(_('Changeset is to big and ' |
153 'was cut off, see raw ' | 155 'was cut off, see raw ' |
155 c.cut_off = True | 157 c.cut_off = True |
156 break | 158 break |
157 | 159 |
158 cs1 = filenode_old.last_changeset.raw_id | 160 cs1 = filenode_old.last_changeset.raw_id |
159 cs2 = node.last_changeset.raw_id | 161 cs2 = node.last_changeset.raw_id |
160 st = d.stat() | |
161 c.lines_added += st[0] | 162 c.lines_added += st[0] |
162 c.lines_deleted += st[1] | 163 c.lines_deleted += st[1] |
163 c.changes[changeset.raw_id].append(('changed', node, diff, | 164 c.changes[changeset.raw_id].append(('changed', node, diff, |
164 cs1, cs2, st)) | 165 cs1, cs2, st)) |
165 | 166 |
167 # REMOVED FILES | 168 # REMOVED FILES |
168 #================================================================== | 169 #================================================================== |
169 if not c.cut_off: | 170 if not c.cut_off: |
170 for node in changeset.removed: | 171 for node in changeset.removed: |
171 c.changes[changeset.raw_id].append(('removed', node, None, | 172 c.changes[changeset.raw_id].append(('removed', node, None, |
172 None, None, None)) | 173 None, None, (0, 0))) |
173 | 174 |
174 if len(c.cs_ranges) == 1: | 175 if len(c.cs_ranges) == 1: |
175 c.changeset = c.cs_ranges[0] | 176 c.changeset = c.cs_ranges[0] |
176 c.changes = c.changes[c.changeset.raw_id] | 177 c.changes = c.changes[c.changeset.raw_id] |
177 | 178 |