Apache subversion often referred to as SVN (after the command name svn) is used by software developers to uphold current as well as past versions of files. These files could comprise of documentation, source code and web pages. It is mainly an open source version control system. It is distributed as a free software under the Apache License. It was founded in 2000 by CollabNet, Inc.
It is maintained as a haven for valuable data. The model offers a simple layout that can be used from individuals to large enterprises.
A repository is where developers store all their work. It is the focal point of any version control system. It controls the files as well as the history. The repository may be accessed over a network whilst the version control tool as the client. Clients then connect to the repository and retrieve/store changes from there. A client will make these changes and other people can then access these. Other’s can make changes too but these will be available to the client as a working copy.
Subversion offers two types of repository storage: Berkeley DB (deprecated) and FSFS.
- Berkeley DB:
Berkeley DB had been deprecated by the Subversion developers. They decided that they do not have the resources to continue with the development of two definite repository back-ends. Berkeley DB did receive quite some criticism which may have caused it’s termination. It had been announced that the easiest way to use this back-end was through a single server-process, rather than through a shared file system. The deprecation of this repository back-end meant that they would not focus on it’s improvement and at a given point in the future this back-end will be completely removed. However, bugs and security issues would still be fixed if found whilst running.
FSFS the newer Back-end promises to take less disk space due to reduced logging. It can also host directories with a large number of files. The Subversion 1.2 made this the default back-end for data storage.
A trunk is a directory where all the development takes place. Developers can check trunks to work on projects.
The tags directory stores names of specific versions within the directory. You can be descriptive here and provide unique tags.
Branches within Subversion helps when you want to create another line of development within your current project.
The working copy is a summary of your repository. The repository may be shared between various people but it cannot be modified directly. Each person is provided with their own working copy, which may keep their work separate from the others.
However, if changes are to be made to the central server, the process of commit may make your changes available to the rest of the team. Others can retrieve these changes by updating their working copies.
TortoiseSVN is a Subversion client. In order for it to work, the Subversion command line is not needed, this makes it inherently intuitive and accessible. Furthermore, it is free, even if needed for commercial use. The source code is also available easily leaving you to develop your own version if need be.
It is connected to windows explorer and all commands come under it. No unnecessary commands are exhibited and your file status is portrayed under windows explorer. All SVN protocols are supported. Helpful tools are included in this client, these tools help with vast problems that can arise. Tools included are the TortoiseMerge, TortoiseBlame and TortoiseDiff. Most importantly, extensive testing during the development stage has concluded that the SVN is vastly stable.