We are trying to compare our development sandboxes now which have become totally out of sync because of changes done by independant teams for a few releases. Do you guys know of any free apex code which can use the metadata api to query all components in a sandbox and list the name of components which are changed based on a from and to date? I know snapshot can do this but we would like to know if you guys have any utility script which can do this? Thanks Buyan
You can get the created and last modified user and date through the MetadataAPI RetrieveRestult call under the fileProperties object.
You can also parse the audit log to get the last change data of configuration objects but this doesn't provide any information on what the changes were.
I would setup an automated ant task that pulls down the metadata using the force.com migration tool and add those components into a git repository. You can then use native git diff to view the metadata changes. Unfortunately this process would need to be running prior to the org changes.
Any tool or product which you now use can only get the differences between the two ORGS but cannot give you a revision graph or cannot give you what changes have been made on a from or to date.
Depending upon the size of the company, the recommendation of tools depend. You can use the above mentioned app it is free. You can use Kdiff3 which is a free tool and it gives you difference between your two orgs. You can use free version control tools like SVN, Github, Mercurial and get your two orgs on different branches and do a diff which can show you revision graphs for all the changes.
You should take a look at this app called Copado. You can perform Org Diffs (Org Difference analysis) even by date and user. Then you can add those differences to a deployment to bring the two orgs back into sync.