diff --git a/gitstats b/gitstats index 34151af..8f7b4a7 100755 --- a/gitstats +++ b/gitstats @@ -159,6 +159,8 @@ class GitDataCollector(DataCollector): self.activity_by_hour_of_week = {} # weekday -> hour -> commits self.activity_by_hour_of_day_busiest = 0 self.activity_by_hour_of_week_busiest = 0 + self.activity_by_year_week = {} # yy_wNN -> commits + self.activity_by_year_week_peak = 0 self.authors = {} # name -> {commits, first_commit_stamp, last_commit_stamp, last_active_day, active_days} @@ -265,6 +267,15 @@ class GitDataCollector(DataCollector): else: self.activity_by_month_of_year[month] = 1 + # yearly/weekly activity + yyw = date.strftime('%Y-%W') + if yyw not in self.activity_by_year_week: + self.activity_by_year_week[yyw] = 1 + else: + self.activity_by_year_week[yyw] += 1 + if self.activity_by_year_week_peak < self.activity_by_year_week[yyw]: + self.activity_by_year_week_peak = self.activity_by_year_week[yyw] + # author stats if author not in self.authors: self.authors[author] = {} @@ -546,6 +557,39 @@ class HTMLReportCreator(ReportCreator): #f.write('
Last %d weeks
' % WEEKS) + + # generate weeks to show (previous N weeks from now) + now = datetime.datetime.now() + deltaweek = datetime.timedelta(7) + weeks = [] + stampcur = now + for i in range(0, WEEKS): + weeks.insert(0, stampcur.strftime('%Y-%W')) + stampcur -= deltaweek + + # top row: commits & bar + f.write('| %d | ' % (commits, height)) + + # bottom row: year/week + f.write('
| %s | ' % (WEEKS - i)) + f.write('