Version Control – It’s Important!

Version control, also known as source control or revision control, is:

A Version Control System (VCS) is an application, desktop or web-based that lets developers keep their source code and binary and resource files stored away along with information about different versions.
The developer can at a later stage see who put back any version of a particular file and identify the differences between different versions. Also VCS have methods of preventing two developers working on the same file and one overwriting the other’s changes.

Source

So, why is something like this important? In any development environment, it is absolutely crucial to have proper change management to ensure that there is an understanding of why files were changed as well as the need to prevent file overwrites.

Now, this all may seem obvious for coding. However, I would argue this is just as important for any and all changes inside of Salesforce. If you make a workflow rule for instance, that should be stored in your version control system as well. Any and all changes to any production system have to go through the correct process. You wouldn’t make a change to a normal application directly on production, so why do it in Salesforce? Those changes should be done in a sandbox, stored in your version control, and only deployed to production once proper regression testing has been done.

If all of this is new to you, let me break down some of your options. There are three main version control systems that you can use.

  • Git

    • Git is by far the best version control system currently available. Read up on some of the features here. The thing that really sets Git apart is the branching structure, speed, and local repository.
  • SVN

    • Subversion, or SVN, is run by Apache, the company responsible for projects such as Tomcat, Apache HTTP Server, Apache Open Office, and more.
  • CVS

    • CVS is a relatively old version control system. CVS is typically very slow and branches are expensive. In my opinion, do not use CVS.

As you may be able to tell from my comments above, I highly recommend Git. Git is still relatively new and there is nothing like the branching and local repository available in the other version control systems. Git also has much better learning tools and documentation available.

On top of all of that, Git is also easily available through different services like GitHub or Bitbucket. There are pros and cons for each of them, but the main benefit of both of them is that they make Git readily available over the web. There is no need for you to set up your own server and manage it yourself (although, there is an argument for it at an enterprise level depending on the amount of repositories you need, etc).

In a followup post, I will give some instruction on actually setting Git up and the type of things to keep in mind when using Git for Salesforce modifications. For now, if you have never used a version control system before, get used to Git by playing around with it and going through tutorials. If you have used version control systems but have never used Git, take some time to learn the differences from SVN and the differences from CVS. I will be the first to tell you, the transition can be awkward at first but try to keep an open mind. Believe me when I say once you get the hang of it, it will all make more sense and you will realize the true potential Git has to offer over its competition.

Good luck!

Important Note: It is important to remember that this is my personal opinion. As with any opinion, it may or may not reflect the opinion of any organization I am associated with.

4 Responses to “Version Control – It’s Important!”

  1. January 20, 2014 at 11:35 am #

    If you still aren’t sure if version control is right for your particular situations, consider this: it’s much better to have version control and not need it then it is to need it and not have it. πŸ™‚

    Can’t wait for the follow up post, Jesse!

Trackbacks/Pingbacks

  1. Version Control – Intro to Git | Jesse Altman - January 27, 2014

    […] my previous article of this series, I discussed the importance of version control. I highly suggest reading that […]

  2. Version Control – Versioning Salesforce | Jesse Altman - February 3, 2014

    […] the two previous articles of this series, I discussed the importance of version control and then I went on to give an introduction to Git. I highly suggest reading each article before […]

  3. Version Control – Teamwork | Jesse Altman - February 10, 2014

    […] Version Control – It’s Important! […]

Leave a Comment