热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LinuxCentOS下配置SVN+SVN勾子

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

环境介绍:
操作系统:CentOS release 6.5 (Final) 64位
网络环境:内网

1  配置SVN
1.1  安装SVN组件包
使用yum安装svn所需的组件包
# yum –y install subversion

1.2  配置SVN
1.2.1  创建svn库路径
创建svn库路径,该目录后期提供用户文件写入和读取。
# mkdir -p /date/svn/

1.2.2  创建SVN版本库
使用特定的命令来创建版本库,创建成功后该目录会出现SVN配置文件。
# svnadmin create /date/svn/

1.2.3  定义配置文件
#vim /opt/svndata/repos1/conf/svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd  #定义用户密码的配置文件
authz-db = authz      #定义用户权限的配置文件
realm = svn

1.2.4  用户权限配置
1、创建svn访问用户
#vim /data/svn/passwd

[users]
test = test              创建了一个叫tset密码为test的用户

2、配置用户访问权限
#vi /opt/svndata/repos1/conf/authz

[groups]
admin = test
# harry_and_sally = harry,sally
[/]
@admin = rw
[repos1:/abc/aaa]
@admin = r

版本库目录格式:
[<版本库>:/项目/目录]    #是以项目名作为第一个单位。试想肯定是以项目为单元的
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。
repos1:/,表示对版本库1设置权限
repos2:/abc, ,表示对版本库2中的abc项目设置权限
repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
1.2.5  启动SVN
# svnserve -d -r /date/svn/

-d表示以daemon方式(后台运行)运行
-r /date/svn指定根目录是/date/svn
1.3  配置钩子
1.3.1  配置版本检测工具
自己利用python写了一个自动检测库里面文件版本的工具。代码如下:
# vim /date/svn/hooks/gouzi.py
#!/usr/bin/env python
if __name__=='__main__':
  importsys,string
  try:
    logfile= open('/tmp/python.out','a+')
  logfile.write("this is python hook")
  logfile.close()
  except:
    exit(1)
  sys.exit(0)

此工具需放在库目录中的hooks目录中。
1.3.2  配置UPDATE脚本
1、首先在客户端上手工checkout一次
# svn checkout svn://192.168.21.28/repos

2、编辑自动同步脚本
# vim svn_update.sh

代码如下
 #!/bin/bash
/usr/bin/svn update  /linshi/repos --username test --password test
if [ $? == 0 ]
  then
        echo "ok" >> /tmp/z.out
fi

其中:/linshi/为存放目录(看环境而定)
    --username  test 用户名为test
    --password  test 密码为test
3、修改权限
# chmod +x  /root/svn_update.sh

4、配置计划任务
因脚本无法实现自动执行,故配置计划任务设置每分钟执行一次。
# crontab  -e
*  *  * *  /root/svn_update.sh  > /dev/null  2>&1

Ubuntu 14.04 下搭建SVN服务器 svn://  2015-01/111956.htm

CentOS 6.2 SVN搭建 (YUM安装) 2013-10/91903.htm

CentOS 6.5部署Apache+SVN  2013-12/94315.htm

Apache+SVN搭建SVN服务器 2013-03/81379.htm

Windows下SVN服务器搭建和使用 + 客户端重新设置密码 2013-05/85189p5.htm

Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN数据 2013-05/84695.htm

Ubuntu Server搭建svn服务以及迁移方法 2013-05/84693.htm


推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • Linux 服务器修改用户名
    Linux服务器修改用户名1、编辑名称vimetchostname2、保存编辑并退出wq3、重 ... [详细]
  • 找到JDK下载URL当然去官网找了。目前最新的1.8的下载URL(RPM)如下:http:download.oracle.comotn-pubjavajdk8u161-b122f3 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • PHP连接MySQL的2种方法小结以及防止乱码【PHP】
    后端开发|php教程PHP,MySQL,乱码后端开发-php教程PHP的MySQL配置报错信息:ClassmysqlinotfoundinAnswer:1.在confphp.ini ... [详细]
  • 部署Maven环境
    JDK:在maven3.3以上的版本需要JDK版本1.7,内存:没有最低限制。磁盘:1G可用磁盘空间。操作系统: ... [详细]
author-avatar
fyy1784502
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有