协同开发中SVN的使用规范

1、使用自己的账户和密码

各员工需牢记各自的账户和密码,不得向他人透漏,严禁使用他人账户进行SVN各项操作。

2、不要签出(SVN Checkout)整个目录。

工作中需要对项目或解决方案进行任何操作时,应使用SVN请求最新代码或文件。不要签出(SVN Checkout)整个目录,除非特别必要,不应同时签出过多的项。

3先更新(SVN Update),再提交(SVN Commit)

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

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

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

4、多提交(SVN Commit),不要长时间签出(SVN Checkout)项目或解决方案,减少因多人对同一文件进行操作而产生的文件冲突。

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

5、不要提交不能通过编译的代码

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

6每次提交必须书写明晰的标注

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

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

例如eclipse中的.classpath文件,Windows生成的缩略图Thumbs.db,项目编译生成的临时文件.obj, .class等等。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。

8、不要提交自己不明白的代码

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

9、慎用锁定功能

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

10、标记版本

对已经成熟稳定的版本,可标记为“发布版”,由项目经理提交给管理员。管理员将该版本向技术支持部成员开放,用于新项目的实施和现有用户的升级维护。

11、管理员需对SVN管理的所有项目定期备份。

版本管理工具可以管理任何类型的文件,但是在软件开发过程中哪些应该纳入版本管理,哪些不应该纳入版本管理,还是有些建议需要遵循。

1. 所有源代码、makefile文件、工程文件需要入软件库。

2. 所有编译过程中生成的中间文件和目标文件一般不需要加入到版本库。

3. 构建脚本、测试脚本、说明文件、安装脚本、设计文档等需要加入到版本库。

4. 工程中的用到的图标文件、声音文件等在编译、运行时需要的文件要加入到版本库中。

5. 第三方源代码、库等开发、运行环境需要加入到版本库。

6. 版本库要合理组织目录,以满足项目的需求。

7. 避免在版本库中多处保存同样的东西,如果确实有此需求,可以在一处保存,用一个项目级的工作区初始化脚本来实现

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓