What happened was that I wrote all the code out, starting with the class, then went on to the member functions, global functions, and finally the individual hooks in ships.tbl and weaponstbl, plus the ship_do_damage stuff, making minor modifications. I was trying to be quick about it.
Then I went on to do other stuff. But in the back of my head, I was still going over everything, and that's where those extra commits came in; I'd remember that I forgot to set a variable equal to a function or something, fix it, commit it, thinking I'd gotten it working properly.
This was all compounded by the fact I was working from within Anjuta, for the first time, and was getting a crapload of errors about SDL.h missing (although I didn't touch the files and had compiled it before.) I assumed that was some bizarre interaction since I'd uninstalled/reinstalled a half-dozen libraries since I last tried to compile the source - although I did try to get rid of all the compiler errors.
OTOH, the sauce that came with the instant Chicken Chou-Mein
did smell a little odd...