Sign up for weekly AppOps insights.

Sign up for weekly AppOps insights.

What is version control and why do I need it?

Hayley Coxon

VP of Marketing

January 1, 2020

Companies are increasingly looking to engage more customers, scale their businesses, and tailor their products and services to a demanding clientele. B2B buyers’ expectations are more closely mirroring those of consumers. To meet these demands, many businesses are investing in Salesforce’s B2B Commerce Cloud.

What is version control?

Ever wish you could rollback changes you just made in error to your production org? How about being able to track the revision history of your changes over time?
Version control (also known as revision control or source control) is a methodology that resolves data control and management scenarios like these.

A version control system (VCS) tracks and manages the changes you make to your data. For complex, low-code Salesforce apps, such as Salesforce CPQ and Field Service Lightning, tracking the changes to your configuration data as you move the data from developer sandbox to QA to UAT to production is critical. Especially in an agile development world, where your changes are occurring fluidly, dynamically, and rapidly, version control is an essential component of configuration data management and is increasingly becoming a necessary element of the release management process.

Version control has been a staple of software development and documentation environments for decades. You check a file out of the VCS, update it, and check it back in. Declarative, low-code apps replace the need for coding with configuration data, so implementing a VCS in a low-code app environment is natural way for teams using declarative, low-code applications to enhance business agility.

And how does a VCS work with Salesforce?

To start, the initial master data commit retrieves your configuration data from your Salesforce production org and stores the data in the VCS. At that point, the data in the VCS becomes your single source of truth. Going forward, you initiate all changes to data in your production org through the VCS.

A version in the VCS is a snapshot of your data at a given time. You check data out of the VCS, update it, and check it back in, creating a new version. Then, if needed in the future, you can roll back your data to any version.

Does the VCS replace my deployment system?

No, the VCS works in conjunction with your deployment system through a concept called branching. A branch is a snapshot of your data created in the VCS and then deployed to a separate Salesforce sandbox or development org. Similar to how you likely work now, you develop your new features in the separate org to protect the data in your production org. When ready, with version control you then check the org changes back into the VCS branch, merge the branch back into the master, and deploy the changes to your production org.

When it comes to Salesforce configuration data, you are on your own to implement a VCS. Until now…

Prodly AppOps Release with version control makes agile development a reality for complex, low-code Salesforce apps. Unlike other version control offerings for Salesforce, AppOps Release manages your configuration data, not your metadata. AppOps Release version control combines the power of Salesforce orgs and VCS branches. Using AppOps Release version control as your single source of truth has the following benefits, compared to traditional in-org development:

  1. Iterate and configure faster in a true agile environment
  2. Collaborate within and amongst teams
  3. Ship complex configuration features faster
  4. Identify conflicts head on
  5. Provide full change history and audit trail
  6. Maintain SOX compliance
  7. Roll data back to prior states