CSC/ECE 517 Fall 2009/wiki1a 5 History of version control by av
Version control is a software utility used to manage the data, specially source code, within a software development environment. Managing the changes are important for software engineers, since during most of time they need to add, modify or fix a small portion of the code (also known as version). And version control does the housekeeping of the changes by providing a detailed history of each document . Version control implements several techniques to ensure the integrity of the information, while making use of minimal resources. This is a comprehensive list of version control software.
Introduction
Version control, also known as revision control, is a fundamental part of software configuration management (SCM), and acts as a key lifeline in a team environment. Version control works by keeping a record of every unit of information and tracks the changes and updates made.
It also allows for multiple users to edit the same document at the same time, providing a valuable resource for team projects, and enabling a better working environment. Keeping records of all changes to a set of information provides a fail‐safe solution to data management, and an archive for subsequent reference.
Version control works by uniquely identifying each piece of information and recording the changes with it. The information is stored in a data repository, an information database, and can be accessed remotely or locally depending on the type of system. When a user is required to make changes to a document, they can checkout the information from the system, giving them the most up‐to‐date version of the file in their working copy . Once the file has been amended, the user can then commit , re‐submit, the file updating the copy in the repository ready for use simple concept, there are many problems such as revision storage.
While file systems provide operations like open, save, rename and delete, version control systems provide checking-in and checking-out. Like their file system counterparts checking-in stores a file version, and checking-out retrieves a file revision from the system.
![](/images/1/19/Svn.png)
Trunk is the main copy of development a project on which development progresses. Team members creates a branches (Similar to fork) from the trunk and work on that copy. At the end of cycle the changes are merged to the Trunk, And this process continues.
History
Change and Configuration Control (CCC)
The history of Version control dates back to 1975 when Software Configuration Management(CCC) became commerical for the first time with the advent of Change and Configuration Control (CCC),which was developed by the SoftTool Corporation.
Source Code Control System(SCCS)
Then came the Source Code Control System which was developed by M. J Rochkind in the very early 1970’s. Designed basically for a unix system, it provided a simple locking model to serialize development.
Diff Algorithm
The diff algorithm was was developed by AT&T Bell Labs in 1974, and prototyped by James W. Hunt in 1976. It works by finding the longest common subsequence, then comparing the data preceding and following it, incorporating the changes in a diff or a patchfile(UNIX Systems).
Revsion Control System(RCS)
In the early 1980’s Walter Tichy introduced the Revision Control System(RCS). RCS introduced both forward and reverse delta concepts for efficient storage of different file revisions.
Concurrent Version System(CVS)
Next came the Concurrent Version System designed and originally implemented by Dick Grunein 1986 and then modified by Berliner et al in 1990. It became very popular and was the defacto standard within the open soure community for many years due to its ‘non‐restrictive modus operandi’ and its ‘support for network operations’ . One notable drawback to CVS was that it didn't support versioning of re-named or relocated material identifying them as new files instead of new versions.
Subversion(SVN)
Perceived shortcomings and faults in CVS eventually led to a new version control system called Subversion(SVN) around 2001.It was developed by CollabNet Inc. Unlike CVS, SVN committed changes atomically and significantly had better support for branches.
Distributed Version Control
The paradigm then shifted from client server architecture to a distributed system around 2001, with the development of systems like SVK,Bitkeeper, Mercurial, GNU Arch, DARCS, GIT, Bazaar, monotone, codeville, Vesta , Aegis and many more.The repository is split into several sub‐repositories for each section or module of a project. The sub‐repositories can be stored on servers or local machines.This enables every developer to edit his local sharable copy without having to connect to any network connection.
Problem in earlier Version
List some of the problem of earlier version.
Solution to these
How they solved these problem.
Why it was necessary
Conclusion
I believe that these five sites, while some were harder to find than others, are all great guides and examples on understanding and eventually creating a use case document.
External References
[1] http://en.wikipedia.org/wiki/Use_case
[2] http://infogenium.typepad.com/inside_infogenium/2007/07/getting-started.html
[3] http://www.parlezuml.com/tutorials/usecases.htm
[4] http://courses.softlab.ntua.gr/softeng/Tutorials/UML-Use-Cases.pdf
[5] http://www.readysetpro.com/whitepapers/usecasetut.html