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)