`
56553655
  • 浏览: 204761 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

姜博:SVN使用规范

阅读更多

SVN使用规范

1.提交必须写注释

清晰的提交注释有助于别人理解你所做的修改,出现问题时能够快速定位,也有助于项目经理把握开发进度。所以,在提交代码时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。

2.禁止提交未编译通过的代码

代码在提交之前,首先要确认自己能够在本地编译,保证主干永远是畅通的。如果引用了新的类库,确保相应的pom.xml文件也已提交。

  • 单元测试通过
  • 应用启动正常

3.不要提交自己不明白的代码

代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。

4.不要提交本地自动生成文件

eclipse会自动生成一些工程文件如.classpath,.settings等文件,以及项目编译生成的临时文件target, .class等等。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。通常在新建项目或模块时会设置相关的ignore属性,具体设置方法详见设置ignore,external属性

5.按功能模块整体提交,提交不要过于频繁

完成一个功能模块后,将该模块相关修改作为整体提交。不宜分离过于频繁提交,使功能上不同步,并无限增大svn版本号

6.提交后svn st检查是否有遗漏

提交后svn st检查下是否有冲突,有遗漏的代码

7.尽量使用命令提交

eclipse中的svn插件很便捷,但有时会存在漏提交,或多提交的问题,如总控的pom.xml在eclipse中看不到,易造成漏提交,尽量使用svn命令来提交。

  • 命令会用了,原理就知道了

8.慎用锁定功能

在项目中要慎用锁定的功能,在你锁定了一个文件之后别人就无法继续修改提交该文件,虽然可以减少冲突的发生率,但是可能会影响项目组中其他人员的工作。平时只有在编辑那些无法合并的文件(例如图片文件,flash文件等)时,才适当的采用锁定操作。

  • 如果你的需求开发跨度很大,建议每周合并一次主干

SVN使用技巧

常用命令

1.svn co [svn地址] [本地目录]:签出工作拷贝

svn co http://svn.alibaba-inc.com/repos/ali_cn/olps/rate/branches/20100817_xfc_DEV rate (【注】:自定义目录,本地目录)

2.svn st:查看工作拷贝状态

svn st
X       bundle/rpm/framework
M       quickconfig.sh
X       deploy/jboss_server
每行首字母的含义:
"!"表示:本地执行了"rm -rf",但是未执行"svn del"的状态。
"?"表示:本地新加了一个文件,但是未执行"svn add"的状态。
"A"表示:本地新加了一个文件,且执行了"svn add"的状态。
"X"表示:执行了"svn external"的状态。
"D"表示:本地执行了"rm -rf",且执行了"svn del"的状态。
"M"表示:本地修改了该文件时的状态。
"C"表示:冲突状态,是重点关注状态之一。

3.svn diff:比较两个版本拷贝的区别
比较本地文件与与拷贝版本的区别

svn diff web/com/alibaba/china/app/levit/expo/web/action/DeclareAction.java

结果中行首字母"-"表示本地版本,"+"表示工作拷贝版本
4.svn info:查看工作拷贝信息
通常用来查看当前拷贝的svn地址
5.svn revert:取消本地所做修改

$svn revert quickconfig.sh
Reverted 'quickconfig.sh'

6.svn log:查看提交日志信息
7.svn add:添加一个文件
8.svn cleanup:递归清理工作拷贝
9.svn ci: 提交工作拷贝

svn ci quickconfig.sh -m "标注"

10.svn update:更新本地拷贝
遇到工作拷贝已锁定的错误时,可以用该命令清除
11.最重要的------svn help:查看帮助

更多常用命令参见肖芳城【技术】svn命令小集

设置ignore,external属性

windows下使用乌龟设置的方法参见肖芳城【技术】svn命令小集#四、乌龟的使用

1.linux下命令方式

例:设置expo目录的ignore属性,忽略target, class, .classpath, .settings, .project
步骤:
1.svn propedit svn:ignore expo
2.这是出现一个vi编辑框,在里面加入要忽略的目录文件:
target
class
.classpath
.settings
.project
3.保存退出,会显示xxx的ignore属性被设置。可以用svn st查看那下效果。

2.eclipse插件方式

安装过subeclipse插件的可以通过插件设置属性
1.再需要设置的目录上右键->Team->Set Property


 
2.在弹出的对话框中设置属性


 
3.如果已经设置过相关属性,要做修改,可以在Team->Show Property中进行编辑


 

分支合并

1.创建新分支(现在该步骤在aone上完成)

svn cp 主干地址 新分支地址 -m "标注"

2.签出新分支

svn co 新分支地址 本地目录

3.检查旧版本版本号,在旧版本目录下执行

svn log --stop-on-copy

找到创建该旧分支时的版本号xxxx,通常是最小的那个
4.进入到新分支目录下执行合并操作

svn merge -r xxxx:HEAD 旧分支地址

5.使用svn st查看合并后的状态,查看是否存在冲突
6.冲突解决后,别忘了svn ci提交合并后的代码
参见分支的创建与合并

  • 大小: 33.5 KB
  • 大小: 21.3 KB
  • 大小: 14.2 KB
分享到:
评论

相关推荐

    2021-2021年上学期班主任工作总结..docx

    课件的使用是教学资源的重要组成部分,有助于增强课堂互动性和吸引力。 2. 差异化教学:面对班级人数增加和学生学习能力差异的问题,教师采取了耐心辅导差生的方法,通过额外的练习和关注,帮助他们提升学习水平,...

    摄影协会成立申请书.doc

    申请人姜博代表全体发起人,恳请系团委领导、学生处能够给予摄影协会成立的支持与批准。在学院、系里的关心和社团联合会的帮助下,摄影协会有信心成长为一个优秀的校园社团,为活跃校园文化艺术氛围,丰富同学们的...

    基于spring boot框架药品购买系统-a7imn57w.zip

    基于spring boot框架药品购买系统_a7imn57w.zip

    "基于滑模磁链的改进无位置控制技术:减小转矩脉动与抖振,降低电流THD并优化参数依赖",结合滑模和磁链的改进滑模磁链无位置控制,相比于传统的滑模观测器,能有效减小转矩脉动和抖振现象,降低电流THD

    "基于滑模磁链的改进无位置控制技术:减小转矩脉动与抖振,降低电流THD并优化参数依赖",结合滑模和磁链的改进滑模磁链无位置控制,相比于传统的滑模观测器,能有效减小转矩脉动和抖振现象,降低电流THD。 传统的磁链观测器对电气参数非常敏感,改进的磁链观测器将滑模控制率和磁链观测器结合,有效降低了对参数的依赖。 该模型针对特定的小电感电阻电机进行了验证。 ,核心关键词:滑模磁链无位置控制;改进滑模;磁链观测器;传统滑模观测器;电气参数依赖;电流THD;小电感电阻电机验证,好的,根据您提供的关键信息,提炼的标题如下: "结合滑模与磁链技术的改进型无位置控制策略,有效减小抖振与电流THD" 此标题直接体现了该策略结合了滑模和磁链技术,并有效减小了转矩脉动、抖振现象以及电流THD。希望符合您的要求。

    红外轮廓提取python代码

    红外轮廓提取python代码

    (源码)基于Raspberry Pi 3b的STM原子力显微镜控制系统.zip

    # 基于Raspberry Pi 3b的STM原子力显微镜控制系统 ## 项目简介 本项目是一个基于Raspberry Pi 3b的STM(扫描隧道显微镜)控制系统,旨在实现对原子力显微镜的高精度控制和图像采集。通过结合Arduino Uno和ADS1115、AD5764等硬件设备,项目实现了对显微镜的多种操作模式和图像处理功能。 ## 项目的主要特性和功能 1. 信号采集与控制 使用ADS1115进行z轴信号的采集。 通过Arduino Uno控制AD5764,实现对压电驱动器的精确控制。 2. 图像处理 实现3D图像的采集和处理。 3. 操作模式 支持两种操作模式 1. 恒高模式在扫描过程中保持高度恒定。 2. 恒流模式在扫描过程中保持电流恒定。 4. 粗略定位 使用步进电机进行粗略的初始定位。 ## 安装使用步骤 1. 硬件连接

    毕业设计&课程设计&毕设&课设-java-超市管理系统

    项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea

    在线课程管理系统 2024免费JAVA毕设

    2024免费毕业设计成品,包括源码+数据库+往届论文资料 录屏:https://www.bilibili.com/video/BV15S421o7Do 启动教程:https://www.bilibili.com/video/BV11ktveuE2d 讲解视频:https://www.bilibili.com/video/BV1YfkHYwEME 二次开发教程:https://www.bilibili.com/video/BV1Cw2rY1ErC

    【GO】关于一个分布式事务的中间件,目前通信是走的http协议.zip

    【GO】关于一个分布式事务的中间件,目前通信是走的http协议

    【爬虫】(天猫,淘宝,京东)爬虫,根据query词爬取数据(Python+Scrapy+MongoDB)_pgj.zip

    【爬虫】(天猫,淘宝,京东)爬虫,根据query词爬取数据(Python+Scrapy+MongoDB)_pgj

    基于三菱PLC与组态王技术的鸡舍温湿度智能控制系统在养鸡场的应用与优化-No.909解决方案,No.909 基于三菱PLC和组态王鸡舍温湿度控制养鸡场 ,三菱PLC; 温湿度控制; 鸡舍

    基于三菱PLC与组态王技术的鸡舍温湿度智能控制系统在养鸡场的应用与优化——No.909解决方案,No.909 基于三菱PLC和组态王鸡舍温湿度控制养鸡场 ,三菱PLC; 温湿度控制; 鸡舍养鸡场; 组态王控制系统; No.909,基于三菱PLC与组态王技术的鸡舍温湿度控制方案

    "三菱PLC与触摸屏联合开发气压传动焊条包装线技术详解",No.945 三菱PLC和触摸屏基于气压传动的焊条包装线的研发 ,核心关键词:三菱PLC; 触摸屏; 气压传动; 焊条包装线; 研

    "三菱PLC与触摸屏联合开发气压传动焊条包装线技术详解",No.945 三菱PLC和触摸屏基于气压传动的焊条包装线的研发 ,核心关键词:三菱PLC; 触摸屏; 气压传动; 焊条包装线; 研发; No.945,"三菱PLC与触摸屏在气压传动焊条包装线研发项目No.945中的应用"

    (源码)基于Spring Boot和Spring Integration的微服务购物系统.zip

    # 基于Spring Boot和Spring Integration的微服务购物系统 ## 项目简介 本项目是一个基于Spring Boot和Spring Integration的微服务购物系统,旨在提供一个高效、可扩展的在线购物平台。系统通过微服务架构实现各个功能模块的解耦,包括商品管理、购物车、订单处理、配送服务等。Spring Integration用于实现服务间的消息传递和集成。 ## 项目的主要特性和功能 1. 商品管理 商品的添加、删除和查询。 从京东网站抓取商品信息。 2. 购物车功能 添加商品到购物车。 从购物车中删除商品。 购物车结账生成订单。 3. 订单处理 订单的创建和状态管理。 订单的供应和结账流程。 4. 配送服务 根据订单生成配送信息。 配送状态的管理和查询。 5. 服务注册与发现

    基于Omron PLC与MCGS组态的自动化售货机控制系统研究与应用:No.848 实践探索与效果分析,No.848 基于Omron PLC和MCGS组态机控制 ,基于Omron PLC

    基于Omron PLC与MCGS组态的自动化售货机控制系统研究与应用:No.848 实践探索与效果分析,No.848 基于Omron PLC和MCGS组态机控制 ,基于Omron PLC; MCGS组态; 售货机控制; 848号项目,基于Omron PLC与MCGS组态的售货机控制系统研究No.848

    基于springboot+vue的人事工资管理系统设计与实现【源码+数据库】

    参考链接:https://www.bilibili.com/video/BV1ZYNHetEaY/?vd_source=bf2d43514ea61b1121399ab65421e37c 前端:Vue 后端:SpringBoot 数据库:MySQL 有数据库文件,项目完整 1、登录模块 可以登录成功和退出登录。 2、用户管理模块 可以添加、删除、修改、查询用户信息。 3、部门管理模块 可以添加、删除、修改、查询部门信息。 4、出勤管理模块 可以查询和编辑出勤信息。 5、工资管理模块 可以查询和编辑工资信息。 6、奖惩管理模块 可以添加、删除、修改、查询奖惩信息。 7、员工管理模块 可以添加、删除、修改、查询员工信息。

    昇腾硬件上面向算子开发场景的编程语言Ascend C的高阶类库ascendc-api-adv-master.zip

    昇腾硬件上面向算子开发场景的编程语言Ascend C的高阶类库ascendc-api-adv-master.zip

    "中央空调时间控制启停的优化:西门子1200PLC与TP900触摸屏模拟仿真程序在博途V16环境下的应用与探讨",中央空调改时间控制启停西门子1200PLC和TP900触摸屏模拟仿真程序博途V16

    "中央空调时间控制启停的优化:西门子1200PLC与TP900触摸屏模拟仿真程序在博途V16环境下的应用与探讨",中央空调改时间控制启停西门子1200PLC和TP900触摸屏模拟仿真程序博途V16 ,中央空调; 时间控制启停; 西门子1200PLC; TP900触摸屏; 模拟仿真程序; 博途V16,"中央空调的定时启停:Siemens 1200PLC与TP900触摸屏模拟仿真程序V16"

    Java多线程核心技术解析及常见面试题详解

    内容概要:这份PDF文档系统梳理了Java多线程的核心概念和技术,涵盖了基础知识、锁机制、线程池以及典型应用场景等关键主题。主要内容包括:多线程的基础知识点(并行与并发区分、线程和进程差异及其创建方式)、创建和使用线程的多种方式及其实现;详细讨论了几种常用的并发锁机制(synchronized、AQS、ReentrantLock等);深入介绍了不同类型的线程池及其配置参数的选择依据;探讨了常见的线程控制工具(如Semaphore和CountDownLatch);并讲解了一些高级话题(例如死锁检测与预防、ThreadLocal的作用)及相关的真实面试情景还原。 适用人群:对于具有一定Java编程经验、希望进一步掌握或复习多线程编程技巧的人士而言是非常有用的资料。特别适用于准备求职面试的技术人员。 使用场景及目标:该资料可以帮助开发者理解并发编程的基本原理,熟练运用各类同步原语和容器以构建高效的并发应用程序;此外,文中提供的面试指南有助于应聘者针对可能出现的技术难题做好充分准备。 其他说明:尽管本资料详尽地阐述了许多理论知识,但在实践中还需结合实际情况做出合理的优化决策。 适合人群:具有一定Java基础并且对多线程感兴趣的开发人员,尤其是那些想要深入了解多线程机制并对自己的职业发展有所规划的人。 使用场景及目标:帮助程序员加深对Java多线程编程技术的认知,提升应对复杂任务的能力;同时也是备战工作中可能遇到的各种多线程面试考题的有效参考资料。 阅读建议:此资源适合循序渐进地学习,先从简单的概念入手逐步过渡到较为复杂的主题,对于关键技术和实用的例子可以适当做一些练习加深理解和记忆。

    (源码)基于ASP.NET Core和Dapr的掩码文本项管理系统.zip

    # 基于ASP.NET Core和Dapr的掩码文本项管理系统 ## 项目简介 本项目是一个基于ASP.NET Core和Dapr的掩码文本项管理系统,旨在提供一个高效、安全的文本管理解决方案。通过使用Dapr框架,项目能够轻松实现微服务架构,并提供诸如状态管理、消息传递等功能。ASP.NET Core则提供了强大的Web应用开发能力,确保系统的高性能和可扩展性。 ## 项目的主要特性和功能 ### 1. 文本项管理 创建掩码文本项支持创建带有掩码的文本项,确保敏感信息的安全性。 更新掩码文本项允许用户更新已有的掩码文本项,保持数据的实时性和准确性。 获取掩码文本项提供根据ID获取特定掩码文本项的功能。 获取多个掩码文本项支持批量获取多个掩码文本项,方便用户进行数据分析和处理。 删除掩码文本项允许用户删除不再需要的掩码文本项,确保数据管理的整洁性。 ### 2. 集成事件处理

    Java的作业拼图游戏.zip

    C Java的作业拼图游戏.zip

Global site tag (gtag.js) - Google Analytics