以下为个人总结。
内容规范
- 代码库中不要提交和本地环境相关的文件。如Android工程中的local.properties(内含本机SDK的绝对路径),如果此类变量和开发代码有所耦合,应该抽离出来。
- 忽略与本地环境相关的配置文件。如使用WebStrom时产生的 .idea 文件夹,iOS工程中的 xcuserdata、xcworkspace、xcshareddata目录。
- 忽略临时文件/目录。如Android工程中的bin、gen、obj、build 目录。
操作规范
- 及时更新。更新之后再进行修改,可以降低冲突概率。
- 及时提交。方便他人及时更新,同样,可以降低冲突概率。
- 解决冲突。更新之后碰到冲突不必紧张,涉及到功能模块重叠的,和提交者做一下确认。
- 不同模块分开提交。方便他人有选择地更新,也方便版本管理和回退操作。
- 调试无误之后才能提交。编译有误,或有明显BUG的修改不能提交。
- 不要用覆盖文件的方式去修改文本。那样可能会丢失修改历史。
- 注释。注释一定要让自己看懂,让别人看懂本次提交的修改。
- 同步修改。一定要用确认好Rev版本号,使用merge的方式,而不能手动重新敲代码。
注释约定
每次提交都有写注释,注释一定有足够的信息量反映出本次修改。
- 普通修改应该描述清楚修改了哪个功能模块,新增了什么功能;如果发现一句话描述不出修改内容,说明你可能在试图提交耦合的修改,请尽量拆分。
- merge 操作,merge 操作的提交,要注明 merge 的源地址和区间,无需描述功能,毕竟根据地址和区间可以追根溯源。
- 里程碑,建议用命令行去新建里程碑,并将整个命令写入注释。
注释模板
1 2 3 4 5 6
| ## [本次修改概述] [细节简述] +) 表示增加了功能 *) 表示对某些功能进行了更改 -) 表示删除了文件,或者删除了某些功能。 b) 表示修正了具体的某个bug
|
样例
1 2 3 4 5 6
| ## 控件的调用时机不当导致闪退,已修正 b) 解决首页闪退的问题 +) 新建自定义控件A +) 新建自定义控件B *) 修改了控件的调用时机 -) xxx.jar
|
里程碑注释
- 将 cp 的目标地址为 tags 文件夹,名称为
工程名_工程版本号
;
- 把操作的日期,和操作的命令行注释上去
- 把命令直接贴到注释上,操作日期、源地址、源Rev、源工程版本号就都有了;即使误操作,根据命令也有迹可循。
创建里程碑命令示例
1 2
| svn cp https://MY_PROJECT/trunk/proj@7 https://MY_PROJECT/tags/proj_v1.0.0 -m svn cp https://MY_PROJECT/trunk/proj@7 https://MY_PROJECT/tags/proj_v1.0.0
|