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

首先搭建SVN服务器

1,安装SVN服务端

直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装)

sudo apt-get install subversion

2,创建版本库

svnadmin create /home/myrepos    //这里的文件目录自己随便设置

3,配置svnserve

上述版本库/home/myrepos建立后在文件夹下会生成conf文件夹,进入/home/myrepos/conf下面会有下面3个文件

authz passwd svnserve.conf

我们依次修改

3.1,svnserve.conf修改以下几个部分:

  • authz-db = authz
  • auth-access = write
  • password-db = passwd
  • authz-db = authz

3.2,passwd修改为:

  • [users]
  • username = password    //这里的username和password自己设置

3.3,authz最后加上以下两行(这两行解决了 SVN客户端解决authorization failed问题)

  • [/]
  • * = rw

4,启动svnserve即可:

svnserve -d -r /home/myrepos/

5,客户端使用:

客户端用svn或者windows下的TortoiseSVN客户端

5.1,从服务端checkout版本库(在当前目录下)

svn checkout svn://服务器的ip地址/

5.2,自己增加一些文件,或者把之前的东西(如下面三个文件夹)拷贝到当前目录下,想让svn帮你管理

code project document

5.3,假设我把上述三个文件夹放到当前svn的文件夹下想让svn管理,然后我要做的是添加到svn版本库里:

svn add code project document    //或者直接用svn add *

5.4,最后提交到svn服务器

svn commit -m ‘import three directories‘

一定要对当前版本写注释。

然后配置SVN钩子自动更新项目文件到web目录

在SVN服务器端

说明:

服务器操作系统:ubuntu(linux)

SVN安装路径:/usr/bin/svn

SVN项目路径:/home/svn

SVN登录账号:yourname

SVN登录密码:yourpass

Web站点根目录:/home/wwwroot/

实现目的:

当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录

具体操作:

一、使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录

cd /home/svn/hooks

cp post-commit.tmpl post-commit

vim post-commit #编辑,添加以下代码

REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
SVN_PATH=/usr/bin
WEB_PATH=/home/wwwroot/
SVN_USER=admin
SVN_PASS=admin
LOG_PATH=/tmp/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH

:wq #保存退出

chown www:www /home/svn/hooks/post-commit #设置脚本所属用户组,www为web服务运行账户和组

chmod +x /home/svn/hooks/post-commit #添加脚本执行权限

说明:

whoami #执行此程序的用户

REPOS="$1" #svn项目绝对路径值

REV="$2" #最新版本号

--no-auth-cache #不保存账户认证信息

二、客户端测试

使用svn客户端添加一个文件之后,进行svn添加并提交操作进入服务器/home/wwwroot目录下可以看到提交到svn的文件已自动更新到web目录下

至此,Linux下SVN服务器自动更新文件到Web目录教程完成。

ps:你可能会遇到这个问题

在日志文件中

Skipped "/home/wwwroot"

然后提交的文件并没有自动更新到web目录下

我的解决方法是:

cd /home/wwwroot/

svn checkout svn://服务器的ip地址 ./

然后你新提交的文件就可以自动更新到web目录下了

分析原因:/home/wwwroot/目录下不存在.svn目录,svn不知道/home/wwwroot/

checkout后会在/home/wwwroot/目录下生成.svn目录,然后就可以识别并自动更新提交的文件到改目录下了

时间: 2024-12-10 00:13:45

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

Linux下搭建SVN服务器及自动更新项目文件到web发布目录(www)

一.linux服务器端配置 [[email protected] ~]# rpm -qa | grep sub subversion-libs-1.7.14-10.el7.x86_64 subversion-1.7.14-10.el7.x86_64 [[email protected] ~]# ps -ef | grep svn root      21019  20613  0 21:57 pts/0    00:00:00 grep --color=auto svn [[email prot

linux下搭建SVN服务器

最近搞了一台云服务器,尝试部署一些服务器相关的东西,作为开发用服务器,首先考虑搭建的是SVN服务器.记录一下搭建的过程,方便以后查看. 一.安装svn软件,有些云服务器会有安装svn服务器,有些没有. # yum install -y subversion                        //在线安装svn # svnserve --version                                  //检查svn版本 二.创建svn版本库 1.创建一个项目的版本目录

linux下搭建SVN服务器完全手册【转】

转自:http://blog.csdn.net/bullbat/article/details/9115559 系统环境        RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum 一,安装必须的软件包.        yum install subversion (SVN服务器)                    mysql-server (用于codestriker)                    httpd mod_dav_svn m

linux下搭建SVN服务器完全手册-很强大!!!!!

系统环境        RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum 一,安装必须的软件包.        yum install subversion (SVN服务器)                    mysql-server (用于codestriker)                    httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)                    sendmail

Linux下搭建SVN服务器--基于SNMP

1.安装subversion #yum install -y subversion 2.查看svn服务器版本 #svnserve --version 3.创建SVN库 #mkdir -p /home/svn/ #svnadmin create /home/svn/ 4.进入配置文件夹 #/home/svn/conf 5.创建用户 #vi + passwd [users] # harry = harryssecret # sally = sallyssecret svntest = 123456

CentOS6.8 搭建SVN并用钩子自动实现同步到web目录

安装subversion :     yum install -y  subversion 检查安装是否成功:  svn --version 创建仓库目录: mkdir -p /home/svn/test 创建项目:svnadmin create /home/svn/test 检查创建是否成功: (1)cd /home/svn/test (2) ll #查看生成文件 6.cd /home/svn/test/conf #进入目录有文件 authz ,passwd, svnserve.conf 7.

Linux下搭建svn服务器(转)

原文地址:http://blog.163.com/[email protected]/blog/static/173612348201202114212933/ 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 svn --help可以查看svn的使用方法,如下图. 3.创建svn版本库目录 mkdir -p /var/svn/svnrepos 4.创建版

Linux下搭建SVN服务器遇到的问题及解决方法

1.checkout时,提示:URL svn://192.168.1.99/svntest doesn't exist... 奇怪,怎么会提示库不存在呢?肯定是哪里配置问题.后来尝试了半天,也在网上搜索了很久,终于发现问题所在. 如果你的svn库的路径为:/home/svn/svntest 那么你启动时,不能用命令: svnserve -d -r /home/svn/svntest 而要用命令: svnserve -d -r /home/svn/ 如果已经用错误的命令启动了,我们可以用杀死进程的

Linux下搭建SVN服务器遇到的问题及解决方法,

1.checkout时,提示:URL svn://192.168.1.99/svntest doesn't exist... 奇怪,怎么会提示库不存在呢?肯定是哪里配置问题.后来尝试了半天,也在网上搜索了很久,终于发现问题所在. 如果你的svn库的路径为:/home/svn/svntest 那么你启动时,不能用命令: svnserve -d -r /home/svn/svntest 而要用命令: svnserve -d -r /home/svn/