244 self.changes[rev].summary = '\n'.join(summary) |
244 self.changes[rev].summary = '\n'.join(summary) |
245 |
245 |
246 def _parsechangeset(self, data, rev): |
246 def _parsechangeset(self, data, rev): |
247 for l in data: |
247 for l in data: |
248 l = l.strip() |
248 l = l.strip() |
|
249 # Added file (ignore added directory) |
249 if l.startswith('A') and not l.startswith('A/'): |
250 if l.startswith('A') and not l.startswith('A/'): |
250 file = l[1:].strip() |
251 file = l[1:].strip() |
251 if not self._exclude(file): |
252 if not self._exclude(file): |
252 self.changes[rev].add_files.append(file) |
253 self.changes[rev].add_files.append(file) |
|
254 # Deleted file (ignore deleted directory) |
|
255 elif l.startswith('D') and not l.startswith('D/'): |
|
256 file = l[1:].strip() |
|
257 if not self._exclude(file): |
|
258 self.changes[rev].del_files.append(file) |
|
259 # Modified binary file |
|
260 elif l.startswith('Mb'): |
|
261 file = l[2:].strip() |
|
262 if not self._exclude(file): |
|
263 self.changes[rev].mod_files.append(file) |
|
264 # Modified link |
|
265 elif l.startswith('M->'): |
|
266 file = l[3:].strip() |
|
267 if not self._exclude(file): |
|
268 self.changes[rev].mod_files.append(file) |
|
269 # Modified file |
|
270 elif l.startswith('M'): |
|
271 file = l[1:].strip() |
|
272 if not self._exclude(file): |
|
273 self.changes[rev].mod_files.append(file) |
|
274 # Renamed file (or link) |
|
275 elif l.startswith('=>'): |
|
276 files = l[2:].strip().split(' ') |
|
277 if len(files) == 1: |
|
278 files = l[2:].strip().split('\t') |
|
279 if not self._exclude(files[0]) and not self._exclude(files[1]): |
|
280 self.changes[rev].ren_files[files[0]] = files[1] |
|
281 # Conversion from file to link or from link to file (modified) |
|
282 elif l.startswith('ch'): |
|
283 file = l[2:].strip() |
|
284 if not self._exclude(file): |
|
285 self.changes[rev].mod_files.append(file) |
|
286 # Renamed directory |
253 elif l.startswith('/>'): |
287 elif l.startswith('/>'): |
254 dirs = l[2:].strip().split(' ') |
288 dirs = l[2:].strip().split(' ') |
255 if len(dirs) == 1: |
289 if len(dirs) == 1: |
256 dirs = l[2:].strip().split('\t') |
290 dirs = l[2:].strip().split('\t') |
257 if not self._exclude(dirs[0]) and not self._exclude(dirs[1]): |
291 if not self._exclude(dirs[0]) and not self._exclude(dirs[1]): |
258 self.changes[rev].ren_dirs[dirs[0]] = dirs[1] |
292 self.changes[rev].ren_dirs[dirs[0]] = dirs[1] |
259 elif l.startswith('M'): |
|
260 file = l[1:].strip() |
|
261 if not self._exclude(file): |
|
262 self.changes[rev].mod_files.append(file) |
|
263 elif l.startswith('->'): |
|
264 file = l[2:].strip() |
|
265 if not self._exclude(file): |
|
266 self.changes[rev].mod_files.append(file) |
|
267 elif l.startswith('D') and not l.startswith('D/'): |
|
268 file = l[1:].strip() |
|
269 if not self._exclude(file): |
|
270 self.changes[rev].del_files.append(file) |
|
271 elif l.startswith('=>'): |
|
272 files = l[2:].strip().split(' ') |
|
273 if len(files) == 1: |
|
274 files = l[2:].strip().split('\t') |
|
275 if not self._exclude(files[0]) and not self._exclude(files[1]): |
|
276 self.changes[rev].ren_files[files[0]] = files[1] |
|