SVNKit
Encyclopedia
SVNKit is an Open Source
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 Windows
    Microsoft Windows
    Microsoft 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 X
    Mac OS X
    Mac 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...

    , Linux
    Linux
    Linux 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/2
    OS/2
    OS/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 OpenVMS
    OpenVMS
    OpenVMS , 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 DB
    Berkeley DB
    Berkeley 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 DAV
    DAV
    DAV 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. SSPI
    Security Support Provider Interface
    Security 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 Ant
Apache 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 JNI
Java 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 Source
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...

 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 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...

 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:
  • SmartSVN
    SmartSVN
    SmartSVN 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 GUI
    Gui
    Gui 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 IDEA
    IntelliJ IDEA
    IntelliJ 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...

     IDE
    Integrated development environment
    An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

     by the company JetBrains
    JetBrains
    JetBrains is a Czech software development company with offices in Prague, Czech Republic; Saint Petersburg, Russia; Boston, USA and Munich, Germany...

    .
  • TeamCity
    TeamCity
    TeamCity 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 Integration
    Continuous integration
    In software engineering, continuous integration implements continuous processes of applying quality control — small pieces of effort, applied frequently...

     Server by the company JetBrains
    JetBrains
    JetBrains is a Czech software development company with offices in Prague, Czech Republic; Saint Petersburg, Russia; Boston, USA and Munich, Germany...

    .
  • Subclipse - Eclipse
    Eclipse (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 Eclipse
    Eclipse (software)
    Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

     Subversion plugin.
  • JIRA
    JIRA
    Jira 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 Atlassian
    Atlassian
    Atlassian 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 Atlassian
    Atlassian
    Atlassian 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 :...

    .
  • JDeveloper
    JDeveloper
    JDeveloper 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 Oracle
    Oracle Corporation
    Oracle 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
  • 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...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK