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 ...
随机推荐
- selenium python 时间控件的输入问题
对于时间的选择问题,查到的大部分为两种情况: 1.存在readonly属性的 2.没有readonly属性的 可直接赋值send_keys() 测试用例中刚好是没有readonly属性的 且定位不到弹 ...
- Idea 软件Project项目的jar依赖关系设置方法
1.查看所依赖的jar文件 (1)File--->Project Structure (2)Modules--->project01---->dependencies,可见所缺少的j ...
- Python第一天学习成果
1.变成可执行程序,在开头需加#!/usr/bin/env python找解释器 2.Python不支持常量,但建议用全大写就表明是常量 3.Unicode:2字节 ASCII:1字节 UTF-8(可 ...
- C++_代码重用3-私有继承
使用包含:易于理解,类声明中包含表示被包含类的显式命名对象,代码可以通过名称引用这些对象: 使用继承:将使关系更抽象,且继承会引起很多问题,尤其是从多个基类继承时. 私有继承所提供的特性确实比包含多. ...
- JAVA通过网站域名URL获取该网站的源码(2018
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.HttpURLConnect ...
- BZOJ - 1257 分块 详解
中文题面 这道题就是LightOJ某题的升级版 前段时间我是直接用√k前暴力后分块的处理方式,然后直接套个等差求和 这次看到了dalao的证明再次让我知道我好菜啊 在这里做下笔记,学习一下对于整除运算 ...
- HDU - 1085 母函数
年轻人的第一道母函数入门题 #include<bits/stdc++.h> using namespace std; const int maxn = 1000+2000+5000+1; ...
- vue $index,$key已经移除了
之前可以这样: <ul id="example"> <li v-for="item in items"> {{$index}} {{$k ...
- Android so 库按需打包
Fresco 大部分的代码是由Java写的,但是里面也有很多C++的代码.C++代码必须根据Android 设备的CPU类型(通常称为”ABIs”)进行编译.目前Fresco支持五种 ABI: arm ...
- PIE SDK Command、Tool、Control的调用和拓展
1.功能简介 在一个项目中,是通过小组成员共同开发的,难以避免的是当项目功能集成的时候会出现很多兼容性问题,开发讲究高内聚低耦合,利用Command.Tool和Control的使用,可以提升集成的效率 ...