Linux:
svn(subversion)是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。svn服务器有2种运行方式:独立服务器和借助apache等web服务器。两种方式各有利弊。svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
本文主要介绍SVN独立服务器的的安装和简单配置:
1.安装(CentOS下yum即可方便的完成安装)
# yum install subversion
测试安装是否成功:
# svnserve --version 回车显示版本说明安装成功
2.建立版本库
# mkdir /svndata 创建svn数据目录(目录可自行制定) # svnadmin create /svndata/kuming kuming就是版本库的名字,可以改变!
3.配置svn配置文件(为了方便管理,这里多个库调用相同的配置文件。)
1)主配置文件:每个版本库创建之后都会生成svnserve.conf主配文件
# vim /svndata/kuming/conf/svnserve.conf
[general] anon-access = none auth-access = write password-db = /svndata/conf/passwd authz-db = /svndata/conf/authz realm = kuming
2)配置用户
# mkdir /svndata/conf # vim /svndata/conf/passwd //svn用户配置文件
[users] user1 = password1 user2 = password2 user3 = password3 user4 = password4
3)权限配置文件
# vim /svndata/conf/authz //svn权限控制配置文件
[groups] #设置组 group1 = user1,user2 #多用户用逗号隔开 [/] #根目录权限设置(就是“kuming”这个文件夹) user3 = rw #用户1权限是:可读写 user4 = r #用户2权限是:可读,不可写 user = #什么都没写代表没有任何权限 @group1 = rw #设置组权限 [kuming:/123] #设置根目录下“123”文件夹的权限 #说明“123”这个文件件怎么创建?这是在SVN服务器配置好之后,创建一个权限很高的用户在客户端登录SVN #然后创建一个文件夹“123”。
4.启动服务器
# svnserve -d -r /svndata
-d表示以daemon方式(后台运行)运行
-r /svndata指定根目录是/svndata
5.关闭SVN 服务器
# killall svnserve
6.查看服务
# ps aux | grep svnserve 查看服务,端口:3690
7.SVN客户端浏览方法
客户端使用的软件是TortoiseSVN,浏览方法:打开版本库浏览器输入:svn://ip-addr/kuming/文件夹名
附:下面是随便折腾一个小脚本用来管理服务器的启动、重启、停止等操作
# vim svn # chmod +x svn
#!/bin/bash case "$1" in start) svnserve -d -r /svndata svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'` if [ $svnport -eq 3690 ] then echo "SVN Server Already Runnning. Port:3690" else echo "SVN Server Does Not Start" fi ;; reload) svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'` if [ $svnport -eq 3690 ] then killall svnserve && svnserve -d -r /svndata echo "Reload OK" else echo "SVN Server Is Not Running" fi ;; stop) killall svnserve echo "SVN Server Has Been Stopped" ;; status) svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'` pid=`ps aux | grep svnserve | grep -v "grep" | awk '{print $2}'` if [ $svnport -eq 3690 ] then echo "SVN Server (pid:$pid) 正在运行..." else echo "SVN Server 停止运行..." fi ;; *) echo "$0: Usage: $0 {start|status|stop|reload}" exit 1 ;; esac
联系人:徐经理
手机:13907330718
电话:0731-22222718
邮箱:hniatcom@163.com
地址: 湖南省株洲市石峰区联诚路79号轨道智谷2号倒班房6楼603室