Subversion的版本库conf目录下有三个文件:svnserve.conf、passwd和authz,svnserve.conf文件中定义了所有的认证和授权政策:
anon-access
指明仓库匿名用户访问的权限,可选值(none:不能访问;read:匿名可读;write:匿名可写),一般设置为none,避免匿名访问,除非你的项目为开源项目。
auth-access
指明被授权通过的用户的权限,可选值同上。
password-db
指定了被授权用户的用户名及密码的文件,可以在passwd 文件中设置用户名与密码。
authz-db
实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限,在Subversion 1.3 之后,svnserve 和Apache 一样都可以使用“authz-db”文件。
如果权限保护目录为中文,则必须将authz文件利用ultraedit工具转存为UTF-8 无BOM 格式,否则权限不生效!
passwd文件里面存放的是项目成员帐户信息,默认在[users]下有两个被注释了的用户信息,可通过去掉注释或自己增加一行用户信息。例如:
zhang = ao (前面是用户名,后面是密码)
authz文件主要是做复杂的群组权限控制,假设有一个用户组叫users,有一个用户zhang:
[groups]
users = zhang
给指定的用户指定的url(这里假定为:firstsvn)分配权限,在以上用户组的基础上:
[firstsvn:/]
@users = rw
url后面一个要有一个"/",后面可以跟子目录比如:
[firstsvn:/tools]
[/] 表示整个仓库的根,如果是组的引用一定要使用 @ ,对应的权限可以是 r,w,rw 或空.
也可以给单个用户分配权限,或者给指定的用户以外的用户分配权限:
[firstsvn:/]
user1 = rw
* = r
这就表示user1有对firstsvn仓库的读写权限,对子目录有继承性,其他用户只有读的权限.
将权限相关的几个注释解除之后,操作就需要密码了:
恩.有人喜欢在命令行下工作,大多数的人喜欢在GUI的辅助下进行更快速的使用.通常使用Tortoisesvn.
TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。它也是 Subversion 的 Windows 扩展。它使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了。
Tortoisesvn下载安装:http://tortoisesvn.net/downloads.操作界面如下:
TortoiseSVN用多种图标的显示来标注本地文件的状态:
Tortoisesvn 图标介绍:
当我们checkout的时候,只需要右键选择"SVN Checkout …":
提供正确的url和目的地后,OK后如果有权限,则需要输入:
命令行的功能都能够实现.Subversion还提供版本对比、分支合并等功能.
.svn这个隐藏目录记录着两项关键的信息: 工作文件的基准版本和一个本地副本最后更新的时间戳。千万不要手工修改或删除这个 .svn隐藏目录和里面的文件!!!否则将会导致你本地的工作拷贝 (静态视图)被破坏,无法再进行操作。