We are 4 developer supposed to work on a same CRM instance for our next CRM project.
We are planning to use Solution Packager to decompose solution file into folder structure containing XML files representing each component of the CRM solution.
We are using Git for version controlling.
Currently we foresee some issues due to which we suspect it will add more overheads or involve manual intervention to avoid some of the conflicts.
On the Microsoft website, it gives an example where the CRM solution file is stored under Source Control but developer A and developer B have both independently made changes to components of that solution. It says:
Developer B is ready next following developer A.
- Before he submits he must get the latest sources to ensure no prior check-ins conflict with his changes.
- There is a conflict because the file for “Active Contacts” has been modified since he last retrieved the latest sources.
- Developer B must reconcile the conflict. It is possible the capabilities of the source control system in use may aide this process; otherwise the following choices are all viable.
- Developer B, through source control history, if available, can see that the developer A made the prior change. Through direct communication they can discuss each change. Then developer B only has to update his organization with the agreed resolution. He then exports, extracts, and overwrites the conflicting file and submits.
- Allow source control to overwrite his local file. Developer B packs the solution and imports it into his organization, then assesses the state of the view and re-customizes it as necessary. Next, he may export, extract, and overwrite the conflicting file.
- If the prior change can be deemed unnecessary, developer B allows his copy of the file to overwrite the version in source control and submits.
To me it seems this will require a lot of manual intervention for the changes to merge.. which seems not too ideal.
Wondering if anyone can share some ideas on what should be the best practice for multiple developers to work on Single CRM instance where each developer is supposed to customize components and plug-ins? We are planning to use Git as ALM, and Solution Packager to decompose a solution so that we can track XML files in the Git.
Any help on this will be much appreciated.