Over the past few months we’ve written a lot about the importance of source control for Salesforce developers. It’s a hot topic that has received over 9,000 points in the Salesforce Success community. On the Salesforce DX product page, “Source Driven Development” is listed as the first pillar:
Salesforce DX delivers seamless integration with Heroku Flow, supporting automated deployments off of GitHub repositories; application pipelines that streamline development, staging, and deployment to production; and a tightly integrated test suite to support continuous integration. Salesforce DX also enables developers to plug into third-party test and build automation tools.
We’ve hinted at what Blue Canvas will be and have talked to hundreds of Salesforce developers about our vision.
We recently released our new User Interface and opened up our beta to more users and we thought we’d give a more detailed look at the tool and what it is capable of.
Connect Your Orgs for Real Time Tracking With Git
Blue Canvas offers a simple web interface for connecting your Salesforce Orgs to a central Git repository. Once you connect your Salesforce Orgs to Blue Canvas changes made to them are automatically tracked in Git. You don’t need to train anyone on your team to do anything differently and you can use your existing workflows.
One of the changes that Salesforce DX is trying to bring is making source control your source of truth. Blue Canvas makes this possible today because your Git repo and your Salesforce Org are now indelibly linked in real time. No matter how someone changes the Org - whether an Ant script, a deploy from a change set, or a quick “hotfix” made in the developer console in production, Blue Canvas will track this and commit it to Git automatically.
You can navigate through and see all the files in your Org’s directory to see exactly what is deployed in production now. This is useful for debugging and makes it possible for source control to be the source of truth for your Salesforce Org in a powerful way. Even if non-developer stakeholders like Awesome Admins, product managers, business analysts, or sales ops managers make a change to the Org, this automatically gets tracked in Git.
Because Blue Canvas is Git based, you can use Git Blame to see the history of every file. Who has changed what on the file over time? When did they change it? And how?
Compare Salesforce Orgs in Real Time
With Blue Canvas each Org is tracked as it’s own branch on a Git repo. This makes it possible to quickly and easily compare the differences between Orgs. Want to know what is different between Production and Staging? Do a quick compare. Or what is different between your sandbox and production? Blue Canvas makes this possible.
You can see differences side by side or in-line.
Easy Syncing of Orgs
One of the most powerful features of Blue Canvas is that you can use
git pull to bring metadata from one environment to another. Let’s say there is a production deploy that involves the work from several developers. You now want to make your sandbox look like production before you start coding again. This will minimize merge conflicts and make give you confidence that new changes won’t cause issues with the work that others have merged into the master branch.
With Blue Canvas you can simply merge from production into your local branch in order to bring all metadata changes into your local environment.
Use Git History to Rollback
Another advantage of having a Git history of changes and a source of truth is that you can rollback changes at any time. Have you ever released a change that was unpopular with your users or a bug that caused major headaches? How long did it take you to figure out precisely which part of the code base was broken and how to revert to the previous state? We’ve heard horror stories of developers spending twelve hours trying to roll back to a previous state before a demo. Blue Canvas makes it possible to rollback to a previous state.
It’s nice to have a clear sense of what’s happening on your Salesforce Orgs in real time. Many of the release managers and developers we’ve talked to are looking for better tools to understand how things are changing and who’s making changes - possibly for SOX compliance or other reasons.
The Activity Stream tab lets you see in real time who has changed what and when.
Deploy in Seconds (Coming Soon)
One of the most common complaints about Salesforce development is that deployments take a long time. Some teams must wait a full 24 hours or more do a deploy. Because Blue Canvas uses Git, this doesn’t have to be the case. Git allows Blue Canvas to do deploys much faster than Ant scripts of change sets. Because we have a history of what has changed on your Org, Blue Canvas only deploys parts of your code that have changed. This dramatically speeds up the time to deploy. Everything about Blue Canvas is optimized for speed. Git is written in C and our service runs in Go which makes things very fast indeed.
Intelligent Merge Conflicts (Coming Soon)
All too often Salesforce deploys involve the replacement of your old code base with a brand new one. This makes it too easy to overwrite the work of a teammate. We talk to Salesforce developers every day and hear about this every day. Developer A clobbers the hard work of Developer B and there is no way to handle the merge conflict. With Blue Canvas, merge conflict resolution is built into the core deployment engine. So it is not possible to deploy a change that overwrites the code of another. Blue Canvas will highlight which lines of code contain the merge conflict and notify you so you can fix it before deploying again.