The technology journey towards Salesforce DevOps maturity often starts with adopting a version control system (VCS) into your development process. Git-based VCSs are the industry standard, because of the many benefits that they provide. But which Git hosting provider is right for your team?
Which version control system is best for Salesforce?
The first step to implementing version control is choosing which system to use. A few common types are Perforce, Subversion (SVN), Mercurial and Git. Deciding which system has a big impact on the process and tools available to the team, but it’s a simple choice for Salesforce development teams. Git has become the version control system of choice, used by millions of developers around the world. Virtually all Salesforce teams adopting version control use Git.
As a distributed version control system, Git is more robust than centralized alternatives. Its approach to branching also makes for great collaboration. Rather than making changes in shared sandboxes, Git allows teams to separate out multiple streams of development by making changes in isolated Git branches — so you’re not stepping on each other’s toes. Moreover, with a Salesforce-Git integration, everyone’s work starts from the same starting point, since Git replaces your production org as the source of truth. This allows team members to have the same understanding of what’s been reviewed, as well as letting you review and integrate changes before release — so fewer conflicts creep up later.
It’s key to stay aligned on how you’re using Git. Make sure you’re aligned on best practices like how branches are used. And providing training for teammates that need it will help make the implementation process as smooth as possible.
Why Salesforce teams are adopting Git
The State of Salesforce DevOps 2023 report found that 85% of Salesforce teams had adopted source control or planned to adopt it in 2023. Git-based development is rapidly becoming the industry standard for Salesforce developers, both programmatic and declarative. It’s unsurprising, given that version control benefits the whole release management team, helping you:
- Work on parallel development in isolated branches
- Identify conflicting development to avoid overwrites
- Reduce bugs through code review
- Audit easily with full change history
- Roll back unwanted or broken changes
But before you can adopt Salesforce version control using Git, you’ll need to choose a suitable VCS provider. With so many VCS options on the market, it can be hard to know which one is best for your team. In this post, we’ll look at the key considerations, so you can avoid the common challenges of version control systems and make your decision easier.
Considerations for choosing a VCS
Overwhelmed by the amount of VCS choices and don’t know where to start? Here are some things you’ll want to think about before selecting your VCS.
Are we going to be adopting CI/CD?
It’s useful to have an idea about what your overall DevOps strategy is going to look like in the long term. If you are looking to adopt a CI/CD strategy — either imminently or in the near future — then it’s worth looking at a VCS that has easy integration with CI platforms, or has one of its own.
How do we manage our work?
If you use change management software, such as Jira or Azure Work Items, it’s worth considering a complimentary VCS from the same provider. They will often have tighter integrations and nifty features that can make managing your work and collaboration that little bit easier.
What are our security requirements?
Many of the VCS providers offer the ability to self-host your repositories on-premises. This is often a hard requirement for those working in highly regulated industries, such as financial services or healthcare. All of the major providers can host your repositories in the cloud too.
What does our business already use?
If your business already uses a VCS elsewhere in other software engineering or Salesforce teams, then it could be wise to use the same one. Onboarding new software often involves contract negotiations and lengthy security reviews. If a VCS is already approved by the business, opting for the same provider can often get you up and running faster.
What do we like the look of?
It’s easy to overlook, but the way your team feels about the user interface should play a big part in your choice. Ease of use matters and it’s often subjective. So be sure to have a look at the options out there, and then consider picking the one that suits the team’s eye and way of working most.
What are the leading Git hosting providers?
So, having considered the above, what choices are there? All Git hosting providers offer the same core functionality, allowing you to:
- Host multiple repositories
- Set up a branching strategy that suits your team
- Allow for better collaboration through peer reviewed pull requests
- Give you a full commit history for auditing and rollback
Although similar, there are differences that can make certain VCS platforms a better fit for your team. Let’s have a look at the four main providers, so you can decide which one is best suited to your needs.
With over 70 million users, GitHub is the most widely used VCS provider in the world. GitHub has always championed open-source projects which has contributed to this significant number of users. As such, some members of your Salesforce team may already be familiar with using GitHub which could make onboarding easier.
GitHub offers automation capabilities through GitHub Actions, which is great if you’re looking to automate testing or deployments with your own scripting.
If you’re looking for somewhere to have comprehensive documentation all in one place, GitHub might be a good option for you, too. GitHub gives you a place to host your wikis so that every project or implementation is well documented.
GitHub has cloud-hosted options as well as offering on-premises hosting with GitHub Enterprise.
Bitbucket from Atlassian
Bitbucket is a one-stop shop for a tightly integrated development environment. Given that Atlassian is a big player in the software development space, Bitbucket is a fantastic option if you’re already using other Atlassian software.
If you’re a Jira user, Bitbucket could be the no-brainer choice for your VCS. Super-tight integration between Jira and Bitbucket means that feature branches can be created and tied directly to a Jira ticket. The ticket will then be automatically updated which is quicker and more reliable than manual updates. This is great for fostering collaboration and visibility across the Salesforce project team. Plus, Atlassian’s Bamboo offers you the option to script automated deployments or testing, with results tied to the specific branch and ticket being worked on.
Bitbucket Server is your on-premises option for those with additional security requirements.
GitLab is a fully open-source Git-based VCS and software development platform, which is the major difference between GitLab and the other providers. With GitLab you have the option to self-host easily on your own servers, which makes it a popular option for the security conscious. As a result, we tend to see a larger number of enterprise Salesforce teams using GitLab.
GitLab has been slightly ahead of the curve compared to other providers. For example, GitLab introduced CI/CD capabilities earlier than other platforms. Some teams have greater confidence in the robustness of tools that have been around longer so prefer to opt for GitLab.
GitLab also offers a similar level of built-in issue tracking to its peers with GitLab Issues. But the UI for GitLab Issues may feel unfamiliar for wider business users, making it harder for them to get visibility into ongoing development.
Azure DevOps from Microsoft
Azure DevOps (ADO) is another example of a suite of tightly integrated services. It might be beneficial to go with ADO if any of its services are already being used elsewhere within your organization.
Azure DevOps offers a unified view of your full DevOps pipeline. Your repositories can be connected to ADO Pipelines, automatically deploying changes through the Salesforce environments in your workflow. Also, the integration with ADO Work Items will give you the same level of visibility as Atlassian.
What about Gearset?
Gearset integrates with all of these Git hosting providers, so you can adopt or continue to use the option that suits you best and make the most of Gearset’s complete DevOps solution. This includes managing your entire CI/CD process in Pipelines, which is tightly integrated with your chosen provider and lets you track every change through your release pipeline — whether the pull request was opened in Gearset or not.
How to identify next steps
No matter which Git hosting provider you go for, you’ll be able to integrate with Gearset and build a powerful DevOps process. We have plenty of resources to help you, and a great place to start is our free version control for Salesforce whitepaper. As well as taking a deeper dive into the benefits of source-driven development, you’ll gain practical advice for implementing version control in your business.