开发背景:

  简述现有流程:代码的合并、提交是以任务为最小单元的。例如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二次开发背景和闲谈(一)的更多相关文章

  1. SVN二次开发——让SVN、TSVN(TortoiseSVN)支持windows的访问控制模型、NTFS ADS(可选数据流、NTFS的安全属性)

    SVN二次开发 ——让SVN.TSVN(TortoiseSVN)支持windows的访问控制模型.NTFS ADS (可选数据流.NTFS的安全属性) SVN secondary developmen ...

  2. PCI GXL学习之二次开发篇

    作者:朱金灿 来源:http://blog.csdn.net/clever101 gxl的二次开发分初级和高级之分.初级是gxl提供了几百个模块供你编排成不同的作业.高级就是你可以编写你的算法模块,然 ...

  3. Zephyr学习(二)开发环境搭建

    一.概述 Zephyr支持在Windows.Linux和MacOS环境下开发,这里只介绍如何在Windows下搭建zephyr的开发环境. 二.步骤 2.1安装msys2 msys2是一个Linux模 ...

  4. Struts2学习笔记二:开发流程

    一:创建项目,添加依赖包 二:在web.xml配置核心控制器 <filter> <filter-name>struts2</filter-name> <fil ...

  5. Java学习笔记二:Java开发工具Eclipse的安装与使用

    Java开发工具Eclipse的安装与使用 正如office一样我们在开发java语言过程中同样需要依款不错的开发工具,目前市场上的IDE很多,这里只演示Eclipse的安装: 一:下载软件: 1.下 ...

  6. mybatis学习记录二——mybatis开发dao的方法

    4.1     SqlSession使用范围 4.1.1     SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSession ...

  7. 单片机学习(二)开发板LED灯的控制

    目录 开发板上LED灯相关的电路图 点灯 LED闪烁 LED流水灯 其他效果 灯光二进制计数器 进阶版流水灯 开发板上LED灯相关的电路图 这是P2相关7个引脚的电路图,在默认情况下它是直接接着VCC ...

  8. CSS学习(二):背景图片如何定位?

    我们都知道background-position属性用来指定背景图片应该出现的位置,可以使用关键字.绝对值和相对值进行指定.在CSS Sprites中,这个属性使用比较频繁,使用过程中,我常混淆,经常 ...

  9. 学习MeteoInfo二次开发教程(十二)

    1.添加新的Form窗体: 在解决方案资源管理器中,右键MeteoInfoDemo,“添加”,“Windows 窗体” 2.新窗体中添加好layersLegend1和Layout之后,要把layers ...

随机推荐

  1. C++_新特性总结与未来的路

    了解C++之后,可以阅读一些高级主题和面向对象编程相关的书籍: OOP有助于开发大型的项目,并提高其可靠性: OOP方法的基本活动之一就是发明能够模拟当前情况的类.当前情况被统称为问题域. 由于实际问 ...

  2. paraview添加vector

    https://youtu.be/cygVdhn-kG0 (须自行FQ)

  3. [CSU1911]Card Game(FWT)

    [vjudge-CSU1911] FWT_or #include<cstring> #include<iostream> #include<algorithm> # ...

  4. C. Enlarge GCD Codeforces Round #511 (Div. 2)【数学】

    题目: Mr. F has nn positive integers, a1,a2,…,an. He thinks the greatest common divisor of these integ ...

  5. LightOJ - 1032 数位DP

    #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...

  6. HDU - 2256 矩阵快速幂 带根号的递推

    题意:求$ [(\sqrt{2}+\sqrt{3})^{2n}] mod 1024 $ 分析: 把指数的2带入 原式等于 $ [(5+2\sqrt{6})^n] $ 有一个重要的结论是n次运算后其结果 ...

  7. vue+webpack新项目总结1

    头部组件的  标题  根据不同的页面显示不同的标题 第一步: 在store 里面初始化全局变量 // vuex 通过状态管理数据 import Vue from 'vue' import Vuex f ...

  8. ThinkPHP vendor 方法导入第三方类库

    ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展 ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项 ...

  9. Hibernate复合主键的注解

    [转自] http://blog.csdn.net/happylee6688/article/details/17636801 最近做项目用到了Hibernate框架,采用了纯面向对象的思想,使用OR ...

  10. 学习python-跨平台获取键盘事件

    class _Getch: """Gets a single character from standard input. Does not echo to the sc ...