Using source code control
When handling multiple implementations of your application, customization requests cannot be avoided. Managing multiple implementations is made easier by using source code control. You can use source code control as version history - using tags to mark important milestones in the project, then using these tags to merge changes with other implementations.