SVNKit
Encyclopedia
SVNKit is an Open Source
, pure Java
software library for working with the Subversion version control system. It is free to use on opensource projects but requires that you buy a commercial license to use to develop with commercial software. It implements virtually all Subversion features and provides API to work with Subversion working copies, access and manipulate Subversion repositories.
Features available in the native Subversion client, but missing in SVNKit:
scripts) that could not rely on the native Subversion presence.
wrapper of the native Subversion C
code. JavaHL could be used instead of SVNKit in most of the use cases.
However, SVNKit implements JavaHL API and thus both SVNKit and Subversion JNI wrapper could be used simultaneously to let user choose what suits his environment better. A fair comparison of SVNKit and JavaHL can be found in Subversion Book. Both SVNKit and JavaHL have their own advantages and disadvantages.
project.
For closed-source projects, a commercial license has to be purchased.
Subversion client library. Since then, the project has been renamed to SVNKit.
Versions of SVNKit prior to 0.9.3 were licensed under BSD license terms, later licensing scheme has been changed to dual licensing.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
, pure Java
Java (Sun)
Java refers to several computer software products and specifications from Sun Microsystems, a subsidiary of Oracle Corporation, that together provide a system for developing application software and deploying it in a cross-platform environment...
software library for working with the Subversion version control system. It is free to use on opensource projects but requires that you buy a commercial license to use to develop with commercial software. It implements virtually all Subversion features and provides API to work with Subversion working copies, access and manipulate Subversion repositories.
Features
Major SVNKit features are:- Repository access over http(s)://, svn(+ssh):// and file:// protocols.
- Support for all working copy operations.
- Repository administration: create, load, dump and replay operations.
- Low-level API that allows to interact with Subversion repository directly on Subversion protocol level.
- Complete JavaHL API implementation.
- SVNKit is known to work on WindowsMicrosoft WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, Mac OS XMac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, BSD, OS/2OS/2OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...
and OpenVMSOpenVMSOpenVMS , previously known as VAX-11/VMS, VAX/VMS or VMS, is a computer server operating system that runs on VAX, Alpha and Itanium-based families of computers. Contrary to what its name suggests, OpenVMS is not open source software; however, the source listings are available for purchase...
. - SVNKit is JDK 1.4 compatible.
Features available in the native Subversion client, but missing in SVNKit:
- Local access (file://) to Berkeley DBBerkeley DBBerkeley DB is a computer software library that provides a high-performance embedded database for key/value data. Berkeley DB is a programmatic software library written in C with API bindings for C++, PHP, Java, Perl, Python, Ruby, Tcl, Smalltalk, and most other programming languages...
based repositories (SVNKit only provides local access to default FSFS type of repositories). - Experimental "Serf" HTTP access (SVNKit only provides support for DAVDAVDAV may refer to:*WebDAV, an internet standards group*Dayanand Anglo-Vedic Schools System, an Indian educational society*Disabled American Veterans, an American veterans organization*Debaters Association of Victoria*German Alpine Club...
access). - Some of HTTP authentication methods (e.g. SSPISecurity Support Provider InterfaceSecurity Support Provider Interface is an API used by Microsoft Windows systems to perform a variety of security-related operations such as authentication....
) are not fully supported by the latest version of SVNKit.
Command line client
Part of SVNKit library is a command line Subversion client implemented on top of SVNKit. It is compatible with the native Subversion command line client and may be used in environments where it is not possible to install native Subversion or from within applications (e.g. Apache AntApache Ant
Apache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects....
scripts) that could not rely on the native Subversion presence.
Competition
JavaHL is a JNIJava Native Interface
The Java Native Interface is a programming framework that enables Java code running in a Java Virtual Machine to call and to be called by native applications and libraries written in other languages such as C, C++ and assembly.-Purpose and features:JNI enables one to write native methods to...
wrapper of the native Subversion C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
code. JavaHL could be used instead of SVNKit in most of the use cases.
However, SVNKit implements JavaHL API and thus both SVNKit and Subversion JNI wrapper could be used simultaneously to let user choose what suits his environment better. A fair comparison of SVNKit and JavaHL can be found in Subversion Book. Both SVNKit and JavaHL have their own advantages and disadvantages.
Licensing
SVNKit implements a dual licensing scheme. By default SVNKit is licensed under a licensing terms similar to those of GPL, that means, in general, that there are no restrictions or limitations on SVNKit usage as long as it is being used in an Open SourceOpen source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
project.
For closed-source projects, a commercial license has to be purchased.
History
In 2005, a software company called TMate Software Ltd. announced the 1.0.0 release of JavaSVN — a pure JavaJava (Sun)
Java refers to several computer software products and specifications from Sun Microsystems, a subsidiary of Oracle Corporation, that together provide a system for developing application software and deploying it in a cross-platform environment...
Subversion client library. Since then, the project has been renamed to SVNKit.
Versions of SVNKit prior to 0.9.3 were licensed under BSD license terms, later licensing scheme has been changed to dual licensing.
Adoption
SVNKit is known to be used in:- SmartSVNSmartSVNSmartSVN is a cross-platform Subversion client. It is written in Java and runs on Windows, Linux and Mac OS X.-Features:SmartSVN's main user interface is similar to those of typical file managers in that it has a directory tree on the left and a file table on the right. However, by default the...
Subversion GUIGuiGui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
client by the company Syntevo. - IntelliJ IDEAIntelliJ IDEAIntelliJ IDEA is a commercial Java IDE by JetBrains. It is often simply referred to as "IDEA" or "IntelliJ."-History:The first version of IntelliJ IDEA was released in January 2001, and at the time was the only available Java IDE with advanced code navigation and code refactoring capabilities...
IDEIntegrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
by the company JetBrainsJetBrainsJetBrains is a Czech software development company with offices in Prague, Czech Republic; Saint Petersburg, Russia; Boston, USA and Munich, Germany...
. - TeamCityTeamCityTeamCity is a Java-based build management and continuous integration server from JetBrains, creators of IntelliJ IDEA and ReSharper.It was first released on October 2, 2006.-Notable Features:...
Continuous IntegrationContinuous integrationIn software engineering, continuous integration implements continuous processes of applying quality control — small pieces of effort, applied frequently...
Server by the company JetBrainsJetBrainsJetBrains is a Czech software development company with offices in Prague, Czech Republic; Saint Petersburg, Russia; Boston, USA and Munich, Germany...
. - Subclipse - EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
Subversion plugin. - Subversive Team Provider for Eclipse - another EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
Subversion plugin. - JIRAJIRAJira may refer to:* JIRA, software-engineering package* Journal of Iranian Research and Analysis* Jira, also known as Zilla, fictional character* Jira * Jira...
bug tracking system by the company AtlassianAtlassianAtlassian is a software company based in Sydney, Australia which makes business enterprise software, targeted at software developers. On 1 September 2010, the World Economic Forum announced the company as a Technology Pioneer for 2011.- Products :...
. - FishEye revision control browser by the company AtlassianAtlassianAtlassian is a software company based in Sydney, Australia which makes business enterprise software, targeted at software developers. On 1 September 2010, the World Economic Forum announced the company as a Technology Pioneer for 2011.- Products :...
. - JDeveloperJDeveloperJDeveloper is a freeware IDE supplied by Oracle Corporation. It offers features for development in Java, XML, SQL and PL/SQL, HTML, JavaScript, BPEL and PHP...
by OracleOracle CorporationOracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
. - and many other products...
See also
- Subversion
- Version Control System
- JavaJava (Sun)Java refers to several computer software products and specifications from Sun Microsystems, a subsidiary of Oracle Corporation, that together provide a system for developing application software and deploying it in a cross-platform environment...