博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
svn服务器配置以及自动同步到web服务器
阅读量:6574 次
发布时间:2019-06-24

本文共 4207 字,大约阅读时间需要 14 分钟。

感觉再不用svn就真的老了。

安装

yum install subversion

新建repo

mkdir -p /opt/svn/myreposvnadmin create /opt/svn/myrepo

修改repo的配置文件

vim /opt/svn/myrepo/conf/svnserve.conf

内容修改为:

### This file controls the configuration of the svnserve daemon, if you### use it to allow access to this repository.  (If you only allow### access through http: and/or file: URLs, then this file is### irrelevant.)### Visit http://subversion.apache.org/ for more information.[general]### The anon-access and auth-access options control access to the### repository for unauthenticated (a.k.a. anonymous) users and### authenticated users, respectively.### Valid values are "write", "read", and "none".### Setting the value to "none" prohibits both reading and writing;### "read" allows read-only access, and "write" allows complete ### read/write access to the repository.### The sample settings below are the defaults and specify that anonymous### users have read-only access to the repository, while authenticated### users have read and write access to the repository.anon-access = readauth-access = write### The password-db option controls the location of the password### database file.  Unless you specify a path starting with a /,### the file's location is relative to the directory containing### this configuration file.### If SASL is enabled (see below), this file will NOT be used.### Uncomment the line below to use the default password file.password-db = passwd### The authz-db option controls the location of the authorization### rules for path-based access control.  Unless you specify a path### starting with a /, the file's location is relative to the the### directory containing this file.  If you don't specify an### authz-db, no path-based access control is done.### Uncomment the line below to use the default authorization file.authz-db = authz### This option specifies the authentication realm of the repository.### If two repositories have the same authentication realm, they should### have the same password database, and vice versa.  The default realm### is repository's uuid.realm = myrepo   ##!!要和你前面的repo名字一致### The force-username-case option causes svnserve to case-normalize### usernames before comparing them against the authorization rules in the### authz-db file configured above.  Valid values are "upper" (to upper-### case the usernames), "lower" (to lowercase the usernames), and### "none" (to compare usernames as-is without case conversion, which### is the default behavior).# force-username-case = none[sasl]### This option specifies whether you want to use the Cyrus SASL### library for authentication. Default is false.### This section will be ignored if svnserve is not built with Cyrus### SASL support; to check, run 'svnserve --version' and look for a line### reading 'Cyrus SASL authentication is available.'# use-sasl = true### These options specify the desired strength of the security layer### that you want SASL to provide. 0 means no encryption, 1 means### integrity-checking only, values larger than 1 are correlated### to the effective key length for encryption (e.g. 128 means 128-bit### encryption). The values below are the defaults.# min-encryption = 0# max-encryption = 256

添加用户

vim /opt/svn/project/conf/passwd
[users]# harry = harryssecret# sally = sallyssecretchris = my_password

修改用户访问策略

vim /opt/svn/project/conf/authz[groups]repositories = chris[/]@repositories = rwchris = rw

启动和关闭svn服务

svnserve -d -r /opt/svn/repositories
killall svnserve

注意 如果开启了防火墙,记得放行相应端口

同步到web服务器

假设web服务器中,本项目myrepo对应/var/www/html/mall目录.

要先到web服务器中项目目录下svn checkout:

cd /var/www/html/mallsvn check svn://218.244.143.208

然后配置/opt/svn/myrepo/hooks/post-commit内容为:

#!/bin/sh#设定环境变量,如果没有设定可能会出现update报错export LANG=zh_CN.UTF-8REPOS="$1"REV="$2"SVN_PATH=/usr/bin/svnWEB_PATH=/var/www/html/mallLOG_PATH=/tmp/svn_update.logecho "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATHecho `whoami`,$REPOS,$REV >> $LOG_PATH$SVN_PATH update --username chris --password pipe42 $WEB_PATH --no-auth-cache >> $LOG_PATHchown -R apache:apache $WEB_PATH

并注意修改post-commit文件权限:

chmod +x post-commitchown apache:apache post-commit

好了,大功告成,现在在开发机上用svn客户端软件,把repo们checkout到本地,然后add和commit后,web服务器上会自动同步!

转载地址:http://hzljo.baihongyu.com/

你可能感兴趣的文章
jQuery-1.9.1源码分析系列(十) 事件系统——事件包装
查看>>
谢惠民,恽自求,易法槐,钱定边编数学分析习题课讲义习题参考解答
查看>>
禅道 Rest API 开发
查看>>
在opencv3中实现机器学习之:利用逻辑斯谛回归(logistic regression)分类
查看>>
springmvc(4)注解简单了解
查看>>
并集(union和union all的区别)、交集、差集、全连接
查看>>
Fragment与FragmentActivity通信封装
查看>>
飘逸的python - yield简明教程
查看>>
sql查询重复记录、删除重复记录方法大全
查看>>
hdu1711 Number Sequence
查看>>
js如何判断一组数字是否连续,得到一个临时数组[[3,4],[13,14,15],[17],[20],[22]];
查看>>
PHP利用memcache缓存技术提高响应速度
查看>>
python 多线程笔记(2)-- 锁
查看>>
EXT--表单AJax提交后台,返回前端数据格式的转换
查看>>
个人作品- 蘑菇大战
查看>>
protobuf使用错误总结
查看>>
Tomcat可以在eclipse里启动,可是不能訪问首页的问题
查看>>
QueryPerformanceFrequency使用方法--Windows高精度定时计数
查看>>
在Linux环境下安装和配置phpmyadmin
查看>>
Co-prime Array&&Seating On Bus(两道水题)
查看>>