7.
设置开机启动
在centos7,
设置开机启动:
$ sudo systemctl enable svnserve.service #注意:根目录必须是/var/svn 这样才能设置成功!!
#设置开机启动后就可以按下面的方式开启或停止服务了
$ sudo systemctl start svnserve.service
$ sudo systemctl stop svnserve.service
保存退出,重启并从客户端进行测试。如果报这样的错:svn:
E204900: Can't open file '/var/svn/wangwa/format': Permission
denied的错误。那就是与SELinux有关系,目前我还不太会用SELinux,那就先把SELinux关闭吧,后面学会了,回过头来再改这一段!!!!:
临时关闭:
$ sudo setenforce 0
永久关闭:
$ sudo vim /etc/sysconfig/selinux
修改:
SELINUX = disable #值修改为disable.
8. 设置SVN钩子
实现SVN与WEB同步,可以CO一个出来,也可以直接用自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。
第一步:建立你的web程序目录
linux环境:
mkdir /var/www/html/test
进入你建立的web程序目录(svn
checkout可以简写为co)
svn checkout svn://localhost/svntest
//不重命名文件夹,直接在当前目录下检出
或
svn checkout
svn://localhost/svntest test
//检出文件并且重命名文件夹
windows 环境:
1、新建立文件夹
2、在安装了svn客户端后,直接右键 svn checkout把目录检出
第二步:在项目库的 hooks/
目录下新建 post-commit 文件 【钩子脚本】
hooks/目录下已经存在post-commit.tmpl,可以执行命令
cp post-commit.tmpl post-commit
添加脚本内容如下
1、
2、
3、
4、
5、
export LANG=en_US.UTF-8 #(注:这里语言不能写成en_us.utf-8,因为Linux中没有这个小写的语言)
SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
WEB=/var/www/html/test #要更新的目录
$SVN update$WEB --username
cqh --password 123456
chown -R
root:root$WEB (设置所属用户组,可以忽略不需要这行,)
其中SVN=右边改成 svn
命令位置
WEB=右边改成你实际的web目录
第三步:让post-commit有执行的权限
1
chmod a+x
post-commit
这里就已经完成了,已经能实现
本地代码同步提交到线上项目中;
还有个值得提的问题,上面已经实现本地 -->
线上项目,那么线上项目 -->本地,如何解决呢?
就是当线上项目里,创建了文件或者目录时,本地svn如何能update下来呢?
将新增文件添加、提交到svn库中例如:
touch test.php
1、首先将文件
添加到svn中,执行命令
svn add
test.php
2、将文件提交到svn中,执行命令
svn
commit -m '提交内容描述' test.php
3、在本地执行update,看文件是否已被更新下来;已成功update到本地
更多svn命令,自己网上查找学习