Version Control Best Practices


Using a version control system adds both power and complexity to your environment. This topic offers some best practice tips on what to do to succeed and not do to avoid frustration.

Things to Consider Doing

Initializing the Version Control System Repository

Prodly recommends starting with a new VCS repository containing only the default main branch. We recommend initializing the branch directly from your control org (typically production org) using the setup wizard.

This data then becomes your starting point from which to track changes. Release is purpose-built for admins and powerful for development teams as well. By using your production data schema from the start, you can most-easily branch data into individual dev or scratch orgs for you to begin data driven development. Then you can make changes (such as updating product bundles and price rules) per your change management process separately and merge the changes back into the main branch using the VCS to resolve any conflicts.

Deleting Records

By default as a safeguard, Release does not delete records from a destination org. You enable destination record deletion on the Settings page. Once enabled, when you delete a record from an org, your next Save to Branch action deletes the record from the branch and tracks the deletion. Then, any subsequent merge to another branch deletes the record from the branch, and then a Deploy to Org action deletes the record from the associated destination org.

If you roll back the changes to a point that included the record, Release recreates the record with the audit fields reflecting the date of recreation, not the original creation date.

Things to Avoid Doing

Renaming a VCS Repository Branch

The Release management board uses the branch name to associate a branch with an org. Renaming a repository branch from within the version control system breaks the association of branch and org on the management board.

Deleting a VCS Repository Branch

Though deleting branches is a common practice among development teams, Prodly recommends against doing so at this time. The current version of Release does not provide a way to unmanage an individual org. Deleting a repository branch from within the version control system breaks the association of branch and org on the Release management board, removes all the data change history for the org, and renders the org unavailable to manage again.

Deleting a Connected VCS Repository

Deleting the repository from within the version control system that the Release management board is currently using  renders the management board unusable. If you need to delete the repository, removing all the data change history, first disconnect the repository from within Release.

Using a Public Repository

Prodly recommends against using a public repository for obvious security reasons. If you do choose to use a public repository, make sure all users have contributor access.