Hi all, I am attempting to implement a svn plugin using svnClientAdapter. I
observed following problems when trying to create remote directories with
SVNKit (1.1.1). Here is the codes:
private void mkdir(){
String reposPath = "/filerepos1";
String clientType = SvnKitClientAdapterFactory.SVNKIT_CLIENT;
svnClient = SVNClientAdapterFactory.createSVNClient(clientType);
String fs = ISVNClientAdapter.REPOSITORY_FSTYPE_FSFS;
//Creates file repo
try {
svnClient.createRepository(new File(reposPath), fs);
} catch (SVNClientException svne) {
svne.printStackTrace();
}
try {
SVNUrl url;
//Creates new dir "aa"
url = new SVNUrl("file://" + reposPath + "/aa");
svnClient.mkdir(url, "");
}
catch (SVNClientException e) {
e.printStackTrace();
}
catch (MalformedURLException me) {
me.printStackTrace();
}
}
This will generate exception:
org.tigris.subversion.svnclientadapter.SVNClientException:
org.tigris.subversion.javahl.ClientException: svn: authentication cancelled
at
org.tigris.subversion.svnclientadapter.javahl.AbstractJhlClientAdapter.mkdir
(AbstractJhlClientAdapter.java:748)
at mysvn.SVNMkdir.mkdir(SVNMkdir.java:91)
I found if I add something like this before the code svnClient.mkdir(url,
"");
svnClient.setUsername("anything");
svnClient.setPassword(" ");
the directory will be created successfully. And even if I delete the above 2
lines of code, change "aa" to "bb", recompile, and re-run the program, it
will do the job too! However I run the code in debug mode and see
svnClient.myUserName and svnClient.myPassword are both null in the second
case. How could that pass the authentication???
I am new to subversion. I suspect that there is some caching going on with
subversion authentications. Or is it something to do with the authentication
mechanism of svnClientAdapter or svnKit? Could this be a bug? I think no
authentication should be needed for operations on file:/// repositories.
Thanks!
Shawn
Received on Mon Mar 26 19:04:06 2007