Tuesday, October 8, 2013

Software Version Controlling



Frequent updating of soft files within software developing environment continues at a rapid rate. Controlling modifications with proper review of each update on soft files is a complex task to perform by a human. And concurrent modifications of a selected file will encounter difficulties in merging updates of different users manually.

As a solution for above related to soft files, version controlling systems are being entered to the industry since decades. Most of the version controlling software built based on client-server architecture where the master copy of the source code is placed within a centralized server. 


The client of the version controlling software is capable in loading (check-out) content from the central server to the local computer which is identified as the working copy of the user. The working copy could be updated by the user and changes could be transferred (check-in/commit) to the server. This could perform in a concurrent manner by group of users/clients.





The server maintains the version of each file within the master copy and it allows users to check-in/commit modifications on the latest version of the master copy. And after each commit, version of updated files on the server will be updated by the version controlling system.


Upon attempting to update modifications on older version rather than on the server's master copy, client software will throw 'conflict' message where the user requires to synchronize (update) working copy before commit any changes to the master copy.


CVS


Grand father of version controlling software is introduced in 80's which is named as CVS (Concurrent Version System) and it is capable of controlling updates of source files with update history. CVS is developed on older technology compared to current versions of version controlling systems. And it is still available on Google code and it could be still used for backing up and sharing files by designers, developers or any other user.


CVS Client Menu on Windows

Subversion


Subversion is the current most popular version controlling software system which has advanced features compared to CVS. Many of the open-source projects are using SVN such as Apache, Python, Rube, Source Forge etc. As popularity of the SVN, an array of client software available for Subversion such as Tortoise SVN client for windows environment, XCode of Apple etc.


Collabnet Subversion system

Git


Both CVS and Subversion are centralized version controlling tools which maintains a single code repository within the server. The Linux Kernel developer Linus Torvalds introduced a new concept with a product which is known as Git (GitHub). GitHub is a distributed version controlling software where the master copy is maintained within distributed environment. GitHub is developed with richer user-interface and the learning cycle is much larger for a beginner compared to the Subversion.

Git Interface
Mercurial


Mercurial is a distributed version controlling system as Git, and comparing with Git it is much simple system to use but extremely high performance available for larger projects. And most of the functions similar to old CVS systems.



Bazaar


Bazaar is a similar to Git and Mercurial in version controlling functionality, and specially it provides work-flows upon committing changes to the repository. This would provide approval/reviewing stages prior to commit which could enhance controllability with more human interaction as Bazaar calls itself as "Version control for human beings".



LibreSource


Git, Mercurial and Bazaar are more technical in usage perspective compared to LibreSource which is delivered with more visual tools. It is more suitable for environments where less technical users who keen on using graphical user interfaces rather pampering with command line commands.

Based on the requirement of the environment above tools could be used to maintain versions of contents.


--
Thisara

References : 

http://pages.cs.wisc.edu/~driscoll/software/vcs/
http://www.tortoisecvs.org/

No comments:

Post a Comment