码迷,mamicode.com
首页 > 其他好文 > 详细

centos 6.9部署svn服务器(服务器、客户端环境配置)

时间:2017-12-23 01:01:39      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:svn   svn服务器   tortoisesvn   tortoisesvn使用   

svn版本控制系统有很多用途,最近公司使用它加脚本实现产品补丁小更新(因为如果每次都大更新的话,每次都要重新打rpm包,更新yum源等,很麻烦)。


一、服务器端安装

1、安装svn

[root@svn ~]#yum install -y subversion


2、新建svn目录

[root@svn ~]#mkdir -p /root/svn/svnserver


3、启动svn服务

[root@svn ~]#svnserve -d -r /root/svn/svnserver/

如果有这个报错:svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory

解决办法:

(1)找到这个文件所在目录

[root@svn ~]#find / -name "libaprutil-1.so.0"
/usr/local/xxx/service/apache/lib/libaprutil-1.so.0

(2)查看共享库配置文件

[root@svn ~]#more /etc/ld.so.conf
include ld.so.conf.d/*.conf

(3)添加共享库,并更新共享库

[root@svn ~]#vi /etc/ld.so.conf.d/httpd-apr.conf
/usr/local/xxx/service/apache/lib/
[root@svn ~]#ldconfig -v


4、启动svn

[root@svn ~]#svn --version
[root@svn ~]#svnserve -d -r /root/svn/svnserver/

备注:如果要更改端口启动的时候接上“--listen-port”新端口。


5、创建版本库

[root@svn ~]#svnadmin create /root/svn/svnserver/patch


6、修改svnserve.conf配置文件,在[general]下方加入这四行

[root@svn ~]#vim /root/svn/svnserver/patch/conf/svnserve.conf
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = patch

备注:realm 这行也可以不加。


7、创建svn用户和权限分配

在 /root/svn/svnserver/patch/conf目录下,有两个文件是配置用户账号密码和用户权限的。

passwd 此文件配置用户账号和密码
[root@svn ~]#vim /root/svn/svnserver/patch/conf/passwd 
[users]
# harry = harryssecret
# sally = sallyssecret
xxx = 123456
zhangsan = 123456
lisi = 123456
authz 此文件配置用户权限
[root@svn ~]#vim /root/svn/svnserver/patch/conf/authz
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

admin = xxx
user = xxx,zhangsan,lisi

# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@admin = rw
@user = rw

备注:authz这个文件详细控制权限,请见最后的备注。


8、设置iptables防火墙允许3690端口,或者关闭防火墙


9、 编写启动脚本

[root@svn ~]#vi /etc/init.d/server_init
#!/bin/bash
#chkconfig: 345 90 90
#description: server_init for patch.
svnserve -d -r /root/svn/svnserver/


10、 启动脚本放入/etc/init.d/目录下,并设置开机启动

[root@svn ~]#chkconfig --add server_init
[root@svn ~]#chkconfig server_init on
[root@svn  ~]#chmod 755 server_init

备注:如果要杀掉svnserver,用killall svnserver,然后svnserve -d -r /root/svn/svnserver/启动。



二、客户端安装

1、下载TortoiseSVN客户端

http://sw.bos.baidu.com/sw-search-sp/software/b2ea78514e765/TortoiseSVN-1.9.7.27907-x64.msi


2、右键点击桌面上空白区域,然后会发现右键的菜单中多了“SVN Checkout...”工具栏,点击。

技术分享图片


3、填入服务器版本库的路径,和本地存放版本库文件的目录,这里本地C盘新建一个patch目录,会提示输入密码,并下载更新。

技术分享图片

技术分享图片

技术分享图片


4、更新并提交2个文件,如下图:

如果要提交某一个文件,可以选中这个文件,然后右键选择TortoiseSVN---Add添加,提交的时候最好写上备注:

技术分享图片

技术分享图片


5、清除登录帐号和密码信息,然后用另外一个帐号登录(本地C盘新建一个test2目录)

备注:我这里只是举例,实际情况下是让另外一个人在其他电脑上登录另外一个帐号,验证相互提交的数据是否能同步。

技术分享图片

技术分享图片


技术分享图片

如上图,表示同步成功。


疑问:

或许有很多人会以为这些文件会以文件方式存储在服务器上,其实不是。

上传的文件放在SVN服务器的哪个目录下,SVN服务器版本库有两种格式。一种为FSFS,一种为BDB。
把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中。
如果是FSFS格式,这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息


备注:

这是一个权限实例需求,如果需要对权限精确控制,请参考这个。

-----------------------------------------------------------------

策划组:开策划、美术读写

后端组:开后端读写,策划只读

前端组:开前端读写,策划、美术只读

美术组:开美术读写,策划只读

管理员组:所有的读写

authz:用户权限配置

示例:

[groups]

#管理组

manager = boss

#服务端用户组

server = server1,server2

#客户端用户组

client = client1,client2

#美术组

art = art1,art2

#策划组

design=design1,design2

[game:/]

@manager=rw

[game:/server]

@server=rw

[game:/client]

@client=rw

@design=r

@art=r

[game:/art]

@design=rw

@art=rw

@client=r

[game:/design]

@design=rw

@server=r

@client=r

@art=r

passwd:用户密码

[users]

boss=123456

server1=123456

server2=123456

client1=123456

client2=123456

art1=123456

art2=123456

design1=123456

design2=123456

centos 6.9部署svn服务器(服务器、客户端环境配置)

标签:svn   svn服务器   tortoisesvn   tortoisesvn使用   

原文地址:http://blog.51cto.com/net881004/2053759

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!