From 68d17b105b8b1ae62ceb161c3ca0585a030212ad Mon Sep 17 00:00:00 2001 From: Kirill Chilikin Date: Sun, 23 Oct 2011 23:30:08 +0400 Subject: [PATCH] Fixed calculation of total size of files. Signed-off-by: Heikki Hokkanen --- gitstats | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/gitstats b/gitstats index efe5c1f..32c39a9 100755 --- a/gitstats +++ b/gitstats @@ -130,6 +130,9 @@ class DataCollector: self.total_lines_added = 0 self.total_lines_removed = 0 + # size + self.total_size = 0 + # timezone self.commits_by_timezone = {} # timezone -> commits @@ -401,15 +404,19 @@ class GitDataCollector(DataCollector): except ValueError: print 'Warning: failed to parse line "%s"' % line - # extensions - lines = getpipeoutput(['git ls-tree -r -z %s' % getcommitrange('HEAD', end_only = True)]).split('\000') + # extensions and size of files + lines = getpipeoutput(['git ls-tree -r -l -z %s' % getcommitrange('HEAD', end_only = True)]).split('\000') + self.total_size = 0 self.total_files += len(lines) for line in lines: if len(line) == 0: continue - parts = re.split('\s+', line, 4) + parts = re.split('\s+', line, 5) sha1 = parts[2] - fullpath = parts[3] + size = int(parts[3]) + fullpath = parts[4] + + self.total_size += size filename = fullpath.split('/')[-1] # strip directories if filename.find('.') == -1 or filename.rfind('.') == 0: @@ -625,6 +632,9 @@ class GitDataCollector(DataCollector): def getTotalLOC(self): return self.total_lines + + def getTotalSize(self): + return self.total_size def revToDate(self, rev): stamp = int(getpipeoutput(['git log --pretty=format:%%at "%s" -n 1' % rev])) @@ -991,7 +1001,7 @@ class HTMLReportCreator(ReportCreator): f.write('
\n') f.write('
Total files
%d
' % data.getTotalFiles()) f.write('
Total lines
%d
' % data.getTotalLOC()) - f.write('
Average file size
%.2f bytes
' % ((100.0 * data.getTotalLOC()) / data.getTotalFiles())) + f.write('
Average file size
%.2f bytes
' % (float(data.getTotalSize()) / data.getTotalFiles())) f.write('
\n') # Files :: File count by date -- 2.11.4.GIT