有效地管理源代码的方式是使用工具去帮助我们管理 , SVN(Subversion)就是目前主流的源代码管理工具 , 也称为版本控制工具。
本文主要介绍CentOS6.5上安装SVN服务器,配置SVN服务器的数据仓库,SVN服务的启动查看和停止,SVN服务的开机自启动,安装SVN客户端等内容。
一 安装SVN
1 检查系统是否自带SVN
svnserve –version
如果没有安装,系统会提示svnserve是个无效的命令。
2 安装SVN
yum –y install subversion
3 检查安装是否成功
svnserve –version
返回值:
svnserve, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
二 创建SVN数据仓库
1创建数据仓库
首先创建一个文件夹
mkdir -p /opt/svn/repositories
将创建的文件夹设置为数据仓库
svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf,db,format,hooks,locks, README.txt等文件,说明一个SVN库建立完成。
2 配置数据仓库
进入上面生成的文件夹conf下,进行配置
cd /opt/svn/repositories/conf
配置用户名和密码passwd
vi passwd
passwd文件的内容如下:
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
test = 123456 ##新增用户的用户名和密码
配置权限控制authz
vi authz
目的是设置哪些用户可以访问哪些目录,authz文件的内容如下:
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
test = rw
设置[/]代表根目录下所有的资源
配置服务svnserve.conf
vi svnserve.conf
svnserve.conf文件的内容如下:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
三 SVN服务的启动、查看及停止
1 启动svn服务
svnserve -d -r /opt/svn/repositories
2 查看SVN监听的端口
netstat -anp |grep svn
返回:
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 2085/svnserve
3 停止启动SVN
killall svnserve #停止
四 设置SVN的开机自启动
1 创建svn.sh文件
在/root文件夹下,创建svn.sh文件
cd /root
vi svn.sh
编辑svn.sh文件,加入以下内容
#!/bin/bash
svnserve –d –r /opt/svn/repositories
保存退出
2.添加可执行权限
命令行运行#chmod ug+x /root/svn.sh
3.添加自动运行
打开(vi或gedit)/etc /rc.local,在最后添加一行内容如下:/root/svn.sh保存退出。
4.检查
重启服务器,使用ps-ef看看svn进程是否启动了。以后开机就自动启动svn了。
五 安装SVN客户端
以业界流行的TortoiseSVN为例,下载地址:
http://sourceforge.net/projects/tortoisesvn/files/latest/download?source=dlp
客户端连接地址:svn://公网或内网的IP地址(如192.168.0.141):3690
用户名/密码: test/123456 ##要和之前设置的用户名和密码匹配。