Introduction:
The Subversion version control system is a powerful Open Source system for management of file and directory versions. It lets you track changes to an individual file as well as an entire project directory tree. Every change made to the tree or an individual file is recorded and can be retrieved at any phase of the project.
It is an Open Source project which was started in 2000 by CollabNet Inc. If you wish to participate then http://subversion.tigris.org/ follow this link and participate in its development. For more detailed explanation about Subversion you may refer to “Version Control with Subversion” book.
How it works?
The Subversion stores the actual data in a repository. A “Repository” is a set of directories and files managed by Subversion. Subversion provides a client program known as ‘svn’ to access the repository and make changes to it.
The Copy-Modify-Merge Development model.
Subversion uses the copy-modify-merge development model.
Copy:
The user makes a private copy of a given project in a sandbox (Sandbox is the term used for local copy of the project). This operation is known as “checking out a copy”.
Modify:
The user can make changes to the private copy within the sandbox. He need not have to worry about what other developers are doing. The user can compare the changes to the version he has started with as well as to the version which is currently in the repository. Once the user is satisfied with the changes, he can copy the required files back to the repository. This process is known as checking-in or “commit”.
Merge:
If another developer has modified the file which the user wanted to check-in, then Subversion notices and indicates to the user that a conflict exists. The Subversion stores the pristine copy of both the files i.e, the one in the repository and the other is the one which user wants to check-in. It marks the conflicts in the file. The user can resolve the conflict and tell the Subversion about it. It then commits the final version of the file.
Branching:
The Subversion lets the user to create a separate development branch which has a separate stream of development versions. The user can periodically merge changes from this development branch to the main branch and vise versa.
Tagging:
Subversion allows the user to “tag” a particular copy of the project. Tagging means, when a project is ready for a release, the user can create a “snapshot” of the project and give a descriptive “tag” to that. It allows the user to re-create the project tree exactly as it was for the release.

No comments:
Post a Comment