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/ 。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值