Version Control 101
So, you have been developing software for as long as you can remember?
You are on a big project with many developers working across different time zones. Code is getting overwritten, changes are not being tracked, project is running over budget and overtime, and all hell is breaking loose around you. You think that you have a great filing system for keeping track of changes and code updates…until a major catastrophe hits. What do you do? Good thing that you asked. Let us introduce you to the concept of version control.
- What is version control?
Version control is a software system that captures a version or a snapshot of code or a file system at a certain point of time. This means that you can revert a file or an entire project to a specific previous state. You can also compare changes over a period of time, view who made what kind of modifications and when. Two well-known version control tools include Subversion (SVN) and GIT.
- I have heard so much about GIT but what is it?
GIT is an efficient, open source distributed version control system that stores codes, files and directories. GIT stores a history of your project in a commit object using large binary objects. ‘Distributed’ here implies that many software developers can work on a given project without the need to share a common network. In essence, when a developer checks out the current version of work, he/she gets a copy of the entire repository.
- I already use Subversion (SVN). Why should I consider GIT?
- Work offline:GIT allows you to work on your computer without the need to connect to your company’s servers.
- Never lose data again:In GIT, every developer working on a project has a complete copy of the code, changes and modifications on his/her machine, including the project’s entire change history. Thus, if something unexpected happens, you have the data stored in multiple locations!
- Undo any mistakes:GIT allows you to undo almost everything. Being able to undo codes, files and modifications gives your team the courage to try out creative ideas and concepts, without the fear of embracing risks, which, in turn, fosters a culture of innovation.
- Is Version control really for me? Yes…if you satisfy one of the following:
- You work in highly regulated industries, such as banking, healthcare, and legal, and you require version control for regulatory reasons.
- You want a copy of your organizational settings, so that you can revert to older versions, if necessary, or populate a new org with the same settings.
- You have many developers and features; version control then becomes important to ensure that people do not overwrite each other’s changes.
I trust that this has been an enlightening read for you and that I have been able to answer some of your most fundamental questions about version control. In the forthcoming post on this topic, I will share more specifically about AutoRABIT’s version control management system. Stay tuned and watch out for it.