So I've developed a couple of Salesforce / Force.com projects but the one thing I really hate is migrating changes between orgs. Maybe I'm doing it wrong, or I'm missing tools but something just snapped today.
I'm working on a fairly easy Salesforce project, a lot of custom fields, some custom objects, couple of queue's, some assignment rules here and there. I've got 1 production org and 1 dev org. I've made some profile changes, layout changes, visualforce page changes and I've added some fields. So now the hard part, some changes are made via the IDE and some via the GUI. I want to deploy the "neat" way so I wanted to use the change sets. I've set them up and then. I don't remember all of the fields I added, I don't know all the dependencies, so I've added them all.
This all concluded in 1 big bloated change set. It gave me a couple of errors when I tried to upload it about some missing fields... So with these cryptic messages I changed over to the IDE, selected all the things I thought I needed and managed to deploy it to production.
So it's a pain to deploy changes, especially if those changes have been made between 1 - 2 months. The project isn't in source control (I know very bad working on it) but what about all those changed made via the GUI. Why can't SF tell me what the DIFFS are between my "master" or production org and Sandboxes?
I guess I'm missing all the cool kid tools/scripts, but I couldn't find any good tutorials about it. This leading to another somewhat related question. How do you set-up your development environment? I want to use the newest Eclipse, but it errors on me when I try to add the Force.com plugin, so i'm stuck with the IDE force.com provided. Which gives me errors along the lines of:
com.salesforce.ide.api.metadata.types.Metadata$JaxbAccessorF_fullName cannot be cast to com.sun.xml.bind.v2.runtime.reflect.Accessor
So, what am I missing?