Sunday, November 14, 2010

Group Project: Setting Up a Data Repository

Hi all!
Our project was about setting up a Data Repository. Here's a short summary about it!

Concept of Version Control
It is the system in which source code of the software is maintained using versions. Many developers can work on the same project and the source code can be "version-ed" with, for example, numbers, so that different "versions" of the code are maintained. This can tremendously boost productivity of a project.

Data Repositories with Client Server Model
The data repositories we explored were based on the client server model. The repository (the central database of code) was stored on a server, and clients could connect to this server and download data/update data in the repository. So if I have to make some changes in the source code, I would connect to the repository, download the current, most recent version, make my changes, and "commit" my changes back in the repository, making my version now the "most recent".

Version Control Systems - CVS and SVN
We covered arguably the two most popular version control systems. CVS - Concurrent versions system, first launched in 1990, quickly gained popularity. It had, however, certain drawbacks, which led to the birth of SVN in 2000. SVN (Subversion) was meant to be a successor to the widely successful CVS, making up for its drawbacks as well. Nowadays, SVN is the most used system, with development of CVS now discontinued.

Softwares for our Demo
We chose VisualSVN Server for setting up an SVN server + Apache server for access over the network, and chose TortoiseSVN as the client side software.
VisualSVN Server
was the most easy to use, configure and manage, server for Windows. It automatically set up Apache for use with the SVN server, which meant access over the network became very easy. It also has a really good interface for managing repositories and users, making the whole process a breeze.
is the industry leading software when it comes to client-side SVN solutions. Its not an application in it self, rather it integrates itself in Windows Shell. All operations are available through "context" or "right-click" menus within windows. This way it blends powerful functionality with the easiest-to-use methods for SVN, till date.
Both softwares were free as well, which hit the final nail in the coffin, for our decision to use them.

Working on this project was a unique experience. The concept was totally new to us, but the more we read about it, the more we thought that its a critical element of software development these days and it makes life very easy for programmers, especially in the multi-programmer environment. We decided to try and get this message across through our presentation, and I hope we succeeded in that. I ended up using SVN for developing my Introduction to Programming Project this semester, and I hope others found it useful as well!

Thank you!