阿里云Linux - 网络环境:专有网络。
本文讲述个人的做的步骤。非绝对正确理论科普。
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
cd /etc/httpd/modules
ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
svnserve --version
安装完成后要建立SVN库
mkdir -p /opt/svn/repositories
svnadmin create /opt/svn/repositories
执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
进入上面conf文件夹下,进行配置:
vim + passwd //+表示光标放在文件最低端
[users]
harry = harryssecret
sally = sallyssecret
clw=clw888
vim + authz
设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[/]
clw=rw //给该用户访问所有库的权限
或
[repositories:/project] //repository库的根目录权限
zhoulf=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
repositories:/ 表示对库repositories的根目录设置权限
PS:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
vim + svnserve.conf
添加以下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm= /opt/svn/repositories
填的是版本库目录( /home/svndata/ecos/)
use-sasl = true 这个要注释上,还不知道 sasl 这个服务是什么。
———————-这一步直接解开原来文件的注释修改就可以了。
svnserve -d -r /opt/svn/repositories
ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
killall svnserve //停止
svnserve -d -r /opt/svn/repositories // 启动
逻辑是,在服务器网站根目录检出 版本库代码,创建一个工作副本。
最后让该目录自动更新就可以了。
以上就在服务器配置了一个版本库,并在可以在本地检出代码,各个客户端更新代码到版本库都可以更新到。
这里是指定了做版本管理的几个文件夹。域名请自动替换成自己的路径,如果是整个项目的管理,执行一遍即可。
把网站根目录代码 导入到版本库,让版本库有代码。做为最初版本的代码。
# svn import /home/wwwroot/ecos/app file:///home/svndata/ecos/app/ -m “Initial import”
# svn import /home/wwwroot/ecos/custom file:///home/svndata/ecos/custom/ -m “Initial import”
# svn import /home/wwwroot/ecos/public/app file:///home/svndata/ecos/public/app -m “Initial import”
删除网站根目录的 以上三个文件目录。
rm -rf ./app ./custom ./public/app/
检出版本库代码到网站目录项目 // 这里是指定了做版本管理的文件夹。域名请自动替换成自己的路径
svn co –username admin –password Aadmin888 svn://120...174/ecos/app /home/wwwroot/ecos/app/
svn co –username admin –password Aadmin888 svn://120...174/ecos/custom /home/wwwroot/ecos/custom/
svn co –username admin –password Aadmin888 svn://120...174/ecos/public/app /home/wwwroot/ecos/public/app
来到版本库的 hooks 目录,
vim post-commit 创建这个文件,并赋予这个文件用户的可执行权限。
>
!/bin/sh
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
svn up /home/wwwroot/ecos/custom --username admin --password Aadmin888
svn up /home/wwwroot/ecos/app --username admin --password Aadmin888
svn up /home/wwwroot/ecos/public/app --username admin --password Aadmin888
重启SVN 服务。去本地跟新代码,并且上传测试即可。
killall svnserve
//停止
svnserve -d -r /home/svndata
// 启动