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

时间:2022-05-25 03:04:41
首先搭建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目录(www)的方法
至此,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目录,然后就可以识别并自动更新提交的文件到改目录下了

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

  1. 在linux上搭建SVN服务器并自动更新至WEB目录

    1.仓库放在 /var/svn/ 目录下,并且仓库名为 project 2.创建用户组user,该组下添加两个成员user1.user2,密码直接用用户名,两用户可以checkout代码和提交代码 3 ...

  2. linux下搭建SVN服务器完全手册

    原文:http://www.cnblogs.com/wrmfw/archive/2011/09/08/2170465.html 系统环境        RHEL5.4最小化安装(关iptables,关 ...

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

    转自:http://blog.csdn.net/bullbat/article/details/9115559 系统环境        RHEL5.4最小化安装(关iptables,关selinux) ...

  4. linux下搭建SVN服务器完全手册【摘抄】

    系统环境        RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum 一,安装必须的软件包.        yum install subversion ( ...

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

    系统环境        RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum 一,安装必须的软件包.        yum install subversion ( ...

  6. SVN:linux下搭建svn服务器

    转载:https://www.cnblogs.com/puloieswind/p/5856326.html 1. 安装SVN服务器: 检查是否已安装 # rpm -qa subversion 安装SV ...

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

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

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

    一 安装 yum install subversion 二 检查是否安装成功 svn --version 三 创建仓库目录 mkdir –p /home/svnroot/test 四 创建项目 svn ...

  9. 在Linux下搭建SVN服务器

    svn不仅仅可以用于程序开发,还可以做很多事情,例如备份文档. CentOS下:安装 这样同一台服务器便可以运行多个svnserver了 检查端口 注:如果修改了svn配置,需要重启svn服务 -j ...

随机推荐

  1. JS function

    JS函数的定义 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JS函数的声明 function functionname(){语句} 注意:function必须是小写,否则会报错. J ...

  2. Tomcat性能调优方案

    一.操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量.提高CPU的频率,保证文件系统的读写速率等.经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快.. ...

  3. DB2 日期相减

    简单方法: 使用 days 字符型的日期:2012-01-01,2012-01-11 values  days(date('2012-01-11')) - days(date('2012-01-01' ...

  4. BZOJ3687:bitset STL

    [bzoj3687][FJ2014集训]简单题 2014年9月14日1,8212 [题目描述]小呆开始研究集合论了,他提出了关于一个数集四个问题:1. 子集的异或和的算术和.2. 子集的异或和的异或和 ...

  5. (转载)c语言指针学习

    前言 近期俄罗斯的陨石.四月的血月.五月北京的飞雪以及天朝各种血腥和混乱,给人一种不详的预感.佛祖说的末法时期,五浊恶世 ,十恶之世,人再无心法约束,道德沦丧,和现在正好吻合.尤其是在天朝,空气,水, ...

  6. sqlserver 2008表分区操作

    表分区操作步骤 1.设计表进行分区的方案,水平分区.垂直分区 a.水平切割将减少表的行数,这样可以将历史数据归档,减少表大小,提高访问速度. b.垂直切割将分为主表和从表方式,将主要的列字段存放在主表 ...

  7. 使用VS Code开发Angular 2应用程序所需配置文件的解析

    目录 package.json typings.json tsconfig.json launch.json settings.json tasks.json package.json: 这是项目的基 ...

  8. [f]智能获取浏览器版本UA信息的方法

    var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { ...

  9. cocos JS 定时器

    cocos2d-js的定时器的创建跟使用: 情况一: var TestLayer = cc.Layer.extend({ sprite:null, ctor:function () { this.sc ...

  10. Android实例剖析笔记(二)

    摘要:用实例讲解Andriod的开发过程,以NotesList为实例介绍Android的菜单机制 简介 android提供了三种菜单类型,分别为options menu,context menu,su ...