[OpenAFS-devel] delta analysis scripts and results for protos branch

Nathan Neulinger nneul@umr.edu
Thu, 1 Aug 2002 11:27:45 -0500


--RnlQjJ0d97Da+TV1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Take this with a grain of salt, but the following list appears to be deltas that are 
on the trunk but not on the protos branch.

I've attached the scripts, you might want to glance over to see if my logic makes sense in there.
Before running, generate a 'cvs-log.txt' file by running 'cvs log' by in top level openafs dir.
(Yes, I could just pipe, but if you're running lots of times, why put the load on cvs server.)

I'd definately appreciate it if another set of eyes could look at the logic in extract-deltas.pl 
and see if I've got anything way off base.


libadmin-vsprocs-use-volint-prototyping-20020702 on TRUNK, not on openafs-prototypes-1_3_x
vos-addsite-and-remsite-ignore-magic-suffixes-20020507 on TRUNK, not on openafs-prototypes-1_3_x
build-support-for-bigmem-kernels-20020514 on TRUNK, not on openafs-prototypes-1_3_x
need-prototype-for-osi-dnlc-lookup-20020503 on TRUNK, not on openafs-prototypes-1_3_x
viced-malloc-dont-make-assumptions-about-the-compiler-20020524 on TRUNK, not on openafs-prototypes-1_3_x
linux-gcpags-support-20020625 on TRUNK, not on openafs-prototypes-1_3_x
des-fix-linux-64bit-problems-more-usefully-20020607 on TRUNK, not on openafs-prototypes-1_3_x
update-news-file-20020512 on TRUNK, not on openafs-prototypes-1_3_x
remove-osi-dnlc-prototype-include-20020506 on TRUNK, not on openafs-prototypes-1_3_x


Some of them probably are mismatches, but the list is small enough to hand check. I checked
a couple, and they indeed looked missing. May still be cases where they are not necessary on
the protos branch...

The list for what's on trunk but not on stable is quite large. But that's not surprising...

If these are useful, you might stick them in a devel tools dir or something like that. 

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       EMail:  nneul@umr.edu
University of Missouri - Rolla         Phone: (573) 341-4841
Computing Services                       Fax: (573) 341-4216

--RnlQjJ0d97Da+TV1
Content-Type: application/x-perl
Content-Disposition: attachment; filename="extract-deltas.pl"
Content-Transfer-Encoding: quoted-printable

#!/usr/bin/perl=0A=0Ause Time::Local 'timelocal_nocheck';=0A=0A$DELTAS =3D =
{};=0A=0A#open(IN, "cvs log|");=0Aopen(IN, "cvs-log.txt");=0A$count =3D 0;=
=0Awhile ( $line =3D <IN> )=0A{=0A	chomp($line);=0A=0A	$count++;=0A	if ( $c=
ount % 1000 =3D=3D 0 ) { print "$count\n"; }=0A=0A	if ( $line =3D~ /^RCS fi=
le: (\/.*),v/o )=0A	{=0A		$curfile =3D $1;=0A		$curfile =3D~ s|/cvs/openafs=
/||gio;=0A=0A=0A		#print "New File: $curfile\n";=0A=0A		$currev =3D "";=0A	=
	$curdelta =3D "";=0A		%tags =3D ();=0A		$in_tags =3D 0;=0A		$in_tags =3D 0=
;=0A	}=0A	elsif ( !$in_tags && $line =3D~ /^symbolic names:/o )=0A	{=0A		$i=
n_tags =3D 1;=0A		#print "\tnow in tags\n";=0A	}=0A	elsif ( $in_tags && $li=
ne =3D~ /^\s+(.*?): ([\d.]+)$/o )=0A	{=0A		$name =3D $1;=0A		$rev =3D $2;=
=0A=0A		# account for magic branch numbers=0A		if ( $rev =3D~ m|([\d.]+)\.0=
\.(\d+)$| )=0A		{=0A			$rev =3D $1 . "." . $2;=0A		}=0A=0A		next if ( $name=
 =3D~ /^BP-/o );=0A=0A		$tags{$name} =3D $rev;=0A		#print "\t\tgot tag $nam=
e/$rev\n";=0A	}=0A	elsif ( $in_tags && $line =3D~ /^keyword subst/o )=0A	{=
=0A		$in_tags =3D 0;=0A		#print "\tnow out of tags\n";=0A	}=0A	elsif ( $lin=
e =3D~ /^revision ([\d.]+)$/ )=0A	{=0A		$currev =3D $1;=0A	}=0A	elsif ( $li=
ne =3D~ m|^date: (....)/(..)/(..) (..):(..):(..);|o )=0A	{=0A		#$time =3D t=
imelocal_nocheck($sec,$min,$hours,$mday,$mon,$year-1900);=0A		$curdate =3D =
timelocal_nocheck($6,$5,$4,$3,$2-1,$1-1900);=0A	}=0A	elsif ( $line =3D~ /^D=
ELTA (.*)$/ )=0A	{=0A		$curdelta =3D $1;=0A		#print "got a delta\n";=0A=0A	=
	while ( ($k,$v) =3D each %tags )=0A		{=0A			$tmptag =3D "";=0A			if ( $cur=
rev eq $v || $currev =3D~ m|^$v\.\d+$| )=0A			{=0A				$tmptag =3D $k;	=0A=
=0A				if ( ! $DELTAS->{$tmptag}->{$curdelta} || $DELTAS->{$tmptag}->{$curd=
elta} >=3D $curdate )=0A				{=0A					$DELTAS->{$tmptag}->{$curdelta} =3D $c=
urdate;=0A				}=0A			}=0A=0A			# this stuff handles deltas applied prior to=
 branching, sortof a hack, and not 100% certain it works right=0A=0A			if (=
 $currev =3D~ /^(\d+)\.(\d+)$/ )=0A			{=0A				$a =3D $1;=0A				$b =3D $2;=
=0A=0A				if ( $v =3D~ /^(\d+)\.(\d+)\.([\d.]+)/ )=0A				{=0A					$c =3D $1=
;=0A					$d =3D $2;=0A					$e =3D $3;=0A	=0A					if ( ($c =3D=3D $a && $d >=
 $b) ||=0A						( $c =3D=3D $a && $d =3D=3D $b && $e eq "2" ))=0A					{=0A	=
					$tmptag =3D $k;	=0A						$DELTAS->{$tmptag}->{$curdelta} =3D 0;=0A				=
	}=0A				}=0A=0A			}=0A=0A		}=0A=0A=0A=0A		if ( $currev =3D~ /^1\.\d+$/ )=
=0A		{=0A			$tmptag =3D "TRUNK";=0A			if ( !$DELTAS->{$tmptag}->{$curdelta}=
 || $DELTAS->{$tmptag}->{$curdelta} >=3D $curdate )=0A			{=0A				$DELTAS->{=
$tmptag}->{$curdelta} =3D $curdate;=0A			}=0A		}=0A	}=0A}=0A=0Aprint "Dumpi=
ng delta information.\n";=0Aopen(OUT, "|sort -n > cvs-deltas.txt");=0Aforea=
ch $tag ( keys(%$DELTAS) )=0A{=0A	foreach $delta ( keys( %{ $DELTAS->{$tag}=
 } ) )=0A	{=0A		print OUT $DELTAS->{$tag}->{$delta}, "\t", $tag, "\t", $del=
ta, "\n";=0A	}=0A}=0Aclose(OUT);=0A
--RnlQjJ0d97Da+TV1
Content-Type: application/x-perl
Content-Disposition: attachment; filename="analyze-deltas.pl"
Content-Transfer-Encoding: quoted-printable

#!/usr/bin/perl=0A=0Aopen(IN, "cvs-deltas.txt");=0A=0A# cvs-deltas.txt:1028=
199409       openafs-prototypes-1_3_x        PROTO13-switch-from-zero-casts=
-to-null-20020801=0A=0A$DELTAS =3D {};=0A%INITIAL =3D ();=0A%DELTADATE =3D =
();=0Awhile ( $line =3D <IN> )=0A{=0A	chomp($line);=0A=0A	($date,$tag,$delt=
a) =3D split(/\t/, $line);=0A=0A	if ( ! $INITIAL{$tag} || $INITIAL{$tag} >=
=3D $date )=0A	{=0A		$INITIAL{$tag} =3D $date;=0A	}=0A=0A	$DELTAS->{$tag}->=
{$delta} =3D 1;=0A	$MAYBEDELTAS->{$tag}->{$delta} =3D 1;=0A=0A	$DELTADATE{$=
delta} =3D $date;=0A	$delta =3D~ s|^STABLE\d+-||gio;=0A	$delta =3D~ s|^PROT=
O\d+-||gio;=0A	$DELTADATE{$delta} =3D $date;=0A=0A	$MAYBEDELTAS->{$tag}->{$=
delta} =3D 1;=0A}=0A=0A#=0A# On TRUNK but not on protos=0A#=0A$from =3D "TR=
UNK";=0A$to =3D "openafs-prototypes-1_3_x";=0A#$to =3D "openafs-stable-1_2_=
x";=0A=0A#$skip =3D "PROTO13";=0A$skip =3D "undef";=0A=0Aforeach $delta ( k=
eys(%{$DELTAS->{$from}}) )=0A{=0A	next if ( $delta =3D~ /^STABLE/ || $delta=
 =3D~ /^PROTO/ );=0A=0A	if ( ! $MAYBEDELTAS->{$to}->{$delta} )=0A	{=0A		if =
( $DELTADATE{$delta} >=3D $INITIAL{$to} )=0A		{=0A			if ( !$skip || $delta =
!~ /$skip/o )=0A			{=0A				print "$delta on $from, not on $to\n";=0A			}=0A=
		}=0A	}=0A}=0A=0A
--RnlQjJ0d97Da+TV1--