SVN的安装配置
下载
服务器下载地址:http://subversion.apache.org/packages.html
Setup-Subversion-1.7.6.msi(win32svn)
客服端下载地址:http://tortoisesvn.net/downloads.html
TortoiseSVN-1.7.8.23174-x64-svn-1.7.6.msi
安装配置服务器
安装
双击Setup-Subversion-1.7.6.msi 文件 点击next至出现如图:
可以选择安装的路径,默认c:Program files\subversion\
点击change更改安装路径
点击Next至finish完成安装
2. 安装客户端
双击TortoiseSVN-1.7.8.23174-x64-svn-1.7.6.msi 文件点击next至出现如下图
?
选择Browse 更改安装的路径 点击Next至安装成功,点Finish完成
开始配置:
创建代码仓库:
??? 步骤一:创建如F:\SVN\repository\repos1的文件夹
??? 步骤二:在右键创建的repos1并选择菜单Create repository here完成创建版本仓库?
?
???
直接OK完成
配置svn
目录说明
?
conf是svn 配置文件
db 是存放项目
hooks 标记文件如(文件夹有绿色的钩子)
locks 文件或文件夹加锁
format 版本
readme.txt
服务器配置
进入项目文件夹下的conf 文件夹
?
打开svnserver.conf 文件,找到高亮红框显式地方
anon-access = none //设置匿名用户不能访问
password-db = passwd? //用户配置文件
authz-db = authz?? //权限配置文件
?
注解去掉 如下图所示(顶格不能有空格)
?
建立管理员帐号
接下来打开passwd 文件为仓库添加用户
?
添加一个用户名lkf 密码为lkf
为管理员授权
打开conf下的authz,这里给予lkf根目录权限,用于创建项目,其他用户默认没有读写权限
?
配置Service
1. 注册service
打开cmd,执行如下命令:
SC create svnservice binPath= ""F:\SVN\Subversion\bin\svnserve.exe " --service -r "F:\SVN\repository\repos1""? depend= Tcpip start= auto
成功提示信息:
?
2. 启动service
在dos命令中输入Services.msc
?
找到创建的service repos1服务,右键选择启动
?
?
3. 删除service
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
创建项目
在任意的盘符创建具体项目 project1
?
?
选择菜单项Import导入版本库,
?
?
?
?
import完成之后project1文件夹样式是没有变化的
?
?
我们看到在 F:\SVN\repository\repos1也没有任何变化,连个 project1 文件夹都没有建立,唯一的变化就是F:\SVN\repository\repos1容量变大了。实际上我们源project1 中的内容已经导入 repos1 版本库了,源 project1 文件夹
可以删除了。
7.取出项目
取出版本库到一个工作拷贝:
来到任意空目录下,比如在E分区建立一个空文件夹 E:\project1。“右键 -> SVN Checkout”。在“URL of repository”中输入“svn://localhost/project1”,这样我们就得到了一份 project1中内容的工作拷贝。
?
?
?
?
输入授权的用户信息,OK完成,由此可以取出保存在版本库中的项目或者项目中的具体文件
?
权限配置详细说明:
用户管理
打开passwd文件
# [users]
# harry = harryssecret
# sally = sallyssecret
以名值的方式存储用户名和密码?? “用户名=密码”
例如:
[users]
harry = 123456?? //
sally = 654321
lkf = lkf
权限配置
打开authz文件
用户分组
[groups]
Andorid_group=admin,zhangsan
Java_developer=developer1,developer2
以上便创建了两个用户组,分别是Andorid_group和Java_developer和其相应的组的成员。
授权
“*” 代表“所有的用户”
“r” 代表“读”
“w”代表“写”
“@”代表“组”
“[]”内表示路径
例子
仓库内所有项目,所有人只读
[/]
*=r
项目project1,harry只读,lkf读写,安卓组读写
[/project1]
harry = r
lkf = rw
@Andorid_group=rw
权限覆盖:这里修改了file1对lkf的权限
[/project1/file1]
lkf = r
?