1#!/usr/bin/perl -w 2 3use strict; 4 5my ($lhs, $rev, $tmp, $rhs, $s); 6my @cset_text = (); 7my @pipe_text = (); 8my $have_cset = 0; 9 10while (<>) { 11 next if /^---/; 12 13 if (($lhs, $tmp, $rhs) = (/^(ChangeSet\@)([^,]+)(, .*)$/)) { 14 &cset_rev if ($have_cset); 15 16 $rev = $tmp; 17 $have_cset = 1; 18 19 push(@cset_text, $_); 20 } 21 22 elsif ($have_cset) { 23 push(@cset_text, $_); 24 } 25} 26&cset_rev if ($have_cset); 27exit(0); 28 29 30sub cset_rev { 31 my $empty_cset = 0; 32 33 open PIPE, "bk export -tpatch -hdu -r $rev | diffstat -p1 2>/dev/null |" or die; 34 while ($s = <PIPE>) { 35 $empty_cset = 1 if ($s =~ /0 files changed/); 36 push(@pipe_text, $s); 37 } 38 close(PIPE); 39 40 if (! $empty_cset) { 41 print @cset_text; 42 print @pipe_text; 43 print "\n\n"; 44 } 45 46 @pipe_text = (); 47 @cset_text = (); 48} 49 50