开发背景:

  简述现有流程:代码的合并、提交是以任务为最小单元的。例如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. linux中tr的功能多多

    功能 通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能. 您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来 ...

  2. LeetCode215. 数组中的第K个最大元素

    215. 数组中的第K个最大元素 问题描述 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 示例 1: 输入: [3 ...

  3. [一首诗] Life and Death 生与死

    Life and Death 生与死 I strove with none, 我和谁都不争, for none was worth my strife, 和谁争我都不屑: Nature I loved ...

  4. 加、减、乘、除 高精度 string

    #include<stdio.h> #include<string> #include<string.h> #include<iostream> usi ...

  5. HDU - 4763 找出特殊规律的串

    在一个Text串中找出Pattern串E以满足EAEBE,A B可以是任意串 看一眼觉得woc好难,后来看一下样例AB为空也可以 找观察一下E既是前缀也是后缀,很容易联想到next 最优情况EEE,那 ...

  6. Action执行时间过滤器

    public class AccessStatisticsAttribute : ActionFilterAttribute { /// <summary> /// log4net 日志 ...

  7. [转] Akka实战:构建REST风格的微服务

    [From] http://www.yangbajing.me/2015/11/27/akka%E5%AE%9E%E6%88%98%EF%BC%9A%E6%9E%84%E5%BB%BArest%E9% ...

  8. flask之--钩子,异常,上下文,flask-script,模板,过滤器,csrf_token

    一.请求钩子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: - 在请求开始时,建立数据库连接: - 在请求开始时,根据需求进行权限校验: - 在请求结束时,指定数据的交互格式: ...

  9. MySQL 小抄

    1. 登录 mysql - u root -pEnter Password: 2. 查询端口 mysql> show global variables like "port" ...

  10. VI设计对于企业文化建设的重要性

    VI设计对于企业文化建设非常重要,包括企业品牌形象塑造.企业价值提炼.企业文化建设等有着非常重要的作用.VI设计的发展趋势是什么? 第一 从静态到动态 中国过去一段时间以来的VI设计,也是以一种静止和 ...