Salesforce Developer Deployment Source Control

salesforce-developer-deployment

https://trailhead.salesforce.com/alm_deployment/alm_source_control
https://developer.salesforce.com/docs/atlas.en-us.204.0.dev_lifecycle.meta/dev_lifecycle/lifecycle_adv_ant_tool_configuration.htm

// When Version Control Is Not Necessary:

1. Small-scale development: If you have only one or two developers, version 
   control may be additional overhead, without much benefit.

2. Change sets: If you’re using change sets, then you already have cloud-based 
   storage for metadata. It isn’t version control, but every time you create an 
   outbound change set, you are saving the metadata from your org at a point in 
   time. You can go back and inspect or revert to those versions any time. Note 
   that as your organization and number of sandboxes grows, you will need 
   version control.

// When You Should Use Version Control:

1. No sandbox - For organizations that can’t use change sets (partners using 
   Developer Edition, or other orgs that don’t have a sandbox available), some 
   means of saving metadata is necessary, and this usually means a version 
   control system.

2. Regulatory reasons - Some highly regulated industries, such as banking, 
   healthcare, and legal, require version control for regulatory reasons.

3. Backup copies - Perhaps you want a copy of your org settings, so that you 
   can revert to older versions if necessary, or populate a new org with the 
   same settings.

4. Personal preference - Perhaps you or your company believes that having local 
   copies of files is safer than leaving your metadata on the server.

5. Convention - Using version control is considered to be a general best 
   practice for software development and you may already be using a version 
   control system for other development needs.

6. Large-scale development - If you have many developers and features, then 
   version control becomes more and more important as people overwrite each 
   other’s changes and rollbacks become more common.

Giving each developer a sandbox provides more control. Each developer can decide 
when to refresh their sandbox with the latest changes from the repository or 
when to commit changes.

To configure the Force.com Migration Tool to enable tests, see Tips for 
Configuring the Force.com Migration Tool to Run Tests.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License