SVNKit学习——svn二次开发背景和闲谈(一)
开发背景:
简述现有流程:代码的合并、提交是以任务为最小单元的。例如A和B两个同学开发不同的任务,那就是两个任务号。合并的时候可能会先合并A的代码,在合并B的代码。
需求:SVN合并程序开发——一款能够满足测试人员合并代码的工具,通过输入任务号或版本号及选择合并分支,将对应的任务及版本合并到选择的分支上。
要求:避免SVN冲突。
工作要点:设计一个即能减少冲突,又能提交次数最少的流程。使用SVNKIT完成设计工具,最好是图形界面客户端。
梳理思路:
个人觉得在合并过程中冲突是无法完全避免的,A和B同时改一段代码,就有可能造成冲突。那么,现在我们要做的就是如何合并能够减少冲突。比如针对代码有交叉的任务,按照提交顺序合并代码?暂且按照这个方向做~
开发思路:
1.首先要对svn本身有一个良好的认识,基础。
2.学习svnkit的使用,核心。
3.图形界面客户端调用java代码,扩展。
工作:
当天晚上就对着官网开撸,英文水平虽然不是很高,但是配合各种翻译软件加自己的聪明才智勉强看懂。那么问题来了,官方除了大的框架介绍、java doc文档,没有可用的示例代码(示例代码的连接是wiki.svnkit.com,抛出服务器500异常)。当时脑子里有三个想法:1.想着要不要联系一下官方,2.搜以前大神些的博客,3.对着java doc自己看源码。可能是由于svnkit并不是特别的火,大家都喜欢用现成的svn工具,或者用git等等,所以网上使用svnkit做svn二次开发的例子少之又少,而且均是旧版本的例子。最终照着网上大神写好的文档和一些实例代码,结合javadoc+源码完成了一部分的功能(import、checkout、commit、update等),但是感觉个人从对svnkit的理解上并没有太大的深入。万般无奈之下找了下svnkit的邮箱,给他们发了一封邮件,附上问题链接和截图。然后继续对着javadoc进行功能开发。上午都没有收到回复,有点遗憾。不过后来一想,老外和咱们有时差,应该还在睡觉。终于到快下班的时候,不小心点到官网wiki上的链接,竟然进去了。特别高兴的登上邮箱,果然收到了对方的邮件(不得不佩服,人家解决问题的效率还是比较高的)
问题解决了好开心,尽快搞定svnkit后解决图形化界面的问题。还要和测试同学沟通合并的方案~
总结:
1.遇到自己解决不了的问题,除了自己思考和动手解决,也要在第一时间反馈给可能对解决问题有帮助的人。
2.希望自己能养成看源码的习惯,对着javadoc看源代码理解起来确实不错。
好了,结束我人生的第一批博客吧,晚上照着wiki继续搞一下,加油~
SVNKit学习——svn二次开发背景和闲谈(一)的更多相关文章
- SVN二次开发——让SVN、TSVN(TortoiseSVN)支持windows的访问控制模型、NTFS ADS(可选数据流、NTFS的安全属性)
SVN二次开发 ——让SVN.TSVN(TortoiseSVN)支持windows的访问控制模型.NTFS ADS (可选数据流.NTFS的安全属性) SVN secondary developmen ...
- PCI GXL学习之二次开发篇
作者:朱金灿 来源:http://blog.csdn.net/clever101 gxl的二次开发分初级和高级之分.初级是gxl提供了几百个模块供你编排成不同的作业.高级就是你可以编写你的算法模块,然 ...
- Zephyr学习(二)开发环境搭建
一.概述 Zephyr支持在Windows.Linux和MacOS环境下开发,这里只介绍如何在Windows下搭建zephyr的开发环境. 二.步骤 2.1安装msys2 msys2是一个Linux模 ...
- Struts2学习笔记二:开发流程
一:创建项目,添加依赖包 二:在web.xml配置核心控制器 <filter> <filter-name>struts2</filter-name> <fil ...
- Java学习笔记二:Java开发工具Eclipse的安装与使用
Java开发工具Eclipse的安装与使用 正如office一样我们在开发java语言过程中同样需要依款不错的开发工具,目前市场上的IDE很多,这里只演示Eclipse的安装: 一:下载软件: 1.下 ...
- mybatis学习记录二——mybatis开发dao的方法
4.1 SqlSession使用范围 4.1.1 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSession ...
- 单片机学习(二)开发板LED灯的控制
目录 开发板上LED灯相关的电路图 点灯 LED闪烁 LED流水灯 其他效果 灯光二进制计数器 进阶版流水灯 开发板上LED灯相关的电路图 这是P2相关7个引脚的电路图,在默认情况下它是直接接着VCC ...
- CSS学习(二):背景图片如何定位?
我们都知道background-position属性用来指定背景图片应该出现的位置,可以使用关键字.绝对值和相对值进行指定.在CSS Sprites中,这个属性使用比较频繁,使用过程中,我常混淆,经常 ...
- 学习MeteoInfo二次开发教程(十二)
1.添加新的Form窗体: 在解决方案资源管理器中,右键MeteoInfoDemo,“添加”,“Windows 窗体” 2.新窗体中添加好layersLegend1和Layout之后,要把layers ...
随机推荐
- JavaWeb学习笔记(三)—— Servlet
一.Servlet概述 1.1 什么是Servlet Servlet是是sun公司提供一套规范(接口),是JavaWeb的三大组件之一(Servlet.Filter.Listener),它属于动态资源 ...
- SprimgMVC学习笔记(十)—— 拦截器
一. 什么是拦截器? Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录 ...
- centos用ifconfig不显示ip地址的解决方法
解决办法: 第一步: 输入ip addr 发现ens33中并不包含IP内容 第二步: 输入cd /etc/sysconfig/network-scripts/ 回车 然后输入 ls 回车 第三步:选 ...
- tornado 10 长轮询和 websocket
tornado 10 长轮询和 websocket 一.长轮询 #在网页,我们经常扫码登录,那么问题来了,前端是如何知道用户在手机上扫码登录的呢 这里就需要用到长轮询 #长轮询 #客户端能够不断地向服 ...
- rest-assured的对象映射(序列化和反序列化)
rest-assured支持映射Java对象到Json和XML以及从Json和XML中映射到Java对象.Json映射需要在classpath 中有Jackson.Jackson 2或者是Gson,X ...
- BZOJ - 3224 可持久化Treap 树形操作
这个题目去年就做过了,这次稍微改了一下 都是基础操作 #include<iostream> #include<algorithm> #include<cstdio> ...
- Aop之使用Castle动态代理实现对方法的拦截
using System; using System.Linq; using Castle.DynamicProxy; namespace AopTest { class AopTest { stat ...
- JedisPool
package redis; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis. ...
- U盘安装CentOS 7错误 /dev/root does not exist, could not
问题: U盘安装CentOS 7,显示/dev/root does not exist, could not boot 解决方法: 1. 到windows里面查看U盘名称(例如 "Cento ...
- opencv java小应用:比较两个图片的相似度
package com.company; import org.opencv.core.*; import org.opencv.imgcodecs.Imgcodecs; import org.ope ...