Java_SVN客户端开发

开发环境

  1. 服务器端
  1. 客户端

服务器与客户端SVN版本

1、服务器1.7.4,客户端版本要注意与服务器的兼容

2<dependency conf="default" org="org.tmatesoft.svnkit" name="svnkit" rev="1.7.8"/>

建立版本库

创建

计算机生成了可选文字: l):气DFU缺nu\To护toiseSUH、为in>svnadnincreateJ:贻unTest、、epositor,

配置

计算机生成了可选文字: l):、DFU缺nv\To护toiseSUH勺〕in>editJ:墉unTest勺.eposito护夕\Conf墉unse护,e。conf

启动

计算机生成了可选文字: D:从DFU缺nu\To护toiseSUH、bin>sunserue一d一护J:\SunTest勺,eposito护夕

分清楚本地操作和远程操作

请考虑

1、是客户端先对工作副本操作这后再提交给服务器?

2、是直接操作远端服务器然后等待客户端副本更新?

3、高版本的SVNClient提交数据可以兼容低版本的服务器

4、低版本的SVNClient提交数据不兼容高版本的服务器,会抛出异常,提示升级客户端

5、有这种情况,Java应用中使用低版本的客户端,同时操作系统中使用高版本的客户端,两客户端对应的SVN服务器相同(SVN服务器的版本与Java应用程序SVN客户端版本一致),同时两客户端操纵的文件副本位置也相同。

默认高版本客户端是需要对本地副本目录进行转换才能正常识别的,当使用高版本客户端转换后就会出现低版本客户端会操纵的是高版本的工作副本,这样异常就发生了(SVN服务器会提示更新低版本的客户端)。

SVNKit#Java实现的SVN客户端工具

SVNKit提供了两套API,(High Level)高级些的API就是(Low Level API)低级别API的封装。svn客户端最终目的:

1、构造原始svn命令

2、提供Java环境下操作SVN的可复用工具

3、封装和抽象出与svn密切相关的对象结构用于辅助具体应用场景

分析SVNKit High API的主要结构

1SvnOperation是抽象的SVN命令的父类,所有SVNKit客户端支持的svn命令都要有一个Java类与其对应

2SvnOperationRunner负责定义各svn抽象命令的执行处理逻辑,操作SVN本地工作副本或远端仓库资源

3SvnOperationFactory的主要责任

3.1、提供了统一的SvnOperation执行入口

3.2、提供SvnOperationSvnOperationRunner的映射

4、图示

4.1SvnOperation结构

计算机生成了可选文字: T"ehieroc玉了of'or'.t一ate,oft.,。.core.,cZ.IS,.operatio词甲曰O曰15竹Ioperatio动ptionsFrcorewcZS竹刃peration钾>-一orgtmatesoft.s妞atesofts,丁匕corewcZeA灿:tr。。ts钧饰date仅>一。r:tm。te,。ft,。。。re;0sVI£he。kout一,;tm。te:。fts二。。rewCZQs砚卫xP。rt〕上、十。ate:。f,:。。010w.=2Qsvnswitch二、sVn饰aateweZe曰

4.2SvnOperationRunner结构

计算机生成了可选文字: 妙丝OTyp1eroch萝of'or'_t一at.,oft_,。_。ore_,cZ_15村operatiod甲曰州〕r·er诬t1onR~er<V.锐励湃r。ti。心~妊T><y,tmate'oft,、,比coreweZ曰一OY名T>一org白eAs竹工。。doperati。nR~er<V,tmatesoft.5,丁1.coreT>一orgtmate:oftioter。叼.SV了1COr呢{困eAs诚四per。ti。心~er<V,T>一。r:.tm。te:。ft:。。。!由eAs湘i心~er<V,T>一。r:,。。te,。f,.svn.。。reinter白e八s诚em。teop。r。ti。n丑~er<V,T>一。r:tm。te:。ft.:,.。。);es竹田妞ep。:ToRep。:copy一or'toate:oft.:二.core.in!es诚em。te灿。t。t。一。r;.tm。te,。ft,vn.。。re.intern!es诚em。tec。t一。r;.tm。te:。ft,vn。。re.i。tern以.,C{一es们讯em。teDiff一。r'tm。te,。ft.,。coreintern公w!自只.R,m。,,nof仅11。。。,福二,一。,,,m,.,。。f,,.。n,,。

4.3、总体结构

计算机生成了可选文字: 云nt汀古出犯.ISvn伪,ra石onRun阶r{ab鱿ra阅‘陀百f日亡e,SvnobjectRec创”r{a比打日Ct]石附省f出犯,.翻n街姗葫0n0例训sprovi公盯恤。写厅.Ct}公曰伪姗创初旧阳n甘和洲r州}S明Opera七onSvnopera五onFactory!L_____月切口R目川油好饭m川巨甘卜伐r,尹IAbstraCts丫nc~itsvnRemO奄创阴氏O介

导入

层级概念(SVNDepth),在导入时通过fromRecurse(true/false)来设置是否递归原目录

请考虑

1、导入文件,需要注意远端SVN地址不能为目录

2、导入文件夹,导入文件夹就涉及到层级和递归的概念

总结要点

SVN客户端的操作可分两大块一块是本地副本的操作,一块是远端服务器版本的操作。

从代码结构分析来看单纯SVN命令是不区分本地还是远程,在命令执行阶段才会区分本地或远程。

操作本地副本完成后总也得提交给远端服务器这就是常见的“你提交SVN了么?”。

参考资料

  1. http://svnkit.com/documentation.html
  2. http://svnkit.com/kb/
  3. http://sqljet.com
  4. http://blog.csdn.net/feiren127/article/details/7551782
  5. http://wenku.baidu.com/view/2f93208483d049649b665881.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值