我想在 Windows 7 64 位机器上用一个小型 Java 程序来控制我的 Subversion 环境(Sliksvn 1.8.10)。我需要使用 JavaHL (1.8.x) 而不是 SVNKIt。我已经实现了一个功能来签出存储库,将文件添加到工作副本并将文件提交到存储库。结帐和添加功能到目前为止工作正常。现在的问题是,提交功能不能正常工作。
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 。我想也许,这个过程在 der subversion 环境中中断,我的函数没有结果。在这个过程之后,提交项目仍然处于 svn 状态“项目计划添加”。
几天以来,我使用不同版本的 JavaHL.jar api 解决了这个问题,但没有成功。最大的问题是,我没有收到错误消息,也不知道代码有什么问题。
有人知道我的提交功能有什么问题吗?也许 libsvnjavahl-1.dll 文件与某些 JavaHL Api 不兼容?
非常感谢
最好的问候西蒙