java实现自动获取svn差异化列表

     今天在开发完毕的时候,又需要整理代码文件列表。顿时感觉很繁琐。虽然不是很费时,但是终于忍无可忍了。

    首先介绍一下,我们公司这里没有实现自动化发布,每次打补丁或者新开发功能,都需要人工手动上传代码,内部开发了一个代码上传文件工具,但是需要提供标准的文件列表。


    因为svn提交的时候提供的有代码列表,我咨询其他同事,他们一般都是通过全部复制此代码列表,然后再修改文件格式,使之符合上传文件列表的格式。

    其实可以通过svn的插件取到本次开发的代码列表,然后将这些文件转换成 可上传的代码列表样式。这样可以省去整理代码列表的时间,提高工作效率。


    最理想的的是在提交svn的时候,增加一个配置项,将代码列表按照可上传格式整理完毕,输出到桌面上。但是实现难度较大,需要和subclipse兼容;

    既然修改subclipse的难度太大,那么是否svn提供的有接口,能够获取到一个工程或者一个文件夹下的文件列表呢?这样的话,自己开发一个eclipse插件,对着工程或者文件夹点击右键,直接取到所有有修改的文件列表,规范成标准格式,输出到页面上,岂不简单?

    有了想法,兴趣就来了。大致梳理了一下,需要以下几步:

    (1)开发一个eclipse右键插件

    (2)当点击此按钮的时候,能够利用svn的接口,比对某个文件的状态,看此文件属不属于新增或者修改,如果属于则存起来

    (3)汇总所有取到的文件,修改文件格式。生成文件到桌面上。


    在网上查找了很多资料,都没人提供java版本的解决方案,都是在转载怎么利用show log来获取两个版本之间的差别,可能每个人的需求不一样吧,没人有我们这种相对比较原始的开发模式和上传模式。。。。

    各种艰辛,各种查找资料。。。

    在百度文库上找到了一个叫做svnkit的组件,貌似可以实现svn的接口。

    介绍:SVNKit是一个纯java的subversion客户端库,使用SVNKit无需安装任何subversion客户端,支持各种操作系统。

    资料地址:http://wenku.baidu.com/view/2f93208483d049649b665881.html


    通过eclipse插件和svnkit的结合,开发出了一个在eclipse下可以获取修改的文件列表的功能。

 插件引入之后,点击右键:


点击之后 ,生成文件列表到桌面,并给出提示。



问题:

    (1)对eclipse插件不熟悉,每次调试,需要打包,重启eclipse,如此反复,很麻烦。如果直接调试的话,会新打开一个ide,里面也没有工程,无法测试

    (2)获取工程后,如何获取对应的svn地址。这个通过google搜索,找到了淘宝几个小伙写的代码,里面有处理。taobao.reviewboard.学习了里面的代码。

    (3)生成文件的时候,获取桌面路径的代码

 public static File getDeskTopUrl() {
    	 FileSystemView fsv = FileSystemView.getFileSystemView();
		 return fsv.getHomeDirectory();
    }

    (4)校验文件状态的时候,区分去不去远程svn库进行校验。如果是的话,速度太慢,eclipse可能直接卡死。 将第二个参数置为false,则只在本地进行校验。

    client.getStatusClient().doStatus(commitFile, false);
    (5)对 .svn 了解的太少,网上的资料也比较少。对里面的entries进行解析,应该也能得到版本信息。


 

参考资料:

http://subclipse.tigris.org/

http://svnkit.com/

http://www.cnblogs.com/skyme/archive/2012/01/12/2320128.html
eclipse3.7插件构建自定义右键菜单

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值