SVN or Apache Subversion is a free software for version control of files and directories for Open Source Software distribution and used by hosts like WordPress. If you are a WordPress user, you must have seen in plugin download pages this SVN link. We previously wrote about Git, SVN is done for versioning. The versioning is done on a central repository (like WordPress) in the form of a simple revision. If there are changes to the content distributed on the computers of the developers, the repository and the public repository updates them.
What is this SVN or Apache Subversion is ?
We have developed a WordPress Plugin and we will upload it to WordPress.org, so that every WordPress user can use it either through WordPress Admin Plugin installation page or manually can download it. There are few factors :
- The Server of WordPress.org is not mine, so its not possible to allow me full access but partial access is needed so that I can upload it to WordPress Server
- The Plugin will get updated with time, there is a need to keep the record and files of older versions too.
- There must be a system, so that apart from me, no one can change it by any means, otherwise hackers will push malwares
All these points needed to be controlled, some what easily by using a special software system. This Software is SVN or Apache Subversion. SVN is not for only WordPress, SVN is used by almost all Open Sources, we gave a practical example of usage of SVN. SVN is developed by CollabNet.
How SVN or Apache Subversion Works
Both the target host server and developer’s server, in ideal situation is Linux OS. So, the fact is, if I create a folder for the plugin to be distributed (or anything else) and install the SVN software, I can synchronize through my approved account as WordPress Developer. So, except the peoples who can control the Server, none of the others can actually do some wrong with my plugin.
Dependencies of SVN
Apache Portable Runtime library is the minimum need for SVN. Git clients can be used for SVN. For Windows, there might be other softwares needed. As with Linux / UNIX the basic command line applications are already integrated in the Operating system, by default, using SVN from Linux / UNIX based system through Command Line Interface is easier. For Windows, there are packages.
Graphical user interfaces for SVN
For bigger plugins or softwares, it is not very funny to use SVN using Command Line Interface. For Windows, using SVN through cmd is more painful as there is no syntax highlighting. Unfortunately there is no good and robust CLI agent (by default) that works like PuTTY for Windows, although PuTY can be used with SVN in a roundabout way. For various reasons, people developed Softwares for SVN that works on Windows, apart from Mac and Linux. For Windows probably the most known SVN tool with a GUI is TortoiseSVN.