I’ve started to use Springloops RC2 for my version control efforts, which is really awesome. They support SVN and git (no Mercurial yet), have a great interface with easy deployments to multiple servers so you can split them up into production/staging/development, a solid ticketing system, and a good code browser. Also, it’s completely free!
HeidiSQL has been my Windows MySQL GUI of choice ever since I switched to it from Toad. It’s generally very good, it’s FOSS, and it handles most operations fairly well – except for CSV importing. Site5 is my current webhost, and I’m very happy with them 99.9% of the time, but they caused me a bit of pain recently. I have a lot of CSVs to import that are about 10-15 MB in size each, and I tried importing them through the very handy phpmyadmin tool. However, phpmyadmin has some memory leaks and issues with importing larger CSVs, so it ended up crashing due to memory problems on the larger files (even though it theoretically can handle up to 105MB CSVs). I sent Site5 a ticket to have them import the CSVs manually (they said they would), but they responded with “there’s no table structure in your DB so we can’t do it.” Well, uh, that’s what phpmyadmin does and why I wanted to use it over the 7 tables I need to make with 20 or so CSV files. They refused again without providing me an alternative, so I had do it myself.
I fired up HeidiSQL, manually created the tables, and imported the CSV. And… it didn’t work. I ignored the first row (column headers), but it still responded with “invalid data.” The fields were correctly cast for the rest of the data, so I didn’t know what was up. A bit of Googling tells me that even if you ignore the first row, HeidiSQL still checks it against the data types in your table. This is idiotic and annoying for any number of reasons, all of which I leave up to you to figure out.
At any rate, deleting the first row and ignoring 0 rows ended up working just fine. Now to do this repetitive task over and over again…