This library provides Ant task(s) as wrapper(s) over the svn command
line utility.

Alternative approaches like JNI or even a native Java SVN client exist
and have been taken by other teams.  In particular we know (this list
is certainly incomplete):

* <http://subclipse.tigris.org/svnant.html> using javahl JNI bindings
  of subversion

* <http://tmate.org/svn/ant.html> using a pure Java SVN client

each of which provides Ant tasks.

The task(s) of this library only provides very rudimentary support for
SVN, matching what the traditional Ant task(s) for CVS could do.

If you need more than what this library provides, we encourage you to
check out the existing alternatives.

