What is msgfind? ================ The msgfind.py script populates a MySQL database, mapping Subversion mailing list message IDs to URLs. This is mainly so we can build a system that allows one to quickly determine a mailing list archive URL given a message ID, but it's also partly insurance in case the mailing list archives ever disappear, and we have to figure out what all those URLs in our issue tracker mean. There's a lot of interface and abstraction work left to do. It can only do one mailing list at a time, for example, and there's no way to actually query the database, except manually. But it does populate the database, and as far as I know the data is as it should be. My next plan is to turn the 'counter' file into a database table, so we can manage multiple lists at once. How to get it working, from scratch. ==================================== 1. Create the database user. Make sure the mysql users 'msgfindrw' and 'msgfindro' exist, that the first has read/write access to an existing database named msgfind, and that the second has read-only access: $ mysql -u root -p Password: ******* mysql> grant all on msgfind.* to msgfindrw@localhost identified by 'SECRET'; mysql> grant select on msgfind.* to msgfindro@localhost identified by 'SECRET'; mysql> ^D $ 2. Create the database. $ echo "create database msgfind;" | mysql -u msgfindrw --password=SECRET $ cat create-msgfind.sql | mysql -u msgfindrw --password=SECRET msgfind 3. Please make sure that you have Python and the MySQLdb module installed. 4. Set up your web server to make 'msgfind' CGI-executable: Alias /msgfind /home/yourname/path_to_msgfind_working_copy Options Indexes +ExecCGI SetHandler cgi-script 5. Look over dev.sh, take a deep breath, run it. This will populate the database with some messages. You should interrupt it when you think you have enough data. 6. Test the database, by pointing your browser at 'msgfind': http://localhost/msgfind/msgfind?mid=BLAHBLAHBLAH You can also query the database directly, of course: $ mysql -u msgfindro -p msgfindro password: SECRET mysql> select * from messages where \ message_id_header = '200004280600.BAA02369@floss.red-bean.com'; [... see results ...] mysql> ^D $