#!/usr/bin/perl # Feed whats-cooking to this to find what to merge to 'master' sub merged { my ($topic, $base) = @_; my $fh; (open $fh, "-|", qw(git rev-list), "^$base", $topic) or die "$!"; my $count = 0; while (<$fh>) { $count++; } (close $fh) or die "$! (after $count for $topic)"; return $count; } my ($topic, $topic_date, $last); my (@candidate); while (<>) { if (/^\* ([a-z][a-z]\/[-a-zA-Z0-9_]+) \(([-0-9]{10})\) \d+ commit/) { $topic = $last = $1; $topic_date = $2; next; } if (defined $topic) { if (/^ \(merged to 'next' on ([-0-9]{10}) at/) { push @candidate, [$topic, $1, $topic_date, ""]; next; } $topic = undef; $topic_date = undef; } if (defined $last && @candidate && $candidate[-1][0] eq $last) { if (/Will merge to 'master'/i) { $candidate[-1][3] = "*"; } } } for $topic (sort { ($a->[1] cmp $b->[1]) || ($a->[2] cmp $b->[2]) } @candidate) { my $count = merged($topic->[0], 'master'); if ($count) { print "$topic->[1] $topic->[2] ($count) $topic->[3]$topic->[0]\n"; } }