The idea of versioning is ingrained into everything around us. People all over the world are accustomed to using various forms of versioning on a daily basis. Note that I am not just talking about software here. The vast majority of physical products that you are using are associated with some sort of versioning scheme. Uses of versioning range from your computer's CPU to your mobile phone, and from the revision of the algorithm book on your bookshelf to your favorite superhero (or alternatively light-saber-wielding rebel) movie.
When we move to the realm of software, the concept of versioning becomes even more important. Nowadays, as more and more software engineers ascribe to the release fast mantra, having a sane versioning system in place makes it possible to do the following:
- Validate that a particular piece of software...