[SCM] build.samba.org - branch master updated
Jelmer Vernooij
jelmer at samba.org
Wed Nov 10 03:26:02 MST 2010
The branch, master has been updated
via 4db119b We no longer have CVS-based projects, and should not introduce any newer; remove cvslog.pl.
from 211abe8 More improvements to import-and-analyse.
http://gitweb.samba.org/?p=build-farm.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 4db119b01c2f86fbff7829d40c2ed45309f2c6a9
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Wed Nov 10 11:26:30 2010 +0100
We no longer have CVS-based projects, and should not introduce any newer; remove cvslog.pl.
-----------------------------------------------------------------------
Summary of changes:
cvslog.pl | 282 -------------------------------------------------------------
1 files changed, 0 insertions(+), 282 deletions(-)
delete mode 100755 cvslog.pl
Changeset truncated at 500 lines:
diff --git a/cvslog.pl b/cvslog.pl
deleted file mode 100755
index 11d559e..0000000
--- a/cvslog.pl
+++ /dev/null
@@ -1,282 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Extract information about recent CVS commits
-#
-# tridge at samba.org, April 2001
-
-use strict;
-use util;
-use POSIX;
-use Data::Dumper;
-use File::stat;
-use Date::Parse;
-
-####################################
-# parse a CVS date
-sub cvs_parse_date($)
-{
- my $s = shift;
-
- if (! ($s =~ /@/)) {
- return str2time($s);
- }
-
- if ($s =~ /(.*) (.*) ([0-9]+), ([0-9]+) @ ([0-9]+):([0-9]+)/) {
- my $day = $1;
- my $month = $2;
- my $mday = $3;
- my $year = $4;
- my $hour = $5;
- my $min = $6;
- my (%months) = ('January' => 1, 'February' => 2, 'March' => 3, 'April' => 4,
- 'May' => 5, 'June' => 6, 'July' => 7, 'August' => 8, 'September' => 9,
- 'October' => 10, 'November' => 11, 'December' => 12);
- my $t = mktime(0, $min, $hour, $mday, $months{$month}-1, $year-1900);
- return $t;
- }
-
- print "ERROR: bad date format $s\n";
- return 0;
-}
-
-
-####################################
-# push an entry onto the array
-
-# FIXME: This incorrectly handles multiple commits with the same log
-# message. The cvslog output only shows the revisions for the last
-# commit, but actually we want to either not coalesce, or show the
-# overall delta.
-
-sub push_entry($$$$$)
-{
- my $entry = shift;
- my $log = shift;
- my $days = shift;
- my $tree = shift;
- my $tag = shift;
- my $lastentry = $log->[$#{$log}];
-
- if ($lastentry->{DATE} && $lastentry->{AUTHOR} &&
- ($lastentry->{DATE} > $entry->{DATE}-600) &&
- ($lastentry->{AUTHOR} eq $entry->{AUTHOR}) &&
- ((!$lastentry->{TAG} && !$entry->{TAG}) ||
- ($lastentry->{TAG} eq $entry->{TAG})) &&
- ((!$lastentry->{MESSAGE} && !$entry->{MESSAGE}) ||
- ($lastentry->{MESSAGE} eq $entry->{MESSAGE}))) {
-
- if (exists $lastentry->{FILES}) {
- $lastentry->{FILES} .= " $entry->{FILES}";
- } else {
- $lastentry->{FILES} = $entry->{FILES};
- }
-
- if (exists $lastentry->{ADDED}) {
- $lastentry->{ADDED} .= " $entry->{ADDED}";
- } else {
- $lastentry->{ADDED} = $entry->{ADDED};
- }
-
- if (exists $lastentry->{REMOVED}) {
- $lastentry->{REMOVED} .= " $entry->{REMOVED}";
- } else {
- $lastentry->{REMOVED} = $entry->{REMOVED};
- }
-
- if (exists $lastentry->{REVISIONS}) {
- $lastentry->{REVISIONS} = {%{$lastentry->{REVISIONS}},%{$entry->{REVISIONS}}};
- } else {
- $lastentry->{REVISIONS} = $entry->{REVISIONS};
- }
- } else {
- if (($entry->{DATE} > time() - $days*24*60*60) &&
- ((!$entry->{TAG} && !$tag) ||
- ($entry->{TAG} eq $tag)) &&
- ($entry->{TREE} eq $tree)) {
- push(@{$log}, $entry);
- }
- }
- return $log;
-}
-
-####################################
-# return an array of logfile entries given a cvs log file.
-# Only return entries newer than $days old
-sub cvs_parse($$$$)
-{
- my $file = shift;
- my $days = shift;
- my $tree = shift;
- my $tag = shift;
- my $log;
- my $entry;
-
- open(FILE, "< $file");
- while (<FILE>) {
- my $line = $_;
-
- # ignore separator lines
- if ($line =~ /^[*]+/) { next; }
-
- if ($line =~ /^Date:\s*(.*)/) {
- if ($entry->{DATE}) {
- $log = push_entry($entry, $log, $days, $tree, $tag);
- }
- $entry = {};
- $entry->{DATE} = cvs_parse_date($1);
- $entry->{DIR} = "";
- next;
- }
-
- if ($line =~ /^Author:\s*(.*)/) {
- $entry->{AUTHOR} = $1;
- next;
- }
-
- if ($line =~ /^Update of (.*)/) {
- $entry->{TREE} = $1;
- if ($entry->{TREE} =~ /\/(data|home)\/cvs\/([^\/]*)\/?(.*)/) {
- $entry->{TREE} = $2;
- $entry->{DIR} = $3;
- if ($entry->{DIR}) { $entry->{DIR} .= "/"; }
- } elsif ($entry->{TREE} =~ /\/home\/tridge\/cvstest\/([^\/]*)\/?(.*)/) {
- $entry->{TREE} = $1;
- $entry->{DIR} = $2;
- if ($entry->{DIR}) { $entry->{DIR} .= "/"; }
- } else {
- print "badly formed tree $entry->{TREE}\n";
- }
- if (! $entry->{DIR}) { $entry->{DIR} = ""; }
- next;
- }
-
- if ($line =~ /^Modified Files:/) {
- while (<FILE>) {
- $line = $_;
- if ($line =~ /^[*A-Z]/) { last; }
-
- if ($line =~ /^\s*Tag: (.*)/) {
- $entry->{TAG} = $1;
- next;
- }
-
- while ($line =~ /\s*([^\s]+)(.*)/) {
- if ($entry->{FILES}) {
- $entry->{FILES} .= " $entry->{DIR}$1";
- } else {
- $entry->{FILES} = "$entry->{DIR}$1";
- }
- $line = $2;
- }
- }
- }
-
- if ($line =~ /^Added Files:/) {
- while (<FILE>) {
- $line = $_;
- if ($line =~ /^[*A-Z]/) { last; }
-
- if ($line =~ /^\s*Tag: (.*)/) {
- $entry->{TAG} = $1;
- next;
- }
-
- while ($line =~ /\s*([^\s]+)(.*)/) {
- if ($entry->{ADDED}) {
- $entry->{ADDED} .= " $entry->{DIR}$1";
- } else {
- $entry->{ADDED} = "$entry->{DIR}$1";
- }
- $line = $2;
- }
- }
- }
-
- if ($line =~ /^Removed Files:/) {
- while (<FILE>) {
- $line = $_;
- if ($line =~ /^[*A-Z]/) { last; }
-
- if ($line =~ /^\s*Tag: (.*)/) {
- $entry->{TAG} = $1;
- next;
- }
-
- while ($line =~ /\s*([^\s]+)(.*)/) {
- if ($entry->{REMOVED}) {
- $entry->{REMOVED} .= " $entry->{DIR}$1";
- } else {
- $entry->{REMOVED} = "$entry->{DIR}$1";
- }
- $line = $2;
- }
- }
- }
-
- if ($line =~ /^Log Message:/) {
- while (<FILE>) {
- $line = $_;
- if ($line eq "****************************************\n") { last; }
- if ($line =~ /^Revisions:/) { last; }
- $entry->{MESSAGE} .= $line;
- }
- }
-
- if ($line =~ /^Revisions:/) {
- while (<FILE>) {
- $line = $_;
- if ($line =~ /^[*]/) { last; }
- if ($line =~ /^\s*http/) { next; }
- if ($line =~ /^\s*(.*?)\s*(NONE|[0-9][0-9.]*) => (NONE|[0-9][0-9.]*)/) {
- my $file = "$entry->{DIR}$1";
- my $rev1 = $2;
- my $rev2 = $3;
- $entry->{REVISIONS}->{$file}->{REV1} = $rev1;
- $entry->{REVISIONS}->{$file}->{REV2} = $rev2;
- }
- }
- }
- }
-
- if ($entry->{DATE}) {
- $log = push_entry($entry, $log, $days, $tree, $tag);
- }
-
- close(FILE);
-
- # cleanup the messages
- for (my $line=0; $line <= $#{$log}; $line++) {
- $entry = $log->[$line];
- if ($entry->{MESSAGE}) {
- while (chomp($entry->{MESSAGE})) { }
- }
- }
-
- return $log;
-}
-
-
-######################################
-# main program
-if ($#ARGV < 4) {
- print "
-Usage: cvslog.pl <FILE> <DAYS> <TREE> <TAG> <DEST>
-
-Opens CVS log file \$FILE and extracts all commit info
-from the last \$DAYS days for \$TREE with tag \$TAG. The result
-is stored in \$DEST in a format that the build farm web scripts
-can easily read, aggregating the messages from a
-multiple-directory commit into a single entry.
-";
- exit(1);
-}
-
-my $file = $ARGV[0];
-my $days = $ARGV[1];
-my $tree = $ARGV[2];
-my $tag = $ARGV[3];
-my $dest = $ARGV[4];
-
-my $log = cvs_parse($ARGV[0], $days, $tree, $tag);
-
-util::SaveStructure($dest, $log);
--
build.samba.org
More information about the samba-cvs
mailing list