用户经常为 Subversion 所困扰的问题,看看我们的最佳实践。
1. SVN最佳实践一:集中式用户管理
情景模拟
情景一:用户抱怨,太多的密码要记,又多了SVN的用户名和密码!
情景二:口令太多,干脆起个最简单的...
情景三:我忘记口令了,如何找回?还是要麻烦管理员?
情景四:管理员分配的口令太难记了,我要修改难道要告诉管理员我的新口令?
最佳实践 集中式的用户管理:
管理员创建新用户
为新用户授权
2. SVN最佳实践二:认证安全和单点登录
情景模拟
安全法则一:80%的攻击来自于内部网络
安全法则二:减少输入口令的机会,也减少了口令泄漏的机会
示例:
单点登录访问:websvn和邮件列表
最佳实践
单点登录
3. SVN最佳实践三:泛路径授权
问题提出
事实一:SVN的分支和里程碑是以目录复制的方式实现的。
事实二:SVN的目录授权设置在单独的配置文件中。
事实三:对于主线(trunk)目录的授权,如果不一一的为每个分支、每个里程碑单独设置,实为安全漏洞!
/branches/1.x/
/branches/2.x/
/tags/1.0.1/
/tags/1.0.2/
...
最佳实践 泛路径授权,可以在授权路径中加入通配符
/branches/*/src/敏感模块/
/tags/**/敏感模块/
仅限群英汇提供的 Subversion 软件包
4. SVN最佳实践四:授权管理的图形界面
问题提出
事实:SVN对授权的语法要求非常严格。任何语法错误都导致SVN服务器不能工作!
下面的配置文件有几处错误?
[groups] admin = &admin, admin1, admin2 group1 = @group2, user1 group2 = user2, @group1 [aliases] admin = jiangxin [/] @admin = rw [/trunk] $authenticated = rw [repos1:/] * = user1 = @group1 = r @admin = rw [repos1:/trunk/src] * = @group1 = rw @visiters = r
最佳实践
提供用户权限检查的页面
提供角色管理的界面
授权管理
5. SVN最佳实践五:提交事件邮件通知
情景模拟
情景一:有的开发人员不喜欢写提交说明,且“屡教不改”,当配置了代码提交邮件通知后,大家都重视了。
情景二:通过邮件列表对代码进行讨论,代码书写的规范性变强了。
最佳实践
00030_Subversion(2f)00030_BestPractise/attachments/mailinglist.png?ts=1267406615.0)
可存档;
可订阅和退订;
通过邮件推至桌面;
可包含完成代码differ;
也可仅仅包含代码修改统计;
6. SVN最佳实践六:SVN与缺陷跟踪整合
问题提出
问题一:开发人员不善于写提交说明,如果能够从缺陷跟踪系统自动获取有多好?
问题二:缺陷跟踪是开发过程的工作流管理软件,如果代码提交能够自动触发对应bug或需求的工作流状态变更,会大大提高工作效率。
最佳实践
知道代码为何而更改
特殊格式化的提交说明,还有其它作用噢
包含特定格式提交说明,自动为 Bug或者需求 建立和代码的关联,并更改相应状态
点击 Ticket 中的链接,查看代码变更
7. SVN最佳实践七:用钩子实现更多扩展
CapCheckMergeInfo:禁止低版本SVN客户端提交
ReadonlySvnMirror:只读SVN镜像
CaseInsensitive:客户端文件名大小写不敏感
CommitLogCheck:检查提交说明
EolStyleCheck:换行符风格检查
EmailNotify:邮件通知配置
TracPostCommit:与Trac整合
AllowRevpropChange:允许版本属性修改
最佳实践
8. SVN最佳实践八:Subversion统计
|
|
00030_Subversion(2f)00030_BestPractise/attachments/statistics.png?ts=1267406615.0)