# HG changeset patch # User Atul Varma # Date 1260690183 28800 # Node ID 4c4fbd8e4da2ff4f860a02923aa2470e6dd44d62 # Parent d8b262428a1caa5ac4622d9b3f5ee365423207e0 commit indicator now represents unique commits in a dir, rather than double-counting in the case of multiple files. diff -r d8b262428a1c -r 4c4fbd8e4da2 build-moztree-json.py --- a/build-moztree-json.py Sat Dec 12 23:20:52 2009 -0800 +++ b/build-moztree-json.py Sat Dec 12 23:43:03 2009 -0800 @@ -46,9 +46,11 @@ subdir_sizes = [subdir.size for subdir in self.subdirs] self.size = sum(file_sizes) + sum(subdir_sizes) - file_changes = [file.changes for file in self.files] - subdir_changes = [subdir.changes for subdir in self.subdirs] - self.changes = sum(file_changes) + sum(subdir_changes) + self.changes = set() + for file in self.files: + self.changes.update(file.changes) + for subdir in self.subdirs: + self.changes.update(subdir.changes) def __repr__(self): return "" % self.path @@ -62,7 +64,7 @@ if self.path in file_changesets: self.changes = file_changesets[self.path] else: - self.changes = 0 + self.changes = set() def __repr__(self): return "" % self.name @@ -80,7 +82,7 @@ obj = {'name': directory.name, 'size': directory.size, - 'changes': directory.changes} + 'changes': len(directory.changes)} json_subdirs = [] for subdir in subdirs: @@ -100,6 +102,7 @@ while to_visit: ctx = to_visit.pop() + rev = ctx.rev() date = datetime.datetime.fromtimestamp(ctx.date()[0]) if date < a_year_ago: break @@ -107,8 +110,8 @@ if 'test' in filename: continue if filename not in files: - files[filename] = 0 - files[filename] += 1 + files[filename] = set() + files[filename].add(rev) for anc in ctx.parents(): to_visit.append(anc)