csets-to-patches 623 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/perl -w
  2. use strict;
  3. my ($lhs, $rev, $tmp, $rhs, $s);
  4. my @cset_text = ();
  5. my @pipe_text = ();
  6. my $have_cset = 0;
  7. while (<>) {
  8. next if /^---/;
  9. if (($lhs, $tmp, $rhs) = (/^(ChangeSet\@)([^,]+)(, .*)$/)) {
  10. &cset_rev if ($have_cset);
  11. $rev = $tmp;
  12. $have_cset = 1;
  13. push(@cset_text, $_);
  14. }
  15. elsif ($have_cset) {
  16. push(@cset_text, $_);
  17. }
  18. }
  19. &cset_rev if ($have_cset);
  20. exit(0);
  21. sub cset_rev {
  22. my $empty_cset = 0;
  23. system("bk export -tpatch -du -r $rev > /tmp/rev-$rev.patch");
  24. if (! $empty_cset) {
  25. print @cset_text;
  26. print @pipe_text;
  27. print "\n\n";
  28. }
  29. @pipe_text = ();
  30. @cset_text = ();
  31. }