From e4c73e368000ec50371bc1cc58850ae68985cd49 Mon Sep 17 00:00:00 2001 From: Heikki Hokkanen Date: Wed, 23 Dec 2009 17:48:13 +0200 Subject: [PATCH] Added 'active days' for authors. Shows how many days the author has done commits on. --- gitstats | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gitstats b/gitstats index 1c0fc80..866bd58 100755 --- a/gitstats +++ b/gitstats @@ -160,7 +160,7 @@ class GitDataCollector(DataCollector): self.activity_by_hour_of_day_busiest = 0 self.activity_by_hour_of_week_busiest = 0 - self.authors = {} # name -> {commits, first_commit_stamp, last_commit_stamp} + self.authors = {} # name -> {commits, first_commit_stamp, last_commit_stamp, last_active_day, active_days} # author of the month self.author_of_month = {} # month -> author -> commits @@ -304,6 +304,15 @@ class GitDataCollector(DataCollector): else: self.commits_by_year[yy] = 1 + # authors: active days + yymmdd = datetime.datetime.fromtimestamp(stamp).strftime('%Y-%m-%d') + if 'last_active_day' not in self.authors[author]: + self.authors[author]['last_active_day'] = yymmdd + self.authors[author]['active_days'] = 1 + elif yymmdd != self.authors[author]['last_active_day']: + self.authors[author]['last_active_day'] = yymmdd + self.authors[author]['active_days'] += 1 + # TODO Optimize this, it's the worst bottleneck # outputs " " for each revision self.files_by_stamp = {} # stamp -> files @@ -665,10 +674,10 @@ class HTMLReportCreator(ReportCreator): f.write(html_header(2, 'List of Authors')) f.write('') - f.write('') + f.write('') for author in sorted(data.getAuthors()): info = data.getAuthorInfo(author) - f.write('' % (author, info['commits'], info['commits_frac'], info['date_first'], info['date_last'], info['timedelta'], info['place_by_commits'])) + f.write('' % (author, info['commits'], info['commits_frac'], info['date_first'], info['date_last'], info['timedelta'], info['active_days'], info['place_by_commits'])) f.write('
AuthorCommits (%)First commitLast commitAge# by commits
AuthorCommits (%)First commitLast commitAgeActive days# by commits
%s%d (%.2f%%)%s%s%s%d
%s%d (%.2f%%)%s%s%s%d%d
') # Authors :: Author of Month -- 2.11.4.GIT