Facts and opinion from the life and work of Paul Carvill, Web Designer, UK

Web 2.0, 2.0.1, 2.0.2, 2.0.3, 2.0.31, 2.0.32, 2.0.4...

Posted on June 14, 2006 4:11 PM |

putty_window_thumb.gif UpMyStreet has given me my first experience of working within a version control system for developing code, and it hasn't been a happy one.

A version control system, if you don't know, is a piece of software which enables separate developers to work concurrently on a single project. The same files can be accessed locally and changed by each developer, and the version control system keeps track of all the changes. The version history is stored on a single central server and each developer merges their code back to the server when they've finished working on it. The version control system checks everybody's changes and alerts users if one or more people have changed the same piece of code. More fun can be had by "branching" the code so a developer can work on a complete copy of it and keep his changes seperate until they are ready to be merged back into the main branch. Any number of branches can be created and worked on by any number of developers, and hypothetically the version control system should keep track of all this.

putty_window_med.gif

As you might expect, the potential for conflicting changes in code is enormous. Add to that, and this is my real complaint, the fact that instructions are issued to the version control system by way of an incomprehensible, obscure command-line, and working with it soon becomes an absolute nightmare.

The application we use is CVS (Concurrent Versions System), an open-source package. I managed to lose about 2 days' work because I was able to accidentally, and far too easily, update the code I was working on by overwriting it with code from a much earlier version of the website, code which I knew nothing about and that I had no indication was about to wipe out my hard graft. A wrongly placed hyphen here, an uppercase letter there, and it can all go horribly wrong.

Surely in this century of highly nuanced graphical user interface design there must exist a product that elegantly abstracts the perhaps complex versioning procedure into something resembling ease-of-use?

December 12, 2006 9:29 AM Matt Matt

There are tools: TortoiseCVS and eclipse both provide CVS GUIs.

Leave a comment


Type the characters you see in the picture above.