summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/Porting/genlog
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/Porting/genlog')
-rwxr-xr-xcontrib/perl5/Porting/genlog141
1 files changed, 0 insertions, 141 deletions
diff --git a/contrib/perl5/Porting/genlog b/contrib/perl5/Porting/genlog
deleted file mode 100755
index e040b9e..0000000
--- a/contrib/perl5/Porting/genlog
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/l/local/bin/perl -w
-#
-# Generate a nice changelist by querying perforce.
-#
-# Each change is described with the change number, description,
-# which branch the change happened in, files modified,
-# and who was responsible for entering the change.
-#
-# Can be called with a list of change numbers or a range of the
-# form "12..42". Changelog will be printed from highest number
-# to lowest.
-#
-# Outputs the changelist to stdout.
-#
-# Gurusamy Sarathy <gsar@activestate.com>
-#
-
-use Text::Wrap;
-
-$0 =~ s|^.*/||;
-unless (@ARGV) {
- die <<USAGE;
- $0 [-p \$P4PORT] [-bi branch_include] [-be branch_exclude] <change numbers or from..to>
-USAGE
-}
-
-my @changes;
-
-my %editkind;
-@editkind{ qw( add edit delete integrate branch )}
- = qw( + ! - !> +> );
-
-my $p4port = $ENV{P4PORT} || 'localhost:1666';
-
-my @branch_include;
-my @branch_exclude;
-my %branch_include;
-my %branch_exclude;
-
-while (@ARGV) {
- $_ = shift;
- if (/^(\d+)\.\.(\d+)$/) {
- push @changes, $1 .. $2;
- }
- elsif (/^\d+$/) {
- push @changes, $_;
- }
- elsif (/^-p(.*)$/) {
- $p4port = $1 || shift;
- }
- elsif (/^-bi(.*)$/) {
- push @branch_include, $1 || shift;
- }
- elsif (/^-be(.*)$/) {
- push @branch_exclude, $1 || shift;
- }
- else {
- warn "Arguments must be change numbers, ignoring `$_'\n";
- }
-}
-
-@changes = sort { $b <=> $a } @changes;
-
-@branch_include{@branch_include} = @branch_include if @branch_include;
-@branch_exclude{@branch_exclude} = @branch_exclude if @branch_exclude;
-
-my @desc = `p4 -p $p4port describe -s @changes`;
-if ($?) {
- die "$0: `p4 -p $p4port describe -s @changes` failed, status[$?]\n";
-}
-else {
- chomp @desc;
- while (@desc) {
- my ($change,$who,$date,$time,@log,$branch,$file,$type,%files);
- my $skip = 0;
- my $nbranch = 0;
- $_ = shift @desc;
- if (/^Change (\d+) by (\w+)\@.+ on (\S+) (\S+)\s*$/) {
- ($change, $who, $date, $time) = ($1,$2,$3,$4);
- $_ = shift @desc; # get rid of empty line
- while (@desc) {
- $_ = shift @desc;
- last if /^Affected/;
- push @log, $_;
- }
- if (/^Affected/) {
- $_ = shift @desc; # get rid of empty line
- while ($_ = shift @desc) {
- last unless /^\.\.\./;
- if (m{^\.\.\. //depot/(.*?perl|[^/]*)/([^#]+)#\d+ (\w+)\s*$}) {
- ($branch,$file,$type) = ($1,$2,$3);
- $nbranch++;
- if (exists $branch_exclude{$branch} or
- @branch_include and
- not exists $branch_include{$branch}) {
- $skip++;
- }
- $files{$branch} = {} unless exists $files{$branch};
- $files{$branch}{$type} = [] unless exists $files{$branch}{$type};
- push @{$files{$branch}{$type}}, $file;
- }
- else {
- warn "Unknown line [$_], ignoring\n";
- }
- }
- }
- }
- next if not $change or $skip == $nbranch;
- print "_" x 76, "\n";
- printf <<EOT, $change, $who, $date, $time;
-[%6s] By: %-25s on %9s %9s
-EOT
- print " Log: ";
- my $i = 0;
- while (@log) {
- $_ = shift @log;
- s/^\s*//;
- s/^\[.*\]\s*// unless $i ;
- # don't print last empty line
- if ($_ or @log) {
- print " " if $i++;
- print "$_\n";
- }
- }
- for my $branch (sort keys %files) {
- printf "%11s: $branch\n", 'Branch';
- for my $kind (sort keys %{$files{$branch}}) {
- warn("### $kind ###\n"), next unless exists $editkind{$kind};
- my $files = $files{$branch}{$kind};
- # don't show large branches and integrations
- $files = ["($kind " . scalar(@$files) . ' files)']
- if (@$files > 25 && ($kind eq 'integrate'
- || $kind eq 'branch'))
- || @$files > 100;
- print wrap(sprintf("%12s ", $editkind{$kind}),
- sprintf("%12s ", $editkind{$kind}),
- "@$files\n");
- }
- }
- }
-}
OpenPOWER on IntegriCloud