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