tools/commitsd - Remove it
authorEitan Adler <lists@eitanadler.com>
Sat, 11 Nov 2017 20:07:25 +0000 (12:07 -0800)
committerEitan Adler <lists@eitanadler.com>
Sun, 12 Nov 2017 08:02:55 +0000 (00:02 -0800)
This generates information for a CVS database. Something that both
DragonFly and FreeBSD have stopped using years ago.

tools/tools/README
tools/tools/commitsdb/make_commit_db [deleted file]
tools/tools/commitsdb/query_commit_db [deleted file]

index 0498f7f..a9409ac 100644 (file)
@@ -7,8 +7,6 @@ other categories.
 
 Please make a subdir per program, and add a brief description to this file.
 
-commitsdb      A tool for reconstructing commit history using md5
-               checksums of the commit logs.
 convert_usb_ids Convert FreeBSD USB device IDs to DragonFly device IDs.
 crypto         Exercise the crypto framework through /dev/crypto
 editing                Editor modes and the like to help editing FreeBSD code.
diff --git a/tools/tools/commitsdb/make_commit_db b/tools/tools/commitsdb/make_commit_db
deleted file mode 100644 (file)
index 63f834b..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env perl -w
-
-# $FreeBSD: src/tools/tools/commitsdb/make_commit_db,v 1.2 2002/10/17 16:29:26 joe Exp $
-
-# This script walks the tree from the current directory
-# and spits out a database generated by md5'ing the cvs log
-# messages of each revision of every file in the tree.
-
-use strict;
-use Digest::MD5 qw(md5_hex);
-
-my $dbname = "commitsdb";
-open DB, "> $dbname" or die "$!\n";
-
-# Extract all the logs for the current directory.
-my @dirs = ".";
-while (@dirs) {
-       my $dir = shift @dirs;
-       my %logs;
-
-       opendir DIR, $dir or die $!;
-       foreach my $f (grep { /[^\.]/ } readdir DIR) {
-               my $filename = "$dir/$f";
-               if (-f $filename) {
-                       my %loghash = parse_log_message($filename);
-                       next unless %loghash;
-
-                       $logs{$filename} = {%loghash};
-               } elsif (-d $filename) {
-                       next if $filename =~ /\/CVS$/;
-                       push @dirs, $filename;
-               }
-       }
-       close DIR;
-
-       # Produce a database of the commits
-       foreach my $f (keys %logs) {
-               my $file = $logs{$f};
-               foreach my $rev (keys %$file) {
-                       my $hash = $$file{$rev};
-
-                       print DB "$f $rev $hash\n";
-               }
-       }
-
-       print "\r" . " " x 30 . "\r$dir";
-}
-print "\n";
-
-close DB;
-
-
-
-##################################################
-# Run a cvs log on a file and return a parse entry.
-##################################################
-sub parse_log_message {
-       my $file = shift;
-
-       # Get a log of the file.
-       open LOG, "cvs -R log $file 2>/dev/null |" or die $!;
-       my @log = <LOG>;
-       my $log = join "", @log;
-       close LOG;
-
-       # Split the log into revisions.
-       my @entries = split /(?<=\n)-{28}\n(?=revision\s)/, $log;
-
-       # Throw away the first entry.
-       shift @entries;
-
-       # Record the hash of the message against the revision.
-       my %loghash = ();
-       foreach my $e (@entries) {
-               # Get the revision number
-               $e =~ s/^revision\s+(\S+)(\s+locked\s+by:\s+\w+;)?\n//s;
-               my $rev = $1;
-
-               # Strip off any other headers.
-               my $user;
-               while ($e =~ s/^(date|branches):([^\n]*)\n//sg) {
-                       my $sub = $2;
-                       $user = $1 if $sub =~ /author: (.*?);/;
-               };
-
-               my $hash = string_to_hash($e);
-               $loghash{$rev} = "$user:$hash";
-       }
-
-       return %loghash;
-}
-
-
-##################################################
-# Convert a log message into an md5 checksum.
-##################################################
-sub string_to_hash {
-       my $logmsg = shift;
-
-       return md5_hex($logmsg);
-}
-
-
-
-#end
diff --git a/tools/tools/commitsdb/query_commit_db b/tools/tools/commitsdb/query_commit_db
deleted file mode 100644 (file)
index 5491899..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/env perl -w
-
-# $FreeBSD: src/tools/tools/commitsdb/query_commit_db,v 1.3.2.1 2002/08/12 13:37:46 joe Exp $
-
-# This script takes a filename and revision number as arguments
-# and spits out a list of other files and their revisions that share
-# the same log message.  This is done by referring to the database
-# previously written by running make_commit_db.
-
-use strict;
-use Digest::MD5 qw(md5_hex);
-
-my $dbname = "commitsdb";
-
-# Take the filename and revision number from the command line.
-# Also take a flag to say whether to generate a patch or not.
-my ($file, $revision, $genpatch) = (shift, shift, shift);
-
-# Find the checksum of the named revision.
-my %possible_files;
-open DB, "< $dbname" or die "$!\n";
-my $cksum;
-while (<DB>) {
-       chomp;
-       my ($name, $rev, $hash) = split;
-       $name =~ s/^\.\///g;
-
-       $possible_files{$name} = 1 if $file !~ /\// && $name =~ /^.*\/$file/;
-
-       next unless $name eq $file and $rev eq $revision;
-       $cksum = $hash;
-}
-close DB;
-
-# Handle the fall-out if the file/revision wasn't matched.
-unless ($cksum) {
-       if (%possible_files) {
-               print "Couldn't find the file. Maybe you meant:\n";
-               foreach (sort keys %possible_files) {
-                       print "\t$_\n";
-               }
-       }
-       die "Can't find $file rev $revision in database\n";
-}
-
-
-# Look for similar revisions.
-my @results;
-open DB, "< $dbname" or die "$!\n";
-while (<DB>) {
-       chomp;
-       my ($name, $rev, $hash) = split;
-
-       next unless $hash eq $cksum;
-
-       push @results, "$name $rev";
-}
-close DB;
-
-# May as well show the log message if we're producing a patch
-print `cvs log -r$revision $file` if $genpatch;
-
-# Show the commits that match, and their patches if required.
-foreach my $r (sort @results) {
-       print "$r\n";
-       next unless $genpatch;
-
-       my ($name, $rev) = split /\s/, $r, 2;
-       my $prevrev = previous_revision($rev);
-       print `cvs diff -u -r$prevrev -r$rev $name`;
-       print "\n\n";
-}
-
-#
-# Return the previous revision number.
-#
-sub previous_revision {
-       my $rev = shift;
-
-       $rev =~ /(?:(.*)\.)?([^\.]+)\.([^\.]+)$/;
-       my ($base, $r1, $r2) = ($1, $2, $3);
-
-       my $prevrev = "";
-       if ($r2 == 1) {
-               $prevrev = $base;
-       } else {
-               $prevrev = "$base." if $base;
-               $prevrev .= "$r1." . ($r2 - 1);
-       }
-       return $prevrev;
-}
-
-#end