Subversion
(1) Subversion was designed from the start to be an API.( Unlike CVS, which does not have an official API)
(2) Subversion is a set of libraries.(written in C)
(3) Subversion then provides a default UI, in the form of a command line interface, which uses these libraries.
(4) Subversion also provides language bindings for various programing languages so that these same libraries can be used in your language of choice.
JavaHL is the Java language binding provided by the Subversion project.
JavaHL is an official part of the Subversion project, not the Subclipse project.
JavaHL is a native (JNI) java interface for the subversion api.
Subclipse
Subclipse is an Eclipse plug-in providing support for Subversion.
There are two other related projects:
svnClientAdapter
svnClientAdapter is a high-level Java API of Subversion and is used by Subclipse.
svnClientAdapter is a high-level Java API of Subversion and is used by Subclipse.
svnClientAdapter is a Java project that was developed for Subclipse.
(1) It provides an even higher level of abstraction to the Subversion libraries.
(2) It also allows for different ways of accessing Subversion functionality.
Historically, the two options were to use the JavaHL library or the Subversion command line.
Recently, a third option was added and that is to use the JavaSVN library which is a 100% Pure Java implementation of the protocols used by Subversion. This option has the advantage of not requiring any native libraries installed on the client. Of course, since JavaSVN does not utilize the Subversion libraries it does not have the guaranteed compatibility that you can expect from JavaHL or the command line adapters. That being said, JavaSVN is tested against the same test suite that tests the Subversion command line, and passes those tests. JavaSVN does not currently support the file:// protocol but there are plans to add support for accessing fsfs repositories in the future.
SvnAnt
svnAnt is an Ant task that uses svnClientAdapter and provides access to Subversion from Ant scripts.
(1) SvnAnt is an ant task that provides an interface to Subversion.(即,使得在ant的build xml文件中,可以使用<svn>标签去做Subversion的工作。注:SvnAnt 支持大多数的Subversion 命令。)
svnAnt is an Ant task that uses svnClientAdapter and provides access to Subversion from Ant scripts.
(1) SvnAnt is an ant task that provides an interface to Subversion.(即,使得在ant的build xml文件中,可以使用<svn>标签去做Subversion的工作。注:SvnAnt 支持大多数的Subversion 命令。)
(2) With the help of the svnClientAdapter, <svn> task uses
1) javahl, if it can find this library, to access the Subversion.
2) if it can not find the javahl library, it uses the svn(.exe) command line interface (which must be present on your OS' path).