From owner-FreeBSD-tech-jp@jp.freebsd.org  Tue Oct 10 11:00:36 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id LAA03220;
	Tue, 10 Oct 2000 11:00:36 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from gate.keisu.t.u-tokyo.ac.jp (gate.keisu.t.u-tokyo.ac.jp [133.11.68.1])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id LAA03215
	for <FreeBSD-tech-jp@jp.freebsd.org>; Tue, 10 Oct 2000 11:00:36 +0900 (JST)
	(envelope-from simokawa@sat.t.u-tokyo.ac.jp)
Received: from sylph.sat.t.u-tokyo.ac.jp (sylph.sat.t.u-tokyo.ac.jp [10.6.1.20])
	by gate.keisu.t.u-tokyo.ac.jp (Postfix) with ESMTP
	id 187313D9D; Tue, 10 Oct 2000 11:00:36 +0900 (JST)
Received: from localhost (ett.sat.t.u-tokyo.ac.jp [10.6.1.30])
	by sylph.sat.t.u-tokyo.ac.jp (Postfix) with ESMTP
	id D76532DC74; Tue, 10 Oct 2000 11:00:35 +0900 (JST)
To: FreeBSD-tech-jp@jp.freebsd.org, kana@saijo.mke.mei.co.jp
In-Reply-To: <20001010101501Z.kana@saijo.mke.mei.co.jp>
References: <20001009194942U.buildadm@jp.FreeBSD.org>
	<20001010101501Z.kana@saijo.mke.mei.co.jp>
X-Face: OE([KxWyJI0r[R~S/>7ia}SJ)i%a,$-9%7{*yihQk|]gl}2p#"oXmX/fT}Bn7:#j7i14gu$
 jgR\S*&C3R/pJX<mI-4Z8'mqt1R'CjWdw-xqVoilv`\JgZcquM5oVuO^<vt/~051rCDM(`{rM~?{Ok
 r,XC+}Ycm9IJO)odT*-0nyJjBJYzL{GsZ
X-Mailer: Mew version 1.94.1 on XEmacs 21.2 (Shinjuku)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <20001010110035K.simokawa@sat.t.u-tokyo.ac.jp>
Date: Tue, 10 Oct 2000 11:00:35 +0900
From: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
X-Dispatcher: imput version 20000414(IM141)
Lines: 85
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-tech-jp 2924
Subject: [FreeBSD-tech-jp 2924] Re: Request for Comments: CVS
 commitlogs based on periodically CVSup
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: simokawa@sat.t.u-tokyo.ac.jp

kana> $B0JA0$+$i!";W$C$F$$$k$N$G$9$,!"<+J,$K2r7hG=NO$,$J$$$N$G!"(B
kana> $B$G$-$F$$$J$$$3$H$,$"$j$^$9!#(B
kana> 
kana> 	$B!V<!$N$h$&$J!"J#?t$K$o$?$k(B commitlog $B$KBP$9$k(B
kana> 	$B$=$NJQ2=$N(B patch $B$r(B web $B$G0lH/$G$_$l$J$$$+$J$!!W(B
kana> 
kana> $ archie      2000/10/09 11:49:14 PDT
kana> $
kana> $  Modified files:
kana> $    sys/crypto           sha1.c sha1.h 
kana> $    sys/netinet6         ah_core.c 
kana> $  Log:
kana> $  Fix broken const'ness in declaration of sha1_loop().
kana> $  
kana> $  Revision  Changes    Path
kana> $  1.6       +3 -5      src/sys/crypto/sha1.c
kana> $  1.7       +3 -3      src/sys/crypto/sha1.h
kana> $  1.5       +5 -5      src/sys/netinet6/ah_core.c
kana> 
kana> $B$H$$$&MW5a$G$9!#(B
kana> $B$?$V$s!"(BMail $B$+$i(B file $B$r<h$j=P$7$F!"(Bdiff $B$H$C$F(B HTML $B$KJQ49$7$F(B
kana> $B$H$$$&$3$H$r$9$l$P!"$G$-$k$H;W$&$N$G$9$,!#(B

$B6qBNE*$K$I$N$h$&$J$3$H$r5a$a$l$l$F$$$k$N$+(B, $B$h$/$o$+$C$F$$$J$$$N(B
$B$G$9$,(B, $B;d$O0J2<$N$h$&$J(B script $B$r;H$C$F$$$^$9(B.
kana> $  1.6       +3 -5      src/sys/crypto/sha1.c
kana> $  1.7       +3 -3      src/sys/crypto/sha1.h
kana> $  1.5       +5 -5      src/sys/netinet6/ah_core.c
$B$NItJ,(B($B$"$k$$$O8+$?$$$H$3$m$@$1(B)$B$r(B cut-and-paste $B$GI8=`F~NO(B
$B$+$i?)$o$;$k$@$1$G$9(B.

$B$^$?(B, commit mail$B<+BN$K(B cvsweb $B$X$N(B link $B$r2C$($?$1$l$P(B,
/usr/ports/mail/cvsmail $B$H$$$&$N$b$"$k$h$&$G$9(B.

#!/usr/local/bin/python
#
# fetch the diff via cvsweb while reading commit messages 
#
# example input:
#   1.12      +2 -1      doc/share/sgml/man-refs.ent 

import re,urllib,sys,string

repo_list = {
	# repository	URL					cvsroot
	"freebsd" : ("http://www.freebsd.org/cgi/cvsweb.cgi", "freebsd"),
	"freebsd-jp" : ("http://www.jp.freebsd.org/cgi/cvsweb",  "freebsd-jp"),
}
repo = "freebsd"
pat = re.compile("([\d.]+)\.(\d+)\s+\+\d+ -\d+\s+([^\s]+)")

def process_line(i, url, cvsroot):
	match = pat.search(i)
	if match:
		major, minor, lpath = match.groups()
		minor = int(minor)
		if minor == 1: # branch point
			r1 = major[:string.rfind(major, ".")]
		else:
			r1 = "%s.%d" % (major, minor - 1)
		r2 = "%s.%d" % (major, minor)
		path = "%s/%s?r1=%s&r2=%s&cvsroot=%s&f=u" % (
			url, lpath, r1, r2, cvsroot)
		print path
		f = urllib.urlopen(path)
		for j in f.readlines():
			sys.stdout.write(j)
		f.close()
		print "=" * 68

if __name__ == "__main__":
	if len(sys.argv) > 1:
		repo = sys.argv.pop(1)	
	url, cvsroot = repo_list[repo]
	while 1:
		l = sys.stdin.readline()
		if l:
			process_line(l, url, cvsroot)
		else:
			break


/\ Hidetoshi Shimokawa
\/  simokawa@sat.t.u-tokyo.ac.jp
PGP public key: finger -l simokawa@sat.t.u-tokyo.ac.jp
