(unnamed)

text/plain

Filename: (unnamed)
Type: text/plain
Part: 2
Message: Report: removing the inconsistencies in our CVS->git conversion
#! /usr/bin/perl -w

while(<>) {
    if (m/^(\S+)\s+(\S+)\s+(\S+)\s+(.+)$/) {
	my $tarball = $1;
	my $cvsroot = $2;
	my $project = $3;
	my $tagopt = $4;
	$tarball =~ m/^\w+-(\S+)\.tar.gz$/;
	my $tag = $1;

	system("cvs -Q -d $cvsroot co -d cvsout $tagopt $project") == 0 || die "cvs failed: $?";
	system("tar xfz ../$tarball") == 0 || die "tar failed: $?";
	system("find cvsout post* -name CVS -type d | xargs rm -rf") == 0 || die "find failed: $?";

	# hacks to make certain old versions diff successfully
	if ((-d "postgresql-v$tag/src" and
	    not -d "postgresql-v$tag/src/interfaces") or
	    -d "postgres95/src") {
	    print "moving src/interfaces for $tag\n";
	    system("mv cvsout/src/interfaces/* cvsout/src") == 0 || die "mv failed: $?";
	    system("rmdir cvsout/src/interfaces") == 0 || die "rmdir failed: $?";
	}
	if (-d "postgresql-v$tag/src/pgsql_perl5") {
	    print "moving perl5 for $tag\n";
	    system("mv cvsout/src/perl5 cvsout/src/pgsql_perl5") == 0 || die "mv failed: $?";
	}
	if (-f "postgresql-$tag/src/backend/commands/version.c" or
	    -f "postgresql-v$tag/src/backend/commands/version.c" or
	    -f "postgres95/src/backend/commands/version.c") {
	    print "moving version.c for $tag\n";
	    system("mv cvsout/src/backend/commands/_deadcode/version.c cvsout/src/backend/commands") == 0 || die "mv failed: $?";
	    system("rmdir cvsout/src/backend/commands/_deadcode 2>/dev/null");
	}
	if (-d "postgresql-$tag/src/test/locale/ISO8859-7") {
	    print "moving ISO8859-7 for $tag\n";
	    system("mv cvsout/src/test/locale/gr_GR.ISO8859-7 cvsout/src/test/locale/ISO8859-7") == 0 || die "mv failed: $?";
	}

	system("diff -cr cvsout post* >diffs/diff.$tag");
	system("diff -cr -I '\$PostgreSQL' -I '\$Header' cvsout post* >diffs/diff.$tag.na");
	system("rm -rf cvsout post*") == 0 || die "rm failed: $?";
    }
}