What is Version Control ?

A component of software configuration management, version control, also known as revision control or source control,[1] is the management of changes to documents, computer programs, large web sites, and other collections of information. Changes are usually identified by a number or letter code, termed the “revision number”, “revision level”, or simply “revision”. For example, an initial set of files is “revision 1”. When the first change is made, the resulting set is “revision 2”, and so on. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged.

Why Version Control ?

An important question: Why do we need Version Control ? I am doing task on my local computer/cloud and I am deploying it at my server once the model is ready and only if I am done testing it. So why do I need version control ?

Now let’s look at a scenario: I am working for a company like Botsupply and I have clients. I am the AI guy. I made a question answering search using TF-IDF based model. I deployed it on my server. In the next phase, I made some changes to it and on my dummy data my accuracy increases. I deployed it on the server. Now due to the complexity in the test data, the performance decreases. Now I want to go back to the previous version.

One way is to deploy the previous version again. Second, or the better solution is version control and revert to the previous version.