Tuesday, September 20, 2005

Version Control Systems - Issues

Version control systems(VCS) are developed to record and retrieve version history of any piece of data. But version control systems often restrict the way we develop software.Unknowlingly for us a version control system has become indespensible. VCS becomes very importantin agile as it gives us the flexibility to track changes and deliver the 'last known good solution'to the customer. Going back to a previous revision is as easy changing the date on your desktop calendar.
But proprietary VCS that are often times a package in combination with an issue and project tracking system are often times a pain to work with. Especially their ever complex(generic?) interfaces makethem hard to use. From the developers perspective this is sometimes a lot of pain since integrating the VCS with continuous integration system and also using it with commandline tools(unices or dos) becomes difficult. Though from a customer's point of view a single point solution is an asset that (s)he does notwant to part with.
This leads us into a trap where it becomes hard to develop when complying to customer's requirement of VCS.
To circumvent this problem one can think of an easy solution. I term it VCSFreek.

VCSFreek

VCSFreek is a system that allows you to use your favourite VCS systemduring development and also allows you to comply with your customer's requirements.VCSFreek is a daemon that kees the two VCS systems in sync. VCSFreek works by periodically(user set) checking out files from one VCS and checking it into another.When doing this VCSFreek will make sure it copies/inserts all the informationrequired to maintain sanctity in both VCS systems.