PageRenderTime 18ms CodeModel.GetById 14ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/Documentation/BK-usage/cset-to-linus

https://bitbucket.org/evzijst/gittest
Perl | 49 lines | 35 code | 13 blank | 1 comment | 8 complexity | e4a547d06d179cba26da960f437502ae MD5 | raw file
 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