svn部署-linux
Svn作用
Subversion是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库,从而使用户在不同的电脑上进行操作。
举例:svn在192.168.1.160上面
A跟B同时修改160上面的aa.txt文件,两者传上去之后160会整合A跟B的修改。
系统环境:Centos 6.5
第一步:通过yum命令安装svnserve,命令如下:
>yum -y install subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:
>rpm -ql subversion
第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:
>mkdir /var/svn/svnrepos
第三步:创建svn版本库
在第二步建立的路径基础上,创建版本库,命令如下:
>svnadmin create /var/svn/xxxx (xxxx为你预期的版本库名称,可自定义)
创建成功后,进入xxx目录下
>cd /var/svn/xxxx
进入目录,可以看见如下文件信息:
第四步:配置修改
进入已经创建好的版本库目录下,也就是前文说创建的xxxx
进入conf
>cd /var/svn/xxxx/conf
conf目录下,一共存放三份重要的配置文件,如下:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
细节修改如下:(希望大家严格按照以下信息,不用参考网络上其他资料)
1.修改authz文件信息,如下:
在末尾添加如下代码:
[/]
zhangsan=rw
lisi=rw
wangwu=r
意思是版本库的根目录zhangsan,lisi对其有读写权限,wangwu只有读权限。
或许
在[groups]下增加以下内容
admin=zhangsan,lisi
user=lisi
规定了两个组,admin组和user组
[/]
本案例根目录为svnrepos
@admin=rw
admin组的权限为读写, 指定组前面必须加上@
@user=r
user组的权限为只读,指定组前面必须加上@
2.修改passwd文件信息
>vi passwd
账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:
账号 = 密码
例如:admin = 123456
修改svnserve.conf(重要)
3.vi svnserve.conf
原始文件内容,都被注释掉的,我们只需要去掉4条指定内容前注释即可,如下:
打开下面的几个注释:
anon-access = read #匿名用户可读,不想匿名用户可读,设置为none
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm =hengqian # 认证空间名,版本库所在目录
第五步:防火墙开启
多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题,大家按照如下3条命令逐一执行即可
>/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
>/etc/init.d/iptables save
>service iptables restart
执行结果如下图:
六:启动httpd/svn服务器
Service httpd restart
在跟目录下,执行如下命令:
>svnserve -d -r /var/svn/svnrepos
启动成功后,可用ps -aux查看服务启动是否成功
七:客户端访问svn服务器
安装svn客户端
目前最流行的svn客户端非TortoiseSVN莫属
下载安装
客户端连接地址:svn://公网或内网的IP地址/xxxx,有时候需要添加端口号
用户名/密码: test/123456789 ##要和之前设置的用户名和密码匹配
注意:
默认端口为3690,如果该端口被占用,或者需要修改端口,使用下面语句
svnserve -d -r /opt/svn/repositories --listen-port 3691
新建一个xxx.txt文本