一、SVN介绍html
二、安装SVN服务数据库
三、配置SVN服务apache
一、SVN介绍后端
SVN,全称Subversion,是一款跨平台的开源的版本管理控制工具。管理着随时间改变的各类数据,这些数据存放在一个中央资料档案库(repository)中,并会备份和记录每一个文件每一次的修改更新变更。故能够把任意一个时间点的档案恢复到想要的某一个旧的版本,也能够直接浏览指定文件的更新历史记录。SVN相关站点:安全
Subversion官网:http://subversion.tigris.org/ http://subversion.apache.org/
bash
SVN客户端:http://tortoisesvn.net/
服务器
SVN中文网站:http://www.iusesvn.com/
网络
中文常见问题解答FAQ:http://subversion.apache.org/faq.zh.html
app
官方手册:http://svnbook.red-bean.com/ 中英文都有ide
SVN服务端运行方式(3种):
1)独立服务器访问
访问地址: svn://192.168.1.123/binDoc
2)借助Apache等http的服务
访问地址:http://192.168.1.123/binDoc 或 https://192.168.1.123/binDoc
注:这个也有两种方式:单独安装apache和svn;安装VisualSVN软件或CSVN软件
3)本地访问
访问地址:file://192.168.1.123/binDoc
SVN档案库数据格式
SVN存储版本数据有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不须要数据库的存储系统)。由于BDB方式在服务器中断时,有可能锁住数据,因此仍是FSFS方式更安全一点。
BDB:
伯克利DB(Berkeley DB),版本库可使用的一种通过充分测试的后台数据库实现,不能在经过网络共享的文件系统上使用,伯克利DB是Subversion 1.2版本之前的缺省版本库格式。
FSFS:
一个专门用于Subversion版本库的文件系统后端,可使用网络文件系统(例如NFS或SMBFS),是1.2版本及其后的缺省版本库格式。
二、安装SVN服务
1)检查SVN软件程序是否已安装:
[root@Binggo ~]# rpm -qa subversion subversion-1.6.11-10.el6_5.x86_64 ###若无这提示信息,则说明未安装
2)如未安装,则执行下面的命令进行安装
[root@Binggo ~]# yum -y install subversion
注:无特殊的功能要求,就能够用以上命令安装通用版本
三、配置SVN服务
创建svn版本库数据存储根目录(svndata)及用户、密码和权限目录(svnpasswd)
[root@Binggo ~]mkdir -p /application/{svndata,svnpasswd}
启动SVN服务指定服务的SVN根目录
[root@Binggo ~]svnserve -d -r /application/svndata/ ###-d以守护进程模式运行,-r指定svn的根目录
查看SVN进程
[root@Binggo ~]ps -ef|grep 3690
检测SVN端口
[root@Binggo ~]netstat -lnt|grep 3690 或 lsof -i :3690
建立项目版本库(不要建立版本库目录binDoc)
[root@Binggo ~]svnadmin create /application/svndata/binDoc
调整svn配置文件及权限文件
例如:配置容许用户binbin读写访问
[root@Binggo ~]cd /application/svndata/binDoc/conf
[root@Binggo ~]cp svnserve.conf svnserve.conf.ori
[root@Binggo ~]cp passwd /application/svnpasswd/passwd
[root@Binggo ~]cp authz /application/svnpasswd/authz
修改配置文件svnserve.conf
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
修改成:
anon-access = none ###是否容许匿名访问,none为禁止
auth-access = write ###访问权限
password-db = /application/svnpasswd/passwd ###统一设置管理svn用户和密码
authz-db = /application/svnpasswd/authz ###统一设置管理svn权限
修改配置文件/application/svnpasswd/passwd
在[users]下新增一行
binbin = binbin123 ###等号左边为用户名,右边为密码
修改配置文件/application/svnpasswd/authz
在最下面新增
[binDoc:/]
binbin = rw ###等号左边为用户名,右边为权限
注:版本库目录用户权限格式:
[<版本库名>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
注意:
× 权限配置文件中出现的用户名必须已在用户配置文件中定义过的
× 对权限配置文件的修改当即生效,没必要重启svn,可是主配置文件svnserve.conf修改则须要重启服务才能生效
说明:重启SVN能够先使用命令pkill svnserve 杀死svn进程在使用svnserve -d -r /application/svndata/重启SVN服务
附录:
svnserve命令的使用参数
[root@Binggo ~]# svnserve --help
usage: svnserve [-d | -i | -t | -X] [options]
Valid options:
-d [--daemon] : daemon mode
-i [--inetd] : inetd mode
-t [--tunnel] : tunnel mode
-X [--listen-once] : listen-once mode (useful for debugging)
-r [--root] ARG : root of directory to serve
-R [--read-only] : force read only, overriding repository config file
--config-file ARG : read configuration from file ARG
--listen-port ARG : listen port
[mode: daemon, listen-once]
--listen-host ARG : listen hostname or IP address
[mode: daemon, listen-once]
-T [--threads] : use threads instead of fork [mode: daemon]
--foreground : run in foreground (useful for debugging)
[mode: daemon]
--log-file ARG : svnserve log file
--pid-file ARG : write server process ID to file ARG
[mode: daemon, listen-once]
--tunnel-user ARG : tunnel username (default is current uid's name)
[mode: tunnel]
-h [--help] : display this help
--version : show program version information
svnadmin命令的参数
[root@Binggo ~]# svnadmin --helpgeneral usage: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]Type 'svnadmin help <subcommand>' for help on a specific subcommand.Type 'svnadmin --version' to see the program version and FS modules.Available subcommands: crashtest create deltify dump help (?, h) hotcopy list-dblogs list-unused-dblogs load lslocks lstxns pack recover rmlocks rmtxns setlog setrevprop setuuid upgrade verify