SVN的标准目录结构:trunk、branches、tags及提交工作注意事项及错误提示

本文主要是介绍SVN的标准目录结构:trunk、branches、tags及提交工作注意事项及错误提示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


我们在一些著名开源项目的版本库中,通常可以看到trunk, branches, tags等三个目录。由于SVN固有的特点,目录在SVN中并没有特别的意义,但是这三个目录却在大多数开源项目中存在,这是因为这三个目录反映了软件开发的通常模式。

trunk是主分支,是日常开发进行的地方。

branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。

tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。


一.提交之前先更新

1.         SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。

2.         如果在修改的期间别人也更改了svn的对应文件,那么commit就可能会失败。如果别人和自 己更改的是同一个文件,那么update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。

3.         在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错

二.保持原子性的提交

每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。

三.提交时注意不要提交本地自动生成的文件

一般配置管理员都会将项目中一些自动生成的文件或者与本地配置环境有关的文件屏蔽提交(例如eclipse中的.classpath文件等)。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。

四.不要提交不能通过编译的代码

代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。

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

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

六.提前协调好项目组成员的工作计划

项目经理应该合理分配工作计划。每个成员在准备开始进行某项功能的修改之前,如果有可能,先跟工作小组的成员谈谈自己的修改计划,让大家都能了解你的思想,了解你即将对软件作出的修改,这样能尽可能的减少在开发过程中可能出现的冲突,提高开发效率。同时你也能够在和成员的交流中发现自己之前设计的不足,完善你的设计。

七.对提交的信息采用明晰的标注

在一个项目组中使用SVN,如果提交空的标注或者不确切的标注将会让项目组中其他的成员感到很无奈,项目经理无法很清晰的掌握工作进度,无法清晰的把握此次提交的概要信息。在发现错误后也无法准确的定位引起错误的文件。所以,在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。

八.慎用锁定功能

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


SVN常见错误提示说明


错误提示 错误原因及解决方案
Certificate expired 证书过期。
解决方案详见提示SVN证书过期?
Unable to connect to a repository at URL! 无法访问该SVN库的地址。

一般是由于用户名密码错误导致的。解决方案详见用户名密码校验失败?

User xxx do not have permission to operate 1st or 2nd tier directory! 用户不能操作CEE SVN的一级和二级目录,只能修改应用的某个Web服务的某版本目录下的目录或文件。如/12345/ws/1/a.txt
Not allowed to commit .svny! .svny不能操作,不允许向.svny目录中提交文件。
Sorry,file(xxx Bytes) is too large,limit 400 MBytes! 提交的文件中有超过大小限制的文件。

SVN文件及目录限制详见:SVN简介及使用限制#2. 系统限制,如果有特殊需要,请通过企业QQ联系腾讯技术支持申请,针对单个应用进行该限制的调整。

Sorry,your repository is too large,limit 3072 MBytes 超过SVN库的文件总容量上限。

SVN文件及目录限制详见:SVN简介及使用限制#2. 系统限制,如果有特殊需要,请通过企业QQ联系腾讯技术支持申请,针对单个应用进行该限制的调整。

Sorry,commit too many files, limit 2000! 单次提交的文件数超过上限。出现这种错误提示时,一般是由于单次提交的文件数过多,请分批多次提交。


SVN文件及目录限制详见:SVN简介及使用限制#2. 系统限制,如果有特殊需要,请通过企业QQ联系腾讯技术支持申请,针对单个应用进行该限制的调整。

Sorry,commit too large files, limit 3072 MBytes! 单次提交的文件大小超过上限。出现这种错误提示时,一般是由于单次提交的文件size过大,请分批多次提交。

SVN文件及目录限制详见:SVN简介及使用限制#2. 系统限制,如果有特殊需要,请通过企业QQ联系腾讯技术支持申请,针对单个应用进行该限制的调整。

Sorry,your repository has too many files(xxx),limit 100000 版本库文件总数超过CDN SVN库的上限。建议开发者自行删除CDN SVN库里的无效文件。

SVN文件及目录限制详见:SVN简介及使用限制#2. 系统限制,如果有特殊需要,请通过企业QQ联系腾讯技术支持申请,针对单个应用进行该限制的调整。

Sorry,the directory "/repo/path" contains too many files(xxx), limit 7000! 单目录文件数超过上限。建议开发者自行删除该目录下的无效文件,或将文件分散到不同目录中。

SVN文件及目录限制详见:SVN简介及使用限制#2. 系统限制,如果有特殊需要,请通过企业QQ联系腾讯技术支持申请,针对单个应用进行该限制的调整。

Sorry,please commit later 服务器繁忙,过一段时间后再提交。
Sorry, commit too frequently ,please commit later! 提交的频率超过限制,过一段时间后再提交。
xxx is out of date 如果执行svn commit命令时遇到该提示,那么一般是因为您修改了本地某文件或目录结构,而别人也修改了同一个的文件或目录并且先于您提交到了SVN库。

解决办法详见:SVN提交文件时提示文件冲突怎么办?

one or more files are in confict state 文件冲突。解决办法详见:SVN提交文件时提示文件冲突怎么办?
其它 更多SVN错误提示请参考:http://svndoc.iusesvn.com/ 。

这篇关于SVN的标准目录结构:trunk、branches、tags及提交工作注意事项及错误提示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/432367

相关文章

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

Mybatis提示Tag name expected的问题及解决

《Mybatis提示Tagnameexpected的问题及解决》MyBatis是一个开源的Java持久层框架,用于将Java对象与数据库表进行映射,它提供了一种简单、灵活的方式来访问数据库,同时也... 目录概念说明MyBATis特点发现问题解决问题第一种方式第二种方式问题总结概念说明MyBatis(原名

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的