1.1.下载Subversion 服务器端和TortoiseSVN客户端,注意客户端支持的版本须与服务器端版本适配
1.2.安装到指定目录:我这是安装到D:svnsetupSubversion和D:svnsetupTortoiseSVN中
1.3.用cmd打开命令窗口,执行cd D:svnsetupSubversionbin ,到svnadmin指令执行目录
1.4.在命令窗口中执行svnadmin create --fs-type fsfs d:svntest 创建一个版本管理数据库
1.5.找到创建的d:svntest目录,打开conf 配置文件目录其中有三个文件分别是:svnserve.conf
(访问控制文件),passwd(帐号密码文件),authz(登陆用户权限设置文件)
1.6.更改svnserve.conf文件: 注意去掉#号时,请也把后面的空格删除,防止不必要的错误
#匿名用户不可以通过svn://方式访问档案库
anon-access = none
#登陆用户可读/写权限
auth-access = write
#设置密码文件为passwd
password-db = passwd
#设置权限分配文件为authz
authz-db = authz
#realm是你定义的名称,这告诉客户端连接的“认证命名空间
realm = My First Repository
1.7.更改passwd文件:
#帐号 = 密码
admin = 123456
1.8更改authz文件,给予admin用户访问权限
[groups]
harry_and_sally = admin
[/]
@harry_and_sally = rw #可读写权限
1.9启动svnserver服务:svnserve.exe -d -r "D:svntest"
1.10现在可以在客户端通过:svn://IP来访问了:
例如:在客户端,创建一个文件夹 svntest,点右键选择SVN check out,然后输入svn://IP地址 就可以了.
2.设置帐号使用目录权限
2.1使用客户端创建三个目录file1,file2,file3
2.2在passwd文件添加三个帐号分别是user1,user2,user3,
2.3设置用户权限
设置admin具有对file1,file2,file3 读写权限
设置user1只有file1的读/写权限,file2的只读权限,file3没有权限
设置user2只有file2的读/写权限,file1,file3的只读权限
设置user3只有file3的读/写权限,file1,file2的只读权限
[groups]
group_admin = admin
grou_file1 = user1
grou_file2 = user2
grou_file3 = user3
[/]
@group_admin = rw
[/file1]
@grou_file1 = rw
@grou_file2 = r
@grou_file3 = r
[/file2]
@grou_file2 = rw
@grou_file1 = r
@grou_file3 = r
[/file3]
@grou_file3 = rw
@grou_file2 = r
注意: *是匿名用户, 我这里是用分组来设置权限,你也可以直接用帐号来设置访问权限
2.4重起svnserve.exe让设置生效
3.把svnserve.exe添加为windows服务
3.1打开cmd.用sc来创建一个服务
sc create svnservice
binpath= ""D:svnsetupSubversionbinsvnserve.exe" --service -r D:svntest"
displayname= "SVNService"
depend= Tcpip
star= auto
注意:创建时候 参数与其值之间是有空格的:如star= auto 而不能是star=auto 否则会出错
4.数据的备份与还原
4.1我们可以用svnadmin hotcopy命令来拷贝整个svn文件夹,在需要时在整个拷贝回去来达到备份还原的目的,注意这时候如改了路径,
则启动svnserve服务时 参数的路径也要需要更改
例如:
备份
svnadmin hotcopy D:svntest D:svnback
还原时直接把D:svnback下的文件拷贝到原先D:svntest目录
注意:这里不是覆盖D:svntest目录,而是先删除目录里面的文件,在拷贝过来,覆盖可能会导致以前的版本号文件存在
这样的话可能会出现一点问题.
4.2使用svnadmin dump命令来备份使用svnadmin load 来还原,他还可以用--deltas来进行增量备份
注意:备份版本库的时候,注意关闭svnserve服务,以保证没有用户在使用svn,否则可能会出错(有些热拷贝命令也需要这样,因为这样更安全些)
5.有关客户端使用请参考相关手册
