1.yum install mod_dav_svn subversion
下面主要探讨下svn的配置。
1、建立 SVN 的根目录:
[root@vm-moodle ~]# mkdir -p /opt/svn/
2、建立一个数据仓库:
- [root@vm-moodle ~]# mkdir -p /opt/svn/edu/
- [root@vm-moodle ~]# svnadmin create opt/svn/edu/
3、修改配置文件:
- [root@vm-moodle ~]# cd /opt/svn/edu/conf/
- [root@vm-moodle conf]# ll
- 总计 24
- -rw-r--r-- 1 root root 710 10-25 09:40 authz
- -rw-r--r-- 1 root root 325 10-25 09:38 passwd
- -rw-r--r-- 1 root root 1449 10-25 09:36 svnserve.conf
- ##****************************************************************
- # 注意,下面的配置文件中的参数前面一定不能留空格,否则后果自负!
- ##****************************************************************
- [root@vm-moodle conf]# vi svnserve.conf
- [general]
- anon-access = none #不允许匿名访问
- auth-access = write #认证用户可写
- password-db = passwd #密码文件
- authz-db = authz #用户验证文件
- [root@vm-moodle conf]# vi authz
- [edu:/]
- hansy = rw
- # 给edu仓库添加一个名称为的用户,权限为可写。
- [root@vm-moodle conf]# vi passwd
- hansy = 87827192
- # 密码可以是加密密码,也可以是明文,根据前面的配置来决定
4、启动服务:
- #启动SVN 服务,并指定 SVN 的根目录:
- [root@vm-moodle ~]# svnserve -d -r /opt/svn/
- #查看服务是否正常起来:
- [root@vm-moodle ~]# netstat -tunlp | grep svn
- tcp 0 0 0.0.0.0:3690 0.0.0.0:*
- EN 3970/svnserve
- #LISTEN 监听端口3690
5、在Win上安装TortoiseSVN客户端
下载需要的Tortoise版本进行安装。因为这里的安装没有和WEB服务如Apache连接,所以在客户端访问时使用SVN协议进行。
一般如:svn://192.168.1.10/edu
输入用户名、密码即可正常访问。
一问一答:
问:安装好svn服务后在windows下用svn客户端连接不上svn服务器?
答:一般是centos中SVN的3690端口没有打开,使用下面方法
- [root@vm-moodle ~]#iptables -I INPUT -p tcp --dport 3690 -j ACCEPT #开放3690端口
- [root@vm-moodle ~]#/etc/rc.d/init.d/iptables save #保存配置,非常重要
- [root@vm-moodle ~]#/etc/init.d/iptables status # 查看是否已经成功:
问:配置基于svnserve的subversion服务器后,在客户端访问subversion版本库时出现这个错误:svnserve.conf:12: Option expected;为什么会出现这个错误呢?
答:因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件。看下面的配置文件。
- [general]
- ### These options control access to the repository for unauthenticated
- ### and authenticated users. Valid values are "write", "read",
- ### and "none". The sample settings below are the defaults.
- anon-access = read
- auth-access = write
在上面的配置文件中,anon-access是顶行的,没问题,而auth-access就存在前置空格,会导致这个错误。
要避免出现这个错误,应该在去掉这些行前的#时,也要顺手去掉前面的空格.
问:如何输入TortoiseSVN的用户名、密码?
答:很多时候,为了方便,我们在使用Tortoise时,会勾选密码输入框那里的保存验证信息。但是当我们想换一个用户登录时,却可能发现不知道怎么换用户进行登录。Tortoise的用户名密码等认证信息都是缓存在客户端文件系统的这个目录:
C:/Documents and Settings/Administrator/Application Data/Subversion/auth
删除auth下面的所有文件夹,重新连接远程服务器进行检出,对话框就会出现!
=====另一个资料======================
1.建立版本库
进入到svn的安装目录/usr/local/svn/bin下,首先建立一个文件夹:mkdir -p /usr/local/snvdata/然后输入命令./svnadmin create /usr/local/svndata/repos就建立了一个版本库了。
2.进入/usr/local/svndata/repos/conf就可以看到svn的配置文件,首先配置svnserve.conf
配置如下:
anon-access = none
auth-access = write
password-db = passwd
realm = My First Repository
其它配置文件一律注释掉,特别是### authz-db = authz,因为如果不是需求组权限配置的话千万不要配置这个,会有预料不到的错误
之后配置passwd文件
[users]
用户名 = 密码
配置时可以采用 vi passwd 打开文件之后,输入i可以进行修改,改完之后按住ESC退出并输入:wq
即可保存修改
3.查看svn进程是否已经启动,ps -ef|grep svn 然后输入 kill 进程号 杀死该进程,之后到/usr/local/svn/bin目录下输入命令:svnserve -d -r /opt/svndata/repos --listen-host=218.241.157.42
svn:导入
svn import /usr/local/dooynn/ svn://218.241.157.42/repos/dooynn -m "test import"
查看
svn list svn://218.241.157.42/repos
但是外网竟然 连不上来,怎么办?
No connection could be made because the target machine actively refused it.
svn: Can't connect to host '218.241.157.42': No connection could be made because the target machine actively refused it.
看样子是防火墙的问题,首先关闭防火墙试试。
service iptables stop
=====第三个资料==========================================
1.环境
centos5.5
2.安装svn
yum -y install subversion
3.配置
建立版本库目录
mkdir /www/svndata
svnserve -d -r /www/svndata
4.建立版本库
创建一个新的Subversion项目
svnadmin create /www/svndata/oplinux
配置允许用户rsync访问
cd /www/svndata/oplinux/conf
vi svnserve.conf
anon-access=none
auth-access=write
password-db=passwd
注:修改的文件前面不能有空格,否则启动svn server出错
vi passwd
[users]
#<用户1> = <密码1>
#<用户2> = <密码2>
rsync=rsync
5.客户端连接
svn co svn://ip/oplinux
用户名密码:rsync
===============================================================
6.实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中
1)设置WEB服务器根目录为/www/webroot
2)checkout一份SVN
svn co svn://localhost/oplinux /www/webroot
修改权限为WEB用户
chown -R apache:apache /www/webroot/oplinux
3)建立同步脚本
cd /www/svndata/oplinux/hooks/
cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容
export LANG=en_US.UTF-8
SVN=/usr/bin/svn
WEB=/www/webroot/
$SVN update $WEB –username rsync –password rsync
chown -R apache:apache $WEB
增加脚本执行权限
chmod +x post-commit