1、安装 SVN 服务端
安装 Subversion
yum install -y subversion
2、创建 SVN 版本库
创建项目版本库
mkdir -p /data/svn/myproject // #创建svn目录
svnadmin create /data/svn/myproject //#建立svn版本库
3、配置 SVN 信息
配置文件简介
版本库中的配置目录 conf 有三个文件:
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务综合配置文件
配置权限配置文件 authz
编辑 authz ,内容参考如下:
示例代码:/data/svn/myproject/conf/authz
[groups]
#用户组
admin = admin,root,test
#用户组admin 所对应的用户
test=user3
#用户组test 所对应的用户
other = user4
#用户组other 所对应的用户
[/]
#库目录权限(/data/svn/myproject)
@admin = rw
#用户组权限
user4=r
#非用户组权限
[myproject:/]表示仓库下的权限定义
user3=r
#如果要分项目,则以此规则类推:
#如:
[myproject:/aaa]则表示仓库下的aaa项目的权限定义。
user4=r
*=r
###################################################################
[/]
#指定所有的版本库默认只读,root可读写
*=r
root=rw
[project1:/]
#指定对版本库project1根目录的权限
@p1_group_a=rw
@p1_group_d=rw
@p1_group_t=r
[project1:/trunk/admin]
#指定对版本库project1的/trunk/admin根目录的权限,
配置账号密码文件 passwd
编辑 passwd ,内容参考如下:
示例代码:/data/svn/myproject/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456
root = 123456
test = 123456
配置 SVN 服务综合配置文件 svnserve.conf
编辑 svnserve.conf ,内容参考如下:
示例代码:/data/svn/myproject/conf/svnserve.conf
[general]
# force-username-case = none
# 匿名访问的权限 可以是read、write,none,默认为read
anon-access = none
#使授权用户有写权限
auth-access = write
#密码数据库的路径
password-db = passwd
#访问控制文件
authz-db = authz
#认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字
realm = /data/svn/myproject
# realm = /data/svn/ ->这个也可以
# realm = myproject ->这个也可以
[sasl]
4、启动 SVN 服务
启动 SVN
svnserve -d -r /data/svn
备注:如果要关闭svn,直接使用killall svnserve命令即可
checkout SVN项目
mkdir -p /data/workspace/myproject
svn co svn://127.0.0.1/myproject /data/workspace/myproject --username root --password 123456 --force --no-auth-cache
提交文件到 SVN 服务器
从本地提交文件到 SVN 服务器,其中 root 密码为 /data/svn/myproject/conf/passwd 文件存储的密码
cd /data/workspace/myproject
echo test >> test.txt
svn add test.txt
svn commit test.txt -m 'test'
提交成功后可以通过如下命令从本地项目删除文件
cd /data/workspace/myproject
rm -rf test.txt
删除后可以通过 SVN 服务器恢复
cd /data/workspace/myproject
svn update
5、用cornerstone连接(svn://admin@101.132.77.100/myproject)
备注:如果创建svn库路径只到/data/svn/的话,链接地址到跟路径即可
mkdir -p /data/svn/ // #创建svn目录
svnadmin create /data/svn///#建立svn版本库
(svn://admin@101.132.77.100/)
大功告成
恭喜您已经完成了搭建 SVN 服务器
6、svn扩展知识点
SVN在服务器端的存储方式和客户端是不一样的,所以在服务器端是看不到源文件的。服务器端有两种存储方式FSFS和BDB,目前默认都是FSFS。
要导入文件有两种做法:
1、用import指令,将客户端文件夹导入到服务器端
2、先checkout空库到客户端,然后将要导入的文件夹放入客户端checkout产生的空文件夹,然后执行add将这些文件夹纳入SVN控制,最后执行commit上传到服务器
http://blog.csdn.net/qq_29945729/article/details/52936900
更详细可参考
在SVN中有三个项目:ALL,CRM,OA
有三个用户:all,crm,oa
步骤:
[groups]
group_all = all,crm,oa
group_crm = all,crm
group_oa = all,oa
admin = admin
[/] ===>这个根权限要开放出来,不然都进不去里面的子目录
@group_all = rw
[/all]
# @group_all = rw
* =
[/crm]
@group_crm = rw
* =
[/oa]
group_oa = rw
* =