[prev in list] [next in list] [prev in thread] [next in thread]
List: freebsd-hackers
Subject: Re: Alternate lists for more verbose CVS commit messages?
From: Sujal Patel <smpatel () umiacs ! umd ! edu>
Date: 1996-07-01 1:14:55
[Download RAW message or body]
On Sat, 29 Jun 1996, Jordan K. Hubbard wrote:
> > I often would like to know more about problems certain commit might fix,
> > and see what modifications were committed. Could it be possible to create
> > alternate commit lists which would receive detailed commit messages ?
> > Getting a full CVS diff would be helpful, if nothing else.
>
> Uh, what's wrong with simply subscribing to a cvs-* list and then
> cross-referencing the revision numbers mentioned with the
> http://www.freebsd.org/cgi-bin/cvsweb CGI script to get the diffs you
> want?
Or just pipe your piece of mail from cvs-* into the attached script and
you'll get an instant diff :-) It works 98% of the time (gets confused on
some branch commits, added files, and imports). If someone wants to make
this really work well, that'll be cool (It's good enough for me :-)
Sujal
-- Cut --
#!/usr/bin/perl
# FreeBSD cvs-* -> diff processor
# Author: Sujal Patel <smpatel@freebsd.org>
# This program is in the Public Domain
while (<>) {
if (/^ ([\d.]*)\s*(\+\d* \-\d*)\s*([\S\/]*)\s*/) {
$rev = $1;
$changes = $2;
$path = $3;
if ($rev =~ /((\d*\.)+)(\d*)/) {
if ($3 == 1) {
printf ("\n *** Can't determine previous version of %s\n", $path);
printf (" *** Skipping File\n\n");
next;
}
$oldrev = sprintf ("$1%d", $3 - 1);
}
$line = sprintf("GET /cgi-bin/cvsweb/$path?r1=text&tr1=$oldrev&r2=text&tr2=$rev&f=i\n");
$af_inet = 2;
$sock_stream = 1;
$sockaddr = 'S n a4 x8';
chop($hostname = `hostname`);
($name, $aliases, $proto) = getprotobyname('tcp');
($name, $aliases, $type, $len, $thisaddr) =
gethostbyname($hostname);
($name, $aliases, $type, $len, $thataddr) =
gethostbyname("www.FreeBSD.org");
$this = pack($sockaddr, $af_inet, 0, $thisaddr);
$that = pack($sockaddr, $af_inet, 80, $thataddr);
socket(SOCK, $af_inet, $sock_stream, $proto) || die $!;
bind(SOCK, $this) || die $!;
connect(SOCK, $that) || die $!;
select(SOCK); $| = 1; select(STDOUT);
print SOCK $line;
while (<SOCK>) {
print;
}
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic