SVNKit 结构详解
SVNKit结构介绍:
SVNKit 是一个100%纯java,用于在java应用程序中与Subversion版本控制系统一起工作的客户端库。它的结构可以表示为:
从上图可以看出,SVNKit有两个层次的API:
1、 高级层用于管理工作拷贝。这一类API让你管理工作拷贝就像使用Subversion命令行客户端一样。
2、 低级层类似Subversion仓库访问层。它类似直接在Subversion仓库上工作的驱动器。
高级层API
高级API 类似Subversion的命令行客户端的命令,所有管理工作拷贝的操作逻辑的分配在不同的SVN*Client类中。例如,所有的工作拷贝的更新操作(check out,update,switch等)都由SVNUpdateClient一个类执行。这些操作在对应该类中的方法的参数也和Subversion命令行客户端的参数类似。当确实需要访问Subversion仓库时,高级API使用低级API 来访问。
低级层API
这一层代表着Subversion仓库访问抽象协议层。这一层有两个重要的方面:
由于工作拷贝的操作比这一层高,因此它不处理工作拷贝的操作。这一层知道怎样通过不同的协议与Subversion仓库对话(实际上,这一层实现了这一协议)。
这一层把数据结构当做另一种像树一样结构并且加上了版本控制的抽象数据结构,数据结构更加抽象,而不只是文件和文件夹。
SVNKit支持的仓库访问协议:
从版本1.1.0开始,SVNKit支持一下仓库访问协议:
远程访问
从上图中可以看到,SVNKit支持两种方式通过网络访问Subversion仓库:
svn://,这一种也包括 svn+xxx的方式 //如(svn+ssh://)
http://,这一种也包括安全模式 https://
本地访问
从1.1.0版本开始,SVNKit支持操作本地计算机的Subversion仓库(通过file:///方式)。但是有一个限制:通过file:///协议,SVNKit只能够与FSFS类型的仓库一起工作。
往前的文章可在我的博客中找到,持续更新中…… by xiangxji@gmail.com