SVNKit

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
SVNKit
DeveloperTMate Software Ltd.
Initial releaseNovember 5, 2004 (2004-11-05)
Stable release
1.10.3 / 29 January 2021; 5 years ago (2021-01-29)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inJava
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    TypeSoftware Library
    LicenseDual license: Strong copyleft-style license for open-source projects and commercial license for closed source projects
    Websitehttps://svnkit.com/

    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 proprietary software. It implements virtually all Subversion features and provides API to work with Subversion working copies, access and manipulate Subversion repositories.

    Features

    [edit | edit source]

    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, Mac OS X, Linux, BSD, SunOS, OS/2 and OpenVMS.
    • SVNKit is JDK 1.5 compatible.

    Features available in the native Subversion client, but missing in SVNKit:

    • Local access (file://) to Berkeley DB based repositories (SVNKit only provides local access to default FSFS type of repositories).
    • Experimental "Serf" HTTP access (SVNKit only provides support for DAV access).
    • Some of HTTP authentication methods (e.g. SSPI) are not fully supported by the latest version of SVNKit.

    Command line client

    [edit | edit source]

    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 scripts) that could not rely on the native Subversion presence.

    Competition

    [edit | edit source]

    JavaHL is a JNI 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.

    Licensing

    [edit | edit source]

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

    For closed-source projects, a commercial license has to be purchased.

    History

    [edit | edit source]

    In 2005, a software company called TMate Software Ltd. announced the 1.0.0 release of JavaSVN — a pure Java 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

    [edit | edit source]

    SVNKit is known to be used in:

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').