Apache Subversion which is often abbreviated as SVN, is a software versioning and revision control system distributed under an open source license.
Subversion was created by CollabNet Inc. in 2000, but now it is developed as a project of the Apache Software Foundation, and as such is part of a rich community of developers and users.
It is a software that helps software developers to work together and maintain a complete history of their work.
Following are the goals of VCS:
● It allow developers to work simultaneously.
● Do not overwrite each other's changes.
● Maintain history of every version of everything.
Following are the different categories of VCS:
● Centralized Version Control System (CVCS)
● Distributed/Decentralized Version Control System (DVCS).
Subversion falls under centralized version control system, meaning that it uses central server to store all files and enables team collaboration.
It is the central place where developers store all their work. Repository not only stores files but also the history. Repository is accessed over a network, acting as a server and version control tool acting as a client.
The trunk is a directory where all the main development happens and is usually checked out by developers to work on the project.
The tags directory is used to store named snapshots of the project. Tag operation allows to give descriptive and memorable names to specific version in the repository.
Branch operation is used to create another line of development. It is useful when you want your development process to fork off into two different directions.
Here is the life cycle of Version Control System:
● Create Repository
● Perform Changes
● Review Changes
● Fix Mistakes
● Resolve Conflicts
● Commit Changes
The 'create' operation is used to create a new repository. Most of the times this operation is done only once.