Describe version control and source control

Completed

Version control and source control are two similar concepts that work together to ensure you’re working on the correct version of a file. They work together to make managing files easy and consistent.

What is version control?

Version control is a system or tool that helps you keep track of different versions of the same file or information. Version control can be helpful if you need to see the history of information, and how the information has changed over time. Version control is also helpful if you made changes to a file and later decide you want to undo those changes. With a version control system, instead of manually going in and making all of those changes, you can restore the older version of the file.

What is source control?

Source control is a system or tool that helps ensure everyone working on or using a file is using the correct version of the file. Having a source control system is important when more than one person is using a file.

Sample scenario

Let’s think about version and source control in terms of a shopping list. If you’re the only one using the shopping list, all you need is version control. You can quickly check and see if you added or removed something from the list recently. When you head out with the list, you know that you’ve got the latest and greatest version of the list.

If you're collaborating on the list, you’ll need a system that makes sure everyone uses the correct version. You’ll need a source control system. With a source control system, every time you or someone else goes to update the list, they can get the “latest” version of the list and make updates. Then, when someone else wants to look at the list, they can see that they’re looking at the latest version as well.

If you add something to the list, everyone will know that there’s a new item on the list, and they’ll be able to review the list with the new addition. When someone takes something off the list, everyone will see that the list was updated.

Illustration of a sample shopping list, showing two lists merging into one list.

Combined version and source control systems

While version and source control systems have a slightly different purpose, both types of systems can be helpful for software development. In fact, there are some systems that provide both version and source control.

In a purely version control system, you and your friend may end up starting from the same list, but end up creating two different lists. Or maybe you don't realize that the other person is making updates. You can still see all of the updates that you made to the list, but you may miss some of your friends’ updates, or vice versa.

In a purely source control system, you and your friend would always see the latest version of the list, but you might lose out on the history of the list. You wouldn’t be able to go back and see the history as things were added or removed.

Thankfully, there are systems out there that do both version control and source control. With a combined system, you not only get a history of all the changes, but you also know if you’re working on the latest, most up-to-date list.

Robust version and source control systems even provide the ability for multiple people to make updates concurrently, then synchronize those changes back into one update “source” list.