0

我想在 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 不兼容?

非常感谢

最好的问候西蒙

4

1 回答 1

0

好的,我现在解决了这个问题。简单的解决方案是使用 org.tigris.subversion 而不是 org.apache.subversion 库类。但问题是,为什么存在与 JavaHL 库不同的两个版本?

于 2014-09-10T11:39:58.500 回答