Using subversion as a repository
At our site, we have quickly moved to Ivy for dependency management. The speed of the uptake has created some issues around the management of the repository. We wanted to investigate managing our Ivy repository through Subversion. This would allow us to leverage the
interface of TortoiseSVN
security, auditing and content control of Subversion
Trail 1: Ivy+Svn
Ivy released a resolver which resolves artifacts against a Subversion repository. The Ivy people call this ivy+svn. Ivy release ivy+svn v0.4 in 2005. There doesnt appear to have been much activity since.
The ivy+svn home page is at
http://www.ivytools.org/ivy+svn.html. Its a single page that tells the user how to use ivy+svn. Below is the pre-work l had to do to get ivy+svn working.
Pre-work
Download ivy+svn 0.4
Download ivy+svn-0.4-with-dependencies.zip from
http://sourceforge.net/project/showfiles.php?group_id=137887&package_id=152354
Download dependencies
Download ivy-1.3.1-bin.zip from
http://incubator.apache.org/ivy/doc/releasenotes/1.3.1.html Download libdb42.dll from
http://subclipse.tigris.org/svn/subclipse/tags/svnClientAdapter/0.9.13/svnClientAdapter/ When prompted for a username type in guest. Leave the password field blank.
We need libdb42.dll because of the patch applied to svnClientAdapter 0.9.13 - see
http://subclipse.tigris.org/issues/show_bug.cgi?id=83 for more information.
Download svn-1.2.0-setup.exe from
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=469&expandFolder=469&folderID=0 Our site runs the SVN 1.3.1 server and deploys the SVN 1.2.0 client.
Install subversion
Run svn-1.2.0-setup.exe. This will make libraries available that are required by JNI in svnClientAdapter. The subversion bin directory is added to the path that JNI looks in.
Copy libdb42.dll to the subversion bin directory
Install SVN host certificate
I cant remember at what point l needed this or if l still do need it. To be safe, lm including it.
This blog,
http://blogs.sun.com/andreas/entry/no_more_unable_to_find, documents and provides a simple tool to capture a certificate and store it in a file, jssecacerts.
Build the tool and run it against your subversion host. It will produce a file, jseecacerts, which we will add to our Ant library later.
Configure ant
Copy the following file from ivy+svn-0.4-with-dependencies to ANT_HOME/lib
ivy+svn-0.4.jar
Copy the following files from ivy+svn-0.4-with-dependencies\lib to ANT_HOME/lib
svnClientAdapter-0.9.13.jar
svnjavahl-1.1.4.jar
Copy the following file from ivy-1.3.1-bin.zip to ANT_HOME/lib
ivy-1.3.1.jar
Copy the following file from where you ran InstallCert to ANT_HOME/lib
jssecaserts
Add the following to the ANT_OPTS environment variable
-Dosgi.os=win32
this is required for the issue 83 patch applied to svnClientAdapter
-Djavax.net.ssl.trustStore=C:\java\apache-ant-1.6.5\lib\jssecacerts
this is required for SSL
Post work
This is the end of the pre-work. You should now be able to create an ivy conf file as per the ivy+svn instructions.
Some issues we are still working through
authentication