1.
yum install subversion
2.
测试是否成功
svnserve --version
显示版本信息,则表示安装成功
3.
配置/home/svn/repo为仓库的路径为例子,理论上可以是任何路径
首先创建路径:
然后创建仓库:
svnadmin create /home/svn/repo
4
4.1 配置文件
vim /home/svn/repo/conf/svnserve.conf
[general]
anon-access = none //匿名访问的权限,设置为none表示为不允许,默认是read
auth-access = write //可以是read,write,none,默认是write
password-db = passwd //密码数据库的路径,去掉前面的#
authz-db = authz
4.2 配置完这个文件后,配置密码文件
vim /home/svn/repo/conf/passwd
[user]
username = passwd
上面的例子为填写用户名和密码,如果是terry 密码为123456,那么
[user]
terry = 123456
4.3 配置文件 /home/svn/repo/conf/authz
[groups]
[/]
terry = rw
#代表terry 这个账户对应的路径为根目录,对根目录下的所有文件和文件夹有读写的权限
[/magento]
terry = r
#代表terry这个账户对应的路径是magento文件夹,在这个目录下的文件只有读的权限
[/magento/app/etc/local.xml]
terry =
#代表terry对上面这个文件不可见。即:不可读,不可写
4.4
设置可读
vim /home/svn/repo/conf/svnserve.conf
anon-access = none
设置完成后,关闭svn,重启
首先关闭iptables
service iptables stop
关闭svn: killall svnserve
启动svn: svnserve -d -r /home/svn/repo --listen-host ip地址
5
经过了4步骤,我们创建了账户,设置了账户的权限,当我们用svn工具访问svn://ip地址,就可以访问了。
在本地可以通过上传文件到svn服务器
我们想要的是svn中提交的文件,复制到服务器的web路径中,所以我们需要把svn中的数据提交到web路径
这里我们使用的命令式svn up,强制提交:svn up --force
首先我们需要先设置,把svn中的路径,对应的web目录
譬如:svn://192.168.1.12/magento 对应到/www/web/come/public_html,我们的配置为
svn co svn://192.168.1.12/magento /www/web/come/public_html
然后需要输入root密码,
然后需要输入提交账户,这个账户就是svn的在上面配置文件中添加的账户,
更改svn up 账户命令:svn co --username xxx svn://192.168.1.12/magento
6
如果svn up 报错:
Skipped '.'
需要到输出的路径下,譬如到/www/web/come/public_html下面svn up 就可以了
7
开机启动svn
vi /etc/rc.local
在最后一行加入:
svnserve -d -r /home/svn/repo
8
自动更新,不需要svn up
svn co svn://115.29.18.29/erp /www/web/
在SVN 项目版本库的存储目录下的hooks 目录,新建立一个post-commit文件:
vi /home/svn/repo/hooks/post-commit
增加代码:
复制代码 代码示例: WEB为您的网站地址
touch /home/svn/repo/hooks/svn_hook.log
chmod 777 -R /home/svn/repo/hooks/svn_hook.log
#!/bin/sh
REPOS="$1"
REV="$2"
WEB=/www/web
export LANG=en_US.UTF-8
echo `whoami`,$REPOS,$REV >> /home/svn/repo/hooks/svn_hook.log
svn update $WEB
权限:
复制代码 代码示例:
chmod 777 post-commit
测试,看脚本是否有权限问题:
复制代码 代码示例:
./post-commit
以后每次客户端提交操作,就会自动运行该脚本。