cset-to-linus 753 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. open PIPE, "bk export -tpatch -hdu -r $rev | diffstat -p1 2>/dev/null |" or die;
  24. while ($s = <PIPE>) {
  25. $empty_cset = 1 if ($s =~ /0 files changed/);
  26. push(@pipe_text, $s);
  27. }
  28. close(PIPE);
  29. if (! $empty_cset) {
  30. print @cset_text;
  31. print @pipe_text;
  32. print "\n\n";
  33. }
  34. @pipe_text = ();
  35. @cset_text = ();
  36. }