本文直接使用yum命令安装svn
一 yum安装subversion
命令: yum install subversion
查看安装版本,检测安装是否成功 svnserve --sersion
查看安装版本 rpm -ql subversion
二 创建目录结构(配置多个项目,这里先建立两个项目示范)
创建我们管理根目录 mkdir -p /home/svn/
创建svn版本库,我们存放项目的目录 mkdir -p /home/svn/repos
创建项目目录 svnadmin create /home/svn/repos/bloga
步骤:
1,创建根目录mkdir -p /home/svn/
2,创建svn版本库,我们存放项目的目录 svnadmin create /home/svn/repos
3,创建项目目录bloga svnadmin create /home/svn/repos/bloga
创建项目目录blogb svnadmin create /home/svn/repos/blogb
在bloga|blogb目录下我们都可以看到 conf db hooks locks format README.txt
这代表已经安装完成了,接下来就是配置问题
三 配置
将conf下的配置文件(passwd,authz,svnserve.conf)拷贝一份到目录/var/svn下
三个文件的作用:
Passwd 设置用户和密码
Authz 访问授权
Svnserve.conf 配置文件
1修改passwd
在[users]添加用户和密码
[users]
# harry = harryssecret
# sally = sallyssecret
admin=123456 #repos组长
bloga=123456 #bloga组员
blogb=123456 #blogb 组员
2修改authz配置权限
[groups]
group_admin=admin
[/]#英文反斜杠
@group_admin=rw
[repos/bloga:/]
bloga=rw
[repos/blogb:/]
blogb=rw
3修改svnserve.conf设置
[general]
Password-db=passwd
Authz-db=authz
Rerlm=xRepos
就是注释去掉
接来下就是启动服务的脚本,每次修改配置文件后都需要重启服务(这是常识,不管你以后修改什么软件的配置文件,都需要重启服务)
如果你之前已经启动过svn服务,这里需要kill
查看svn服务命令 ps -ef|grep svn
Kill 结束进程命令 kill 2380
启动svn服务 svnserve -d -r path
-d 表示后台运行
-r 指定根目录
svnserve -d -r /home/svn \
然后输入 --config-file==/home/svn/svnserve.conf
到这一步整个过程就结束了
下面验证客户端
windows安装我就不多说,网上很多教程,其实也不用教程,下载-安装就可以了
直接输入svn://你的ip地址/repos/bloga
如果正确就应该显示可能还需要输入账号密码,admin 123456 组员登陆就bloga 123456
上面那些是我随便添加的一些数据
总结
如果需要添加新项目就在repos添加
svnadmin create newproject
配置文件,一定要重启服务
四 同步本地和服务器
我们现有SVN版本库中的两个项目:home/svn/repos下的bloga和blogb
我们取bloga作为例子
SVN版本库中的一个项目:home/svn/repos/bloga
网站目录:/home/blog/
我们先将SVN版本库中的一个项目checkout到网站目录:
命令 svn co file:///home/svn/repos/bloga/ /home/blog/
然后利用钩子同步本地和服务器
打开目录 cd /home/svn/repos/bloga/hooks
复制文件cp post-commit.tmpl post-commit
打开post-commit文件 vi post-commit
修改(最后那里修改就好)
REPOS="$1"
REV="$2"
export LANG="zh_CN.UTF-8" #防止乱码
svn update /home/blog --username admin --password 123456 --no-auth-cache #设置登陆账号密码并不缓存
#/home/blog 为我们的网站目录
注:不要遗漏post-commit文件第一行的#!/bin/sh,否则post-commit会报代号255的错误。
最后保存文件,修改文件权限为755,否则SVN无法调用执行:修改post-commit的可执行权限
chmod 755 post-commit
Or
chmod +x /home/svn/tcyg/hooks/post-commit
就完成了svn文件提交后自动同步更新到网站目录的代码了。
OK,至此,就完成所有,尽管可能存在很多漏洞,但新手本人至少是这样完成整个个过程,不喜勿喷。
Ps 冲突的一个基本处理就是清理
清理命令:svn cleanup
如果需要冲突,在客户端清理还是冲突就到服务器上清理,即在/home/blog目录上运行命令 svn cleanup
如果你的网站目录就是上线的网站,此操作慎重
一般来说同步本地和服务器 都是测试环境,正式环境不建议同步