当前位置: 首页 > news >正文

linux配置svn如何检出,Linux CentOS下配置SVN+SVN勾子

环境介绍:

操作系统: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

-----------小欢原创

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • os x arm-linux,在 OS X 下构建 ARM 64 镜像
  • 晚上的校园歌手晚会
  • linux fs源代码分析,BlueFs源代码分析报告.doc
  • Get Information from Tracert Command
  • securecrt linux开发板,SecureCRT 登陆虚拟机中Ubuntu详解
  • 西直门交警
  • c语言文件分割与合并程序详解,如何实现将一个文件分割成多个小文件
  • 使用dbms_rowid包获得rowid的详细信息
  • 高斯消元法的应用
  • 小波 c语言实现,小波分析算法的公式与C语言实现
  • 输入一行数字把5都看成空格 C语言,算法设计习题整理112.doc
  • 值得尊敬的---抵抗之都费卢杰
  • 风潇潇兮
  • 单片机c语言基本类型修饰符,下列属于 C语言中类型修饰符的是()。
  • 不知如何走的立交桥(西直门交警一文背景)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【个人向】《HTTP图解》阅后小结
  • Akka系列(七):Actor持久化之Akka persistence
  • Apache Zeppelin在Apache Trafodion上的可视化
  • axios 和 cookie 的那些事
  • C++类中的特殊成员函数
  • C语言笔记(第一章:C语言编程)
  • Java多线程(4):使用线程池执行定时任务
  • js对象的深浅拷贝
  • Laravel Mix运行时关于es2015报错解决方案
  • Mithril.js 入门介绍
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PHP 7 修改了什么呢 -- 2
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Spark学习笔记之相关记录
  • 技术:超级实用的电脑小技巧
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 手写双向链表LinkedList的几个常用功能
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一道面试题引发的“血案”
  • 用jquery写贪吃蛇
  • No resource identifier found for attribute,RxJava之zip操作符
  • #Linux(帮助手册)
  • (30)数组元素和与数字和的绝对差
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)c++ std::pair 与 std::make
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .FileZilla的使用和主动模式被动模式介绍
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 反射的使用
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .net操作Excel出错解决
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)