#!/usr/bin/perl -w | |
use strict; | |
my ($lhs, $rev, $tmp, $rhs, $s); | |
my @cset_text = (); | |
my @pipe_text = (); | |
my $have_cset = 0; | |
while (<>) { | |
next if /^---/; | |
if (($lhs, $tmp, $rhs) = (/^(ChangeSet\@)([^,]+)(, .*)$/)) { | |
&cset_rev if ($have_cset); | |
$rev = $tmp; | |
$have_cset = 1; | |
push(@cset_text, $_); | |
} | |
elsif ($have_cset) { | |
push(@cset_text, $_); | |
} | |
} | |
&cset_rev if ($have_cset); | |
exit(0); | |
sub cset_rev { | |
my $empty_cset = 0; | |
open PIPE, "bk export -tpatch -hdu -r $rev | diffstat -p1 2>/dev/null |" or die; | |
while ($s = <PIPE>) { | |
$empty_cset = 1 if ($s =~ /0 files changed/); | |
push(@pipe_text, $s); | |
} | |
close(PIPE); | |
if (! $empty_cset) { | |
print @cset_text; | |
print @pipe_text; | |
print "\n\n"; | |
} | |
@pipe_text = (); | |
@cset_text = (); | |
} | |