25 January 2011

Subversion in cooperative software developement


Software development companies are frequently working on large projects. These projects demand cooperative work of database analyst, graphic designers, developers, testers and project managers. The key problem in development process is how to collect, backup, maintain, versioning and revision the source code, models, documentation and other data from different team members.

One of the best know versioning and revision control system is Apache Subversion, also known as SVN. Apache Subversion consist of two main parts - client part and server part.

Server part of SVN contains repository (central storage). Repository physically contains files of all involved team members and also former versions of these files.

The main role of client part is to provide functionality for obtaining copy of actual data from repository (Update, Checkout) and to send modified data back to repository (Commit).

The important feature of SVN is that team member who is modifying some file can lock this file, to prevent modification of this file by another team member at the same time. SVN provides functionality for merging different versions of specific file to one new version. SVN also backup all older versions of file and it's easy to restore the former version.

Simple example of using SVN:

1. Developer downloads actual data from server repository to local folder (Ckeckout).

2. Develpoer modifies the file or add new files.

3. Developer sends modified files or new files back to repository (Commit).

4. Next developer can download modified file from server (Checkout) and provide his own modification.

SVN is developed by CollabNet and it's an Open Source multiplatform software provided free of charge also for commercial use.

Lot of Integrated development environments (IDEs) like NetBeans, Microsoft Visual Studio or Eclipse offers add-ons provides functionality of SVN directly from IDE. There is also a lot of external tools which provide easy interface for using SVN, one of the most common is TortoiseSVN.

References:
http://svnbook.red-bean.com/en/1.5/svn-book.pdf
http://subversion.apache.org/
http://en.wikipedia.org/wiki/Apache_Subversion
http://tortoisesvn.tigris.org/

No comments:

Post a Comment