Wonderful use of Subversion version control system

Finally managed to get a SVN (Subversion) version control system up on my web host Dreamhost that will let me have different versions of my Msc dissertation implementation saved without extra effort from me.

For those who do not know what SVN is here is a brief explanation of it.

Quoting the free book Version Control with Subversion,

Subversion is a free/open-source version control system. That is, Subversion manages files and directories over time. A tree of files is placed into a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your data, or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine”.

Subversion can access its repository across networks, which allows it to be used by people on different computers. At some level, the ability for various people to modify and manage the same set of data from their respective locations fosters collaboration. Progress can occur more quickly without a single conduit through which all modifications must occur. And because the work is versioned, you need not fear that quality is the trade-off for losing that conduit—if some incorrect change is made to the data, just undo that change.

Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code, and have many features that are specific to software development—such as natively understanding programming languages, or supplying tools for building software. Subversion, however, is not one of these systems. It is a general system that can be used to manage any collection of files. For you, those files might be source code—for others, anything from grocery shopping lists to digital video mixdowns and beyond.

But yes it is going to be pretty useful for me as I no longer have to carry my code around with on a flash drive and development can be continued from any computer anywhere. All I do is check out the code and when I am done developing I commit out the code.

Helps in overcoming most of the common problems faced by developers where a piece of code is working one day and you keep on working on it and save and keep on working on it; then one fine moment in time you realised that everything that was done is nonsense…….. but by then it is too late !! You have saved over it many times and there is no way to go back.

Of course you could just copy the code to another folder but after doing that say 10, 20 or even 40 times over a period of weeks or months you lose track of what copy is what.

My IDE IntelliJ IDEA (the best Java IDE made to date) actually lets me pull up code versions and compare what lines have been changed… How slick is that ? You can then compare and revert back to an older version of the class.

SVN is actually used widely throughout the industry by several software development firms (who are migrating from obselete CVS now) so multiple developers can work on the same project. This can also help University students working on something like a group project.

Now that the hard part is taken care of it is all hard core dirty coding from here on Foot in mouth.


About this entry