如何创建SVN版本库及同步文件到WEB目录

空谷

一 安装与配置SVN

1.安装subversion

centos: yum install subversion

ubuntu: apt-get install subversion

2.建立版本库,本例中我们的版本库建立在/var/svn,假设该版本库目录为:foo

cd /var

mkdir svn

svnadmin create foo

3.配置版本库

刚才建立的版本库,需要配置认证方式,用户名和密码,权限配置这三个文件,分别对应/var/svn/foo/conf下的

svnserve.conf,passwd和authz这三个文件。

svnserve.conf(去掉注释)

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz.conf

realm = 填写登录时提示的认证域名称

passwd文件添加相应用户名和密码:

user1 = password1

user2 = password2

如果要使用通用的用户名密码和权限认证,指定password-db和authz-db路径到相应passwd和authz.conf文件位置即可

authz文件添加相应用户名到组并分配库权限:

[groups]

foo_user = user1,user2 (多个用户以逗号分隔)

[/]

@foo_user = rw

* =

其中*=意味着匿名用户没有权限,引用组名时要加上@符号

4.启动和使用

配置成功以后,启动svn版本库服务

svnserve -d -r /var/svn

获取版本库:

svn co svn://ip地址/foo

服务器上可以直接使用 svn co file:///var/svn/foo

二、同步到WEB目录

1.创建web目录(已有目录则略过)

cd /var

mkdir www

chmod 777 www

2.检出副本到/var/www

svn co file:///var/svn/foo

3.增加hooks(钩子)文件

在/var/svn/foo/hooks/目录

# start-commit 提交前触发事务

# pre-commit 提交完成前触发事务

# post-commit 提交完成时触发事务

# pre-revprop-change 版本属性修改前触发事务

# post-revprop-change 版本属性修改后触发事务

我们这里只需要修改post-commit文件:

cp post-commit.tmpl post-commit

编辑该文件

#!/bin/sh

# 配置库地址

REPOS=”$1″

REV=”$2″

# WEB目录

BASEPATH=/var/www

# web文件夹名与svn库名相同

NAME=$(basename $REPOS)

WEBPATH=”$BASEPATH/$NAME”

# 避免中文信息乱码

export LANG=”zh_CN.UTF-8″

# 可以配合svnlook命令更新指定目录

svn update $WEBPATH –username=user1 –password=password1 –no-auth-cache

保存后需要修改post-commit文件权限为755,否则SVN无法调用执行

chmod 755 post-commit

SVN同步版本库与网站目录的更多相关文章

  1. SVN同步版本库与网站目录2

    定义: SVN版本库  = /home/svn/repos  网站目录     = /var/www/web 1.检出一个项目到网站目录 #svn checkout file:///home/svn/ ...

  2. svn创建版本库和删除版本库

    作者:朱金灿 来源:http://blog.csdn.net/clever101 svn创建版本库的做法:使用cd命令进入版本仓库的根目录,我的是E:\Repository,然后运行命令: svnad ...

  3. SVN+post-commit 搭建自动同步版本库

    一.需求. 本地文件上传到测试环境svn,测试环境同步到生产环境rsync.开发环境与测试环境与生产环境分离. 二.搭建SVN服务器. yum -y install subversion && ...

  4. SVN跨版本库迁移目录并保留提交日志

    现在有一份代码code在版本库reposA/dirB/下,现在想把它移动到reposB/dirAA/下,本来打算交给SA做,没想到SA似乎 也不太懂的样子.于是,自己在VPS搭建了一个svnserve ...

  5. SVN:多版本库环境的搭建

    一. 1,启动SVN sudo svnserve -d -r /home/data/svn/ 其中 -d 表示守护进程, -r 表示在后台执行 /home/data/svn/  为svn的安装目录 2 ...

  6. win7系统svn创建版本库

    1. 在svn所在的服务器上, 找到它的目录, 右击创建项目名称文件夹, 然后右击该文件夹创建版本库 2. 创建版本库之后, 会出现几个文件夹, 打开conf文件夹,  修改里面的配置文件 3. 在自 ...

  7. SVN访问版本库精细的权限控制

    SVN精细权限控制本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义.除此之外的其他配置.安装等内容,不是 ...

  8. linux下使用svn创建版本库和权限管理

    linux上的svn服务端如何和本地的电脑客户端结合使用 Linux上安装SVN服务器: 第一步:检查是否已安装 # rpm -qa subversion 第二步: 通过yum命令安装svnserve ...

  9. Linux配置svn服务器版本库

    1)创建版本库首先使用yum安装subversion 2)创建版本库 svnadmin create /home/svn/svnfile 3)进入conf目录 authz               ...

随机推荐

  1. 2:1 Strus2架构

    一: 二: 表示:当以/login或者login.do表示的请求过来,就使用class指定的LoginAction类来处理,处理完了返回一个结果字符串,若果结果字符串是"fail" ...

  2. Understanding Convolutional Neural Networks for NLP

    When we hear about Convolutional Neural Network (CNNs), we typically think of Computer Vision. CNNs ...

  3. EditPlus 4.3.2543 中文版已经发布(2月3日更新,Emmet 功能回归)

    新的 EditPlus 版本修复了 Emmet 组件的安全问题. 现在 Emmet 编辑功能又回来啦. 下载连接在页面左上角!

  4. js监听页面是否在浏览器当前页面

    在最近的一个socket项目中,需要监听客户端是否已读客服端发送的消息. 这里用到了html5中document新增了一个事件 visibilitychange,这个事件在页面前台或后台切换时被触发, ...

  5. (三)github之GIT的导入

    什么是版本管理? git是一款[分散型版本管理]软件,提供了开发过程中不可少的功能,例如记录一款软件添加或者更改源代码的过程,回溯到特定阶段,恢复误删除的文件等. 集中型:将仓库集中放在服务器中,一旦 ...

  6. PHP实现多进程并行操作,可做守护进程(转,备用)

    <?php /** * 入口函数 * 将此文件保存为 ProcessOpera.php * 在terminal中运行 /usr/local/php/bin/php ProcessOpera.ph ...

  7. bzoj1658: [Usaco2006 Mar]Water Slides 滑水

    Description It's a hot summer day, and Farmer John is letting Betsy go to the water park where she i ...

  8. zabbix配置自动发现,故障邮件告警

    对网段内的主机进行自动发现,自动加入主机组,自定加入template 创建动作时,类型这里选择discovery 然后将发现的主机加入host group和template: 动作针对的是discov ...

  9. 20145118 《Java程序设计》第6周学习总结

    20145118 <Java程序设计>第6周学习总结 教材学习内容总结 1.数据依靠串流在目的地与来源地之间传输,无论来去如何,只要取得InputStream或OutputStream的实 ...

  10. 20145307陈俊达《网络对抗》Exp9 Web安全基础实践

    20145307陈俊达<网络对抗>Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求 ...