#!/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;

	system("bk export -tpatch -du -r $rev > /tmp/rev-$rev.patch");

	if (! $empty_cset) {
		print @cset_text;
		print @pipe_text;
		print "\n\n";
	}

	@pipe_text = ();
	@cset_text = ();
}

