Das Versionskontrollsystem Subversion ist eine in C geschriebene Programmbibliothek. Man hat verschiedene Nutzerschnittstellen, wie z.B. ein Kommandozeilentool "svn" zur Verfügung, dass diese Bibliothek über eine definierte Schnittstelle (API) benutzt.
Zusätzlich stellt das Entwicklerteam mehrere Sprachbindungen für andere Programmiersprachen zur Verfügung, damit diese Bibliothek auch von Drittsoftware (in anderen Programmiersprachen) benutzt werden kann. Die mitgelieferte Sprachbindung für Java nennt sich z.B. JavaHL.
Ein Vorteil von Java ist es, dass man entwickelte Software plattformübergreifend nutzen kann. Verwendet man JavaHL ist dies nicht mehr gegeben, da man die native Subversion-Bibliothek auf den Zielsystem installiert haben muss, um Subversion in Java zu nutzen.
Um dieses Problem zu lösen, existiert ein Projekt namens "
SvnKit" (ehemals "JavaSVN"), dass sich zur Aufgabe gemacht hat, eine 100%ige Java-Implementierung des Subversion-Protokolls zu realisieren.
Einige Dritthersteller, wie z.B.
Atlassian (Jira) oder
CollabNet (Subclipse), sind dazu übergegangen, von JavaHL auf SvnKit umzustellen.