So there's this firmware project...
Runs on a Kinetis MCU. Yes, it's one of those. Firmware development happens under KDS, which mostly works pretty well.
Comes time I should have a copy on my laptop. (Eventually the client's programmer will need a copy, too, but that's a few weeks off yet.) Easy, right? The working directory, containing (as far as I can tell) everything is under the working copy of the client's Subversion repository. So: add, commit, then update on the laptop, and, ...
Um.
Well, the commit takes rather a long time, considering how small the program is. And, once it's on the laptop? KDS can't find any of the files. It's looking for them using the absolute paths, which of course are wrong on the laptop, and will be even wronger for the client's programmer, who has a different username.
KDS is based on Eclipse, which is a big, well-established, widely-used open-source project. And have none of the developers ever heard of these things called relative paths????
Yeesh. So I grep the .metadata, and get roughly 43 gazillion references of the form
<PathName>/userdata/eric/working-copies/Clientname/trunk/Product_Name/firmware/sub_gadget_name/SDK/platform/devices/MKV30F12810/startup/gcc/startup_MKV30F12810.S</PathName>
So, no, I can't just edit one wonky line in one configuration file and make everything right. The wrongness is scattered everywhere.
Oh, and in some places backslash is used as a path separator. How very MS-DOS.
Sure looks to me like Eclipse is just not compatible with the basic idea of keeping all the friggin' project files together and checking them into a source-control system. Nor, indeed, with having multiple people working on a project.
It's also not real friendly to exotic operations like, oh, copying a project to another directory, under another name, and adjusting all the metadata accordingly so it'll compile properly in its new home.
Grrrr.
Do I have to find some Big Book of Eclipse and spend many days in study, just to learn how to do should-be-simple stuff like this?
Dang IDEs. Always having their own ideas about How Things Must Be Done, and then not exposing them in the UI.
Comments