centos搭建svn实录

1首先,安装:
 . 执行命令:yum install subversion
(ubuntu安装命令:sudo apt-get install subversion)
2安装完成后,检测是否安装成功,以及版本号:
.执行命令:svn --version
我的个人会出现如下提示,表明安装成功,版本是1.6.11:

3.现在开始搭建svn仓库:
执行下面两个命令:
  (1)mkdir  -p  /opt/svn/repos
   (2)  svnadmin  create  /opt/svn/repos
执行成功后,在 /opt/svn/repos文件夹下即可看到repos下有生成了多个文件,如下图

4,打开/opt/svn/repos/conf目录下的passwd文件

5.4,打开/opt/svn/repos/conf目录下的authz文件(authz文件是对用户权限的控制,passwd是设置用户名和密码,svnserve.conf是针对svn的配置)


6.最后设定svnserve.conf配置
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password
authz-db = authz   # 访问控制文件 
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.

7.文件配置到此基本上就OK了,现在开始启动我们的svn服务器:
    执行命令:svnserve -d -r /opt/svn/repos
查看服务是否起来:
  执行命令:netstat -tunlp | grep svn

注意:修改完配置文件后记得重新启动svn服务器,可先停止svn服务,然后再启动
(1)killall svnserve
(2)svnserve -d -r /opt/svn/repos


二:部署项目到SVN上,实现本地更新同步到服务器项目:配置项目仓库的钩子配置
可以把钩子看成是WEB项目于SVN项目仓库之间的一个关联,通过向SVN项目仓库提交脚本代码,利用钩子shell脚本可以自动向web项目中将脚本文件更新过去

开始之前,首先我已经在win客户端的tortoiseSVN先建立好项目文件目录www了,如下图



1.进入SVN项目仓库钩子所在的目录,shell命令:cd /opt/svn/repos/hooks/,
然后复制备份post-commit文件:cp post-commit.tmpl post-commit


OK,假设我的项目文件我是假设放在/home (建议放在nginx的web目录下)
为了能够让SVN仓库同步将项目更新过来,那么首先需要从仓库checkout出项目到home目录下面,
分别执行shell命令:
   cd /home
   svn co svn://localhost/www --username junlin--password junlin
此时在home目录下你将会看到你checkout出来的项目了,接下来要开始写触发脚本,实现在win本地上传更新你的项目文件的同时,同步更新仓库内的文件。
在/opt/svn/repos/hooks目录下打开post-commit文件,屏蔽里面所有的代码,在文件最后写入:
cd /home
 /usr/bin/svn cleanup
/usr/bin/svn up /home/www  --username "junlin" --password "junlin"
如图:


OK,最后保存退出,然后在你的window本地的tortoiseSVN客户端上传一个文件到www目录下,即可发现服务器的/home/www目录也会出现该文件。
若出现:post-commit错误代码255,应该是脚本权限不对,赋予777权限即可
除了/home/www目录要赋予777权限之外还有/opt/svn/repos目录下的hooks目录也要赋予777权限


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章