温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Ubuntu14.04安装svn设置post-commit钩子

发布时间:2020-06-27 07:40:52 来源:网络 阅读:361 作者:sendmailbaby 栏目:开发技术

1、介绍

  Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以很方面恢复到以前的版本,并可以查看数据更改细节。目前,Subversion已成为主流的开源代码版本管理软件之一,简称SVN。

2、SVN相关命令了解

  svn:命令行客户端

  svnadmin:用来创建、调整或修复版本库的工具

  svnserve:svn服务程序

  svndumpfilter:过滤svn版本库转储数据流的工具

  svnsync:svn数据同步工具,实现另外存一份相同的

  svnlook:用来查看办本科中不同的修订版和事务

3、两种运行模式

  3.1 利用svnserve作为独立服务运行,通过svn协议访问

  3.2 借助mod_dev_svn模块,由apache服务运行(Web/DAV),通过http或https协议访问。想了解此运行模式可以参考着篇博文:http://lizhenliang.blog.51cto.com/7876557/1340646

4、安装与部署

对于Ubuntu来说,装个SVN是件很容易的事,可以直接通过apt软件包管理安装。

  4.1 直接安装

  # sudo apt-get install subversion

  4.1 创建版本库

  # sudo mkdir –p /srv/svn/eweb  

  # sudo svnadmin create /srv/svn/eweb

  4.2 了解版本库

  # 进入版本库查看生成的相关文件

  # ls /srv/svn/eweb

  conf  db  format  hooks locks  README.txt

  # 我们主要关心的是conf和db文件,conf文件夹下是存放主配置文件和用户、权限位置,db文件夹是存放svn转储后的数据。

  # ls /srv/svn/eweb/conf

  authz  passwd  svnserve.conf

  # authz文件是设置用户权限,passwd文件是存储用户及密码,svnserve.conf是主配置文件,先配置主配置文件。

  4.3配置版本库

 # sudo vi svnserve.conf  #将以下参数去掉注释(要顶格)

  [general]

  anon-access = none    #匿名访问权限,默认read,none为不允许访问

  auth-access = write   #认证用户权限  

  password-db = passwd #用户信息存放文件,默认在版本库/conf下面,也可以绝对路径指定位置

  authz-db = authz

 # sudo vi passwd     #格式是用户名=密码,采用明文密码

  [users]

  xiaoming = 123

  zhangsan = 123

  lisi = 123

  zhangchengjie = zhangchengjie@!2016   

 # sudo vi authz 

  [groups]           #定义组的用户

  manager = xiaoming

  php = zhangsan,lisi,zhangchengjie

  [eweb:/]          #以根目录起始的eweb版本库manager组为读写权限

  @manager = rw

  [eweb:/media]     #php组对eweb版本库下media目录为读写权限

  @php = rw

  4.4 启动svn服务

  # sudo svnserve -d -r /srv/svn --listen-port 21321Ubuntu14.04安装svn设置post-commit钩子

  4.5关闭svn服务

  #sudo pkill svnserve

5.创建web访问目录

  #mkdir -p /var/www/eweb 我的web在这里根据自己机器环境定

  5.1设置钩子post-commit

  #sudo cp /srv/svn/eweb/hooks/post-commit.tmpl /srv/svn/eweb/hooks/post-commit

  #sudo vim /srv/svn/eweb/hooks/post-commit

  添加如下内容

  export LANG="en_US.UTF-8"

  SVN=/usr/bin/svn 

  WEB=/var/www/eweb

  $SVN update $WEB --no-auth-cache --non-interactive --username zhangchengjie --password 'zhangchengjie@!2016'

  chown -R www:www $WEB

  chmod +x post-commit

  从新启动服务

  #sudo pkill svnserve

  #sudo svnserve -d -r /srv/svn --listen-port 21321

6.在终端下执行如下命令

  #svn co svn://127.0.0.1:21321/eweb /var/www/eweb --username zhangchengjie--password ‘zhangchengjie@!2016’

  注意:127.0.0.1/eweb是svn仓库名,/var/www/eweb是web目录,如果在password中密码使用特殊字符需要用单引号引用,否则会报错bash不解析。

7.客户端验证,写phpinfo文件通过浏览器访问测试。

Ubuntu14.04安装svn设置post-commit钩子


Ubuntu14.04安装svn设置post-commit钩子

8.为了方便以后启动关闭在sbin建立svn启动脚本

vim /sbin/svn


  1 #!/bin/bash

  2 #autor:boy

  3 #date:2016/7/28

  4 # startup/stop/restart svn services

  5 

  6 ####### start ##############

  7 

  8 case "$1" in

  9         start)

 10                 sudo svnserve -d -r /srv/svn --listen-port 21321

 11         ;;

 12 

 13         stop)

 14                 sudo pkill svnserve

 15         ;;

 16 

 17         *)

 18                 echo "Usage:start,stop"

 19         ;;

 20 

 21 esac

chmod 755 /sbin/svn
sudo /sbin/svn stop

sudo /sbin/svn start

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI