Team collaborative work, sharing source files and versioning are key concepts of any software development effort. One of the most popular version control system for quite some time is the open-source CVS project. Nonetheless, CVS concepts have become insufficient in recent years. The aim of the CVS successor known as Subversion (SVN) is to avoid CVS conceptual problems, provide more quality solution, which is targeted community needs and finally gather CVS user's community.
SVN's user community has been growing continually since the release of the first version. SVN is positioned as a replacement for CVS, and it is highly probable that it will be widely accepted by the community in that capacity. SVN has reached enough maturity level to be used in production, and many companies and development groups previously using CVS are replacing it with SVN now. This process of adoption is clearly reflected in open-source communities like apache.org and sourceforge.net, which now use SVN repositories along with CVS.
Wide SVN support by development tools is a key concept for SVN evolution and popularity growth. From the other side, including SVN support to development tools can be also valuable for these tools themselves. Unfortunately Eclipse doesn't provide such support in standard distribution, which is an object for discussion in community during a long time. Instead of using third-party plugins for SVN community want to see SVN support in standard Eclipse distribution.
The Subversive project was started in second quarter of 2005 as a component of larger development activity where it played role of foundation for a rich client to the Polarion server. Because of this the project scope was wider then standalone SVN client for Eclipse, especially in following areas:
Code separation to different layers with different level of abstraction
Strong extensibility and reuse of different layers
Support of behavior customization by external plugins
Optimization in specific use-cases
Consistent and usable UI
One of the most important task since the beginning was to find the best way how the user interface components should interact with the SVN client access. This work brought to light necessity to define additional interfaces to standard JavaHL SVN client access interface. Major reasons for the extension were necessity to satisfy needs of higher layers, and to reach defined quality of UI behavior (e.g. progress reporting, ability to cancel an operation, etc.). Such extensions also allow to resolve problems, which were caused by limitations of standard JavaHL interfaces, like refactoring support. As a foundation for such improvements JavaSVN library was chosen. Together with JavaSVN authors Subversive team worked on implementation and verification of the SVN access interfaces improvements, which are further suggested for inclusion to standard SVN. As the result of such approach Subversive users can benefit from extended SVN functionality earlier then it can be included to standard SVN.
In March 2006, as soon as this project was reached enough maturity level, it was separated from larger project and released as the Subversive open source project on the Polarion Community site. Since the first public release a Subversive community grew to thousands of users, and hundreds of active community members. During a long time project ranked as one of the most popular in the Eclipse Plugin Central site.