Version Control Saves Sanity

Posted in Software Engineering, Technology
Wednesday, March 15, 2006

Tom's BookshelvesSometimes when you change code to fix a problem, a new error is uncovered. Sometimes the error was introduced by your fix. Other times the error existed but was masked by another error. When the error is found, you will want to compare the latest version of source code against old versions to see what has changed. A version control tool is invaluable for this task because it keeps track of the all versions of files.

Without version control two coders may attempt to change the same file. Changes can get lost. One coder might save his work over another coder’s work thus clobbering her changes. Some types of version control software work as a library. That is, they allow only one coder to check out and change a file at a time. Other software permits multiple coders to each work on private copies of source code and merges their changes when the code is checked in.

Team members can easily update their copies of all the project’s files to the current versions. Without version control software this process can be time consuming and tricky.

If you mess up code badly, version control software can revert any file to a previous version. This frees developers to try bold, daring ideas.

Version control software can allow projects to fork off the main baseline into seperate branches. In fact multiple projects can each work on seperate branches of source code. Once a project is completed its branch can be merged back into the main baseline.

Integrating version control software with defect tracking software gives a powerful tool to maintain projects. You can use identification numbers assigned by the defect tracking tool to identify code changes. Then it is possible to examine of the history of file changes to see that bugs were fixed.

I have been amazed by the number of places that attempt to write software without version control software. It is not strictly necessary to have a version control tool in order to write software. But I would not try to work on a project without such a tool.


Like what you see? Subscribe to the RSS feed.