Source control (or Version Control) is a way of storing and managing any kind of digital content. It is mainly used in software development, but it can be used anywhere you need to maintain a record of what changed and who changed it.

Software engineers must know with certainty what source code is associated with a particular version of an app.

Not knowing means not being able find and fix problems, and not being able to reliably add features and functionality without changing anything else.

Some inexperienced developers regret the time it takes to properly manage their code in a good source control system, but every veteran developer has been saved from redoing hours or even days of work by a good system, often many times.

Source control allows teams to collaborate on projects effectively, without being concerned if they change the same file or even the same line of code.

 A good source control system helps developers merge their changes, automatically integrating the work of both developers in the same file.

Source control helps developers back up their work so that changes, intentional or otherwise, can always be reversed.

Source control also provides an excellent way for developers to share and review one another’s code.

Source Control

Main components of source control.

When starting out with source control the first decision to make is what type of source control you want to use.

Source control comes in two main varieties: centralized and distributed.

The differences between them are beyond the scope of this post. Once you have identified the source control software you will use, you must configure the main repository.

This will serve as the source of truth, the official version of the code. Once the centralized repository has been configured, the developers can install and configure the appropriate client, which will allow them to synchronize their local version of the code with the central repository.

How to use source control.

Let’s set a scenario: a project has two bugs in the same file. With the first bug, images are not loading correctly, and with the second a user cannot select an item from a list. Both of these bugs need to be fixed on the same file.

John starts to fix the first, while Steve works on the second. Both John and Steve download the file that needs to be fixed. John finishes bug #1 in an hour, and uses source control to change the file on the server to include his fix.

Since bug #2 was more complex it required more time, and after a few hours of Steve banging his head against his desk, he finally found a solution. Because John’s fix is now on the server, Steve, before uploading his changes, will need to download the new version of the file (that contains John’s fix), make sure his local file contains both fixes without introducing new errors, and then upload the modified file.

The source control system will maintain detailed history of all of these changes, including who made the change, what was changed, and when the change was made.

Still curious about source control? Contact Seamgen. We have answers for you.