Version control

Version control and the fears that come with safety

Version controls systems allow programmers to retrieve software versions, and store new changes, so working as a team in a big-sized system becomes possible.

When I talk to new programmers, I find that they are worried about merge conflicts when committing new files to their version control systems. In merge conflicts, your changes cannot be committed to the central repository of code without further analysis, because another programmer has also included new changes in the same areas of the same files, and hence, they would be overwritten and lost.

Truth is that, under your code is in a version control system, nothing gets lost. Moreover, it is quite rare to have a colleague editing the same file in the same area as you were working at, precisely at the same time. But when something like this happens, your tools will point out the conflicting area pretty nicely, so the conflict can be easily resolved. And, most importantly: it is pretty much impossible to break a system once it is under version control, because you can always roll back to a version where everything worked.

My impressions with version control

Truth is, once your code is under a version control system (probably combined with a remote backup system,) it is as safe as it can ever be.

Using version control with groups is essential to allow the whole team work together in an efficient way. But even solo projects benefit from having your code under a version control system. It makes tracking your changes easier, and your code much more protected: in case of detecting verification errors on your tests, even if you couldn’t find an easy fix for them, you could always go back to a known, working state.

In the old times, we would use CVS every day. Then, we were about moving to Subversion, though we never took this step in professional environments. And nowadays, I’d say that GIT is definitely the way to go.

Do you need a coder to work with the rest of your programmers? I’m used to work with version control systems and I’m a good team player, so don’t hesitate to contact me.