Java Subversion 库
我一直在研究 Subversion (SVN) 的 Java API。似乎有 3 个可用:
- JavaHL - SVN 项目的一部分。提供相对较低级别的 API
- svnClientAdapter - Subclipse 项目的一部分。提供相对高级的 API
- SVNKit - 与其他 2 个不同,它提供 SVN 协议的 100% Java 实现,即无需安装本机库。它提供了一个高级 API、一个低级 API、JavaHL 的实现以及使用 SVNKit 实现的命令行客户端。
我对这些 API 都没有实际经验,但假设上述情况属实,SVNKit 看起来显然是赢家。我从经验中知道,外表可能具有欺骗性,因此我正在寻找实际使用过这些库中的一个或多个库的人的反馈。正如上面所建议的,SVNKit 是绝对的赢家,还是有更好的选择。
我想答案将取决于我将使用 API 做什么,并且(也许令人惊讶)答案主要是写作,例如添加、更新和删除文件、创建项目和存储库、分支等。
谢谢! 大学教师
I've been researching Java APIs for Subversion (SVN). It seems there are 3 available:
- JavaHL - part of the SVN project. Provides a relatively low-level API
- svnClientAdapter - part of the Subclipse project. Provides a relatively high-level API
- SVNKit - unlike the other 2, this provides a 100% Java implementation of the SVN protocol, i.e. no native libaries must be installed. It provides a high-level API, a low-level API, an implementation of JavaHL, and a command-line client that uses SVNKit for it's implementation.
I have no practical experience with any of these APIs, but assuming the above is true, SVNKit looks like a clear winner. I know from experience that appearances can be deceiving, so am looking for feedback from someone who has actually used one or more of these libraries. Is SVNKit the runaway winner, as suggested above, or is there a better choice.
I guess the answer will depend on what I'll be doing with the API, and (perhaps surprisingly), the answer is mostly writing, e.g. adding, updating and deleting files, creating projects and repositories, branching, etc.
Thanks!
Don
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我使用过 SVNKit,它对我有用...他们的下载中有一些示例...我不太愿意通过这些示例来学习它,但是 此 链接对我有用...
我可以轻松实现以下功能:签入(本地副本(LC)到存储库(R)),签出(R 到 LC),提交(更新从 LC 到 Rep 的更改),将 Dir/File 导入到 R,从 R 中删除 Dir/File...
PS - 此 论坛也非常有帮助。
I've used SVNKit, it worked for me...they have some example's in their downloads... I was not so much comfortable learning it by those examples, but this link worked for me...
I could implement following functionality easily: CheckIn(Local Copy(LC) to Repository(R)), CheckOut(R to LC), Commit(Update changes from LC to Rep) , importing Dir/File to R, deleting Dir/File from R...
P.S. - This forum is also very helpful.