Mercurial > moztree-vis
changeset 7:4c4fbd8e4da2
commit indicator now represents unique commits in a dir, rather than double-counting in the case of multiple files.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Sat, 12 Dec 2009 23:43:03 -0800 |
parents | d8b262428a1c |
children | 0138d044b8de |
files | build-moztree-json.py |
diffstat | 1 files changed, 10 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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 "<Directory '%s'>" % 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 "<File '%s'>" % 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)