You would think with the uVision's Run-Time Environment Manager and Software Package Selector with all its version control and download features that I should have no trouble switching between machines while working on a project. Well, you'd be wrong.
Half the files in my project are just being referenced to locations in the Keil program directory, while the other half are copied to my project folder. Why?
Some of these files are considered Packages, some are considered Components, and some are just considered included files. They are all just .c and .h files. Why are some handled one way, and others handled differently?
Why after moving my project to a new system do I have to spend hours making sure every setting in every menu is identical to the other machine my code was created just to get the code to compile when all of the information needed to do this already is (or should be) stored in the project file?
Unless I'm missing something all I see from these 'features' is larger file sizes for data that isn't actually being used to do anything to help workflow. All I'm finding are obstacles and reasons to switch to another IDE.
"you can edit with a text editor"
True, but there is no documentation of the content - so it can be hard to tell whether any differences are significant or not.
"You could compare the old and new files to see if something is different"
The trouble with many of these XML-based project files is that the tools don't have any set order for the elements, and seem to change the order at random.
Thus a simple text compare fails even when the content is the "same" - because the parts of it are in different order.
I can't now remember whether this applies to uVision - but it certainly does to Eclipse and MSVS.
Hmm... it's surprisingly hard to find a decent diff tool for XML out there.
For this very reason, I have tried to find an "intelligent" comparison utility for XML files - but no success yet.
If anyone knows of such I thing, I'd be grateful to hear ...