1 subversion目录文件说明:

*dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
*db目录:就是所有版本控制的数据存放文件
*hooks目录:放置hook脚本文件的目录
*locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
*format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
*conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
 
安装:
1 检查是否已安装
rpm -qa subversion

如果有卸载旧版本:
yum remove subversion

2 安装

yum install subversion

3 检查是否安装成功

svnserve --version

配置:

1 新建一个目录用于存储SVN所有文件

# mkdir /home/svn

2 新建一个版本仓库

# svnadmin create /home/svn/project

3 添加用户
要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
pm = pm_pw

4 修改svnserve.conf

[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

5 修改权限认证文件  

authz:

[groups]

[/]

username= rw

* =

6 启动服务器

# svnserve -d -r /home/svn

注:查看服务及重启服务

ps -ef|grep svnserve
# ps -aux|grep svnserve
# kill -9 ID号
# svnserve -d -r /home/svn

扩展配置:

1 设置SVN自启动

---------------------

在/etc/rc.d/rc.local文件中增加这么一行

svnserve -d -r /home/svnroot/svndata &

2 检出一份代码

把SVN的代码检出一份

svn co svn://xx.xx.xxx.xxx/repos1 /home/svnroot/checkout/ --username zmk

配置项目自动部署:(部署目录必须先检出代码,在设置自动更新)

为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,打开hooks目录,

可以看到有一个post-commit.tmpl文件,这是一个模板文件,

复制一份放在此目录下,命名为post-commit,并将其用户组设为www,并设置为可执行:

chown www:www post-commit

chmod +x post-commit这样就有了访问www目录的权限。

里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件.

我的文件内容为:

#!/bin/sh

#设定环境变量,如果没有设定可能会出现update报错

export LANG=zh_CN.UTF-8

REPOS="$1"

REV="$2"

SVN_PATH=/usr/bin/svn

WEB_PATH=/web/project

LOG_PATH=/tmp/svn_update.log

#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache

echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH

echo `whoami`,$REPOS,$REV >> $LOG_PATH

$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH

chown -R www:www $WEB_PATH

说明:

1、#!/bin/sh 说明是执行shell命令

2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。

如果你是GBK编码可能会提示:Error output could not be translated from the native locale to UTF-8

这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export LANG=zh_CN.GBK或者export LANG=en_US.UTF-8

#执行更新操作

3、svn update –username 你版本库的用户名 –password 用户名的密码 svn://你的IP地址:端口/repos/project /web/project

4、chown -R www:www $WEB_PATH 更改文件夹属主为适合Web Server的

里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件。

安装

yum install subversion

搭建subversion 服务器,并自动部署项目的更多相关文章

  1. CENTOS 搭建SVN服务器(附自动部署到远程WEB)

    安装subversion服务端 # 安装 yum install -y subversion # 测试是否安装成功 如果显示了版本信息则表示安装成功 svnserve --version;sleep ...

  2. Eclipse自动部署项目到Tomcat的webapps下的有效方法

    开发JavaEE项目,常用的工具有MyEclipse,Eclipse,netBeans等,我比较喜欢用Eclipse,因为相比MyEclipse体积小很多,响应速度也快,且足以满足需求,我喜欢简洁的编 ...

  3. Pycharm自动部署项目

    Pycharm自动部署项目 大家好呀,又有几天不见各位了.断更了几天,给大家说声抱歉.清明节大家都挺忙的,有扫墓祭祖的,也有趁小长假去游玩的. 所以,在节后,更新也会照常进行,继续给大家分享本人的一些 ...

  4. 使用jenkins 插件自动部署项目至tomcat

    前面使用maven.ant编译项目就不说,只说一下使用jenkins的插件自动部署项目 1.首先jenkins安装插件Deploy to container Plugin ,下载地址为:https:/ ...

  5. IntelliJ IDEA自动部署项目至远程服务器与传统部署项目至远程服务器的区别

    每次开发Java项目时,对于所有Java开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP等工具对 ...

  6. Vue-CLI 3.x 自动部署项目至服务器

    前言 平时部署前端项目流程是:先部署到测试环境ok后再发布到生产环境上,部署到测试环境用 xshell 连上服务器,然后用 xftp 连接服务器,然后本地 build 项目,接着把 build 好的文 ...

  7. Jenkins构建本地项目到服务器上自动部署的方法

    博主原创,转载请注明. 最近在用Jenkins做项目的自动部署,由于项目需求,现在要在本地构建后再放到Tomcat里.以下是本地构建步骤: 名称填写好,下面的选项是可选的. 源码管理这里选择none. ...

  8. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  9. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

随机推荐

  1. P1156 垃圾陷阱

    题目描述 卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到“垃圾井”中.“垃圾井”是农夫们扔垃圾的地方,它的深度为D(2<=D<=100)英尺. 卡门想把垃圾堆起来,等到 ...

  2. 第四届河南省ACM 表达式求值 栈

    表达式求值 时间限制: 1 Sec  内存限制: 128 MB 提交: 14  解决: 7 [提交][状态][讨论版] 题目描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简 ...

  3. 41.Linux应用调试-修改内核来打印用户态的oops

    1.在之前第36章里,我们学习了通过驱动的oops定位错误代码行 第36章的oops代码如下所示: Unable to handle kernel paging request at //无法处理内核 ...

  4. 单点登录(SSO)的设计

    一.前言 什么是SSO? SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.https://baike.baidu.c ...

  5. python中namedtuple介绍

    namedtuple:namedtuple类位于collections模块,有了namedtuple后通过属性访问数据能够让我们的代码更加的直观更好维护.namedtuple能够用来创建类似于元祖的数 ...

  6. FSharp 调用 Oracle.ManagedDataAccess.dll

    FSharp 调用 Oracle.ManagedDataAccess.dll 1.Oracle.ManagedDataAccess.dll 的下载地址.好像如今必需要注冊才干下载. 即使是 64 位系 ...

  7. hdu 5305 friends

    每一次比赛的时候脑子都卡顿, 这次更离谱,我居然二进制枚举边,这么大的复杂度.而且剪不了枝 后来学长说着是道爆搜.搜每一条边.恍然大悟. 仅仅须要剪掉点的度数是奇数的时候,或者他的线上朋友或线下朋友大 ...

  8. PAT 1004 To Fill or Not to Fill (25)

    题目描写叙述 With highways available, driving a car from Hangzhou to any other city is easy. But since the ...

  9. Hive修改行级别数据

    我们知道Hive0.14版本之前是不支持行级别的插入,更新,删除的,0.14版本之后可以通过修改相关配置得以支持,但是在不修改默认配置的情况下是不是完全没有办法呢?不是的,这里有个比较简单的方法,前提 ...

  10. BeautifulSoup 抓取网站url

    1 # -*- coding:utf-8 -*- 2 import urlparse 3 import urllib2 4 from bs4 import BeautifulSoup 5 6 url ...