我想在Windows 7 64位计算机上使用小型Java程序控制我的Subversion环境(Sliksvn 1.8.10)。我需要使用JavaHL(1.8.x)而不是SVNKIt。我已经实现了一个功能来检查存储库,将文件添加到工作副本并将文件提交到存储库。结帐和添加功能到目前为止工作正常。现在的问题是,commit-funktion无法正常工作。
public void commit()
{
Set<String> paths = new HashSet<String>();
paths.add( "C:\\Users\\XXX\\Documents\\SVNTEST\\Test3" );
Depth dep = Depth.infinity;
);
CommitMessageCallback handler = new CommitMessageCallback()
{
@Override
public String getLogMessage(Set<CommitItem> arg0) {
// TODO Auto-generated method stub
System.out.println(arg0.size());
return null;
}
};
CommitCallback callback = new CommitCallback()
{
@Override
public void commitInfo(CommitInfo arg0) {
// TODO Auto-generated method stub
System.out.println(arg0.getAuthor());
}
};
try
{
client.commit( paths, dep, true, false, null, null, handler, callback );
}
catch( ClientException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当我处理提交函数时,我从CommitMessageCallback函数获取提交项的数量。这仍然有用。我现在的问题是,没有从CommitCallback函数接收任何CommitInfo。我想也许,这个过程在颠覆环境中崩溃了,我的功能没有结果。在此过程之后,提交项仍处于svn状态“项目已计划添加”。
我使用不同版本的JavaHL.jar api几天就解决了这个问题,但是没有成功。最大的问题是,我没有收到任何错误信息,我不知道代码中有什么问题。
有人知道我的提交功能有什么问题吗? 也许libsvnjavahl-1.dll文件与某些JavaHL Api不兼容?
非常感谢
最好的问候西蒙
答案 0 :(得分:0)
好的,我现在解决了这个问题。简单的解决方案是使用org.tigris.subversion而不是org.apache.subversion库类。但问题是,为什么存在两个与JavaHL库不同的版本?