由于项目测试需求,需要远程服务器上使用svn做版本控制.

需求:

1,项目test1,项目test2,各自独立版本库,各自独立用户权限,便于项目管理

2,同步提交,本地svn提交至版本库后,服务器上的web根目录上的项目同步更新。达到本地update,浏览器访问实时生效

步骤:

1,安装svn 过程略去

2,配置项目

一,创建版本库

创建多个项目的版本库

工作目录

/var/www/

项目1:svnadmin create /var/www/svn/test1

项目2:svnadmin create /var/www/svn/test2

二,修改项目配置

===============================

cd /var/www/svn/test1

目录权限

vi conf/authz

[/]

*=rw

账号密码

vi conf/passwd

user1=123456

主配置

vi conf/svnserve.conf

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
 
同步更新
cp hooks/post-commit.tmpl hooks/post-commit
chmod 777 hooks/post-commit      //如果不给权限的话,同步更新会报255错误的。
vi post-commit
cd /var/www/test1 && /usr/bin/svn update --username user1 --password 123456
 

如果还报127,记得把最下面这句注释或删掉

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

 
三,开启进程
注意不能使用下面这种,不然checkout会报url不存在的。

svnserve -d -r /var/www/svn/test1

svnserve -d -r /var/www/svn/test2

正确的是

svnserve -d -r /var/www/svn/

ps -ef|grep svnserve  //查看进程是否正常

如果已经有其他进程用命令杀掉kill pid

上面是项目test1的配置,项目test2的配置也和上面大体一致,不在赘述。

4,导入项目

mkdir /var/www/test1

touch test1.txt

midir /var/www/test2

touch test2.txt

svn import /var/www/test1 file:///var/www/svn/test1 -m "导入项目1"

svn import /var/www/test2 file:///var/www/svn/test2 -m "导入项目2"

5,checkout检出

测试一下。把/var/www/test1  和/var/www/test2  删掉

cd  /var/www

svn checkout svn://IP/test1

svn checkout svn://IP/test2

看test1,和test2目录果然下载下来了。

然后我到我的windows本地上也checkout一下,地址同样是上面的两个

输入账号密码,也成功下载了文件

我们在test1,test2其中添加提交b.txt,c.txt,

然后到服务器上看/var/www/test1,和 test2中果然已经实时更新出现了。

我的http://test1.aaa.com 和http://test2.aaa.com

分别对应的是/var/www/test1和/var/www/test2

清楚了web的目录指向后,看到的效果自然也就是所谓的实时更新了。

=========================================
 
备注:还是想的太美好了。出现了问题。
当使用的钩子更新的时候。如果有中文的文件,是会报错,导致跳出更新失败的。
 
网上找了很多解决方案,都是改系统字符集。然而还是报错。没有办法。还是使用定时任务吧。
 
crontab -e

#每分钟更新,并记录日志
#*/1 * * * * /root/svn_update.sh >> /tmp/log/svn_update.log

#每5分钟更新,不记录日志。

*/5 * * * * /root/svn_update.sh

vi svn_update.sh

#!/bin/bash
cd /var/www/test1 && /usr/bin/svn up
cd /var/www/test2 && /usr/bin/svn up

参考:http://blog.csdn.net/honeyjimmy/article/details/24431713

常见错误:http://www.2cto.com/os/201407/322026.html

svn-多个项目版本库和自动同步更新post-commit的更多相关文章

  1. 【转】SVN管理多个项目版本库

    转载地址:http://blog.163.com/zhangxuemin_zy/blog/static/10178565520115704031799/ SVN管理多个项目版本库:   安装SVN服务 ...

  2. SVN管理多个项目版本库 (windows,linux 通用)

    SVN管理多个项目版本库: . 安装SVN服务器软件,路径: C:\Program Files\Subversion . 在D盘创建svn根目录D:\SVN-CM . 在D:\SVN-CM下创建SVN ...

  3. android stuido 在线安装svn插件,添加版本库无响应

    问题:android stuido 中在线安装svn插件,添加版本库无响应. 原因: 由于android stuido 版本较高,在线安装1.6x 版本的svn,添加版本库一直没有响应,最后卡死.. ...

  4. svn"重新定位"提示版本库uuid不匹配

    svn"重新定位"提示版本库 uuid不匹配: 版本库 "https://wolfcome110/svn/andon" 的 uuid是 "d52648 ...

  5. SVN基本配置--创建版本库(图文并茂)

    SVN基本配置简 上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使 ...

  6. svn add 添加到版本库

    转 svn add-添加到版本库 常用操作1.添加一个文件到工作拷贝:$ svn add foo.c 2.当添加一个目录,svn add缺省的行为方式是递归的:$ svn add testdir 3. ...

  7. 取消SVN感叹号即去除版本库

    之前不小心直接将版本库 的内容检出 到桌面,后才发现桌面上的文件 都变成了问号,本来也以为没有多大问题,删除 .svn 即可,可是删除所有的.svn后,桌面上还是显示问号,刷新了很多次,还重启电脑 了 ...

  8. svn创建多个版本库

    mkdir /pangbing cd /pangbing/ svnadmin create 1 svnadmin create 2 svnadmin create3 启动时候这样启动 svnserve ...

  9. 如何利用svn自动同步更新到网站服务器

    我们最终的目的是:当本地提交后,SVN服务器自动更新服务器端指定WEB目录内的文件 实现方法: 找到服务器端 SVN版本库所在的目录(目录名称是Repositories),这个目录是在安装Visual ...

随机推荐

  1. python之编写登陆接口(第一天)

    作业:编写登陆接口 输入用户名密码 认证成功后显示欢迎信息 输错三次后锁定 针对此实例写了有二种类型的脚本,略有不同,具体如下: 帐号文件account.txt内容如下: sam 123 david ...

  2. Hibernate 基础配置及常用功能(三)

    本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...

  3. 写了一个简易的GBK文件向UTF8文件转换的工具

    package com.bocom.framework.util; import java.io.BufferedReader; import java.io.BufferedWriter; impo ...

  4. [已解决] java 增加 ALPN支持

    添加javaVM参数: -Xbootclasspath/p:lib/alpn-boot-8.1.10.v20161026.jar 文章来源:http://www.cnblogs.com/gifisan ...

  5. asp.net mvc adminlte第一波

    首页模板选用官方DEMO中的Blank模板,这个模板相对来说是最干净的. 首页模板的分割: 官方文档是分的4个部分 Wrapper .wrapper. A div that wraps the who ...

  6. Linux 指令大全

    作为一个小前端,以前有我们的运维大神在的时候,要给服务器做什么配置的时候就找他(那时幸福到哭),如今他走了,公司也没招人(想把这个钱省下来,让我发现了,毕竟我能当小运维用,虽然很这方面很渣渣,哈哈,偷 ...

  7. [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)

    Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...

  8. 遇到的java面试题

    1.struts2与struts1的区别 2.声明式事务是什么,怎么实现? 3.ajax两种请求方式 4.java中string str=new string("ss")创建了个几 ...

  9. tomcat 配置客户端证书认证

    在完成配置客户端证书认证后,浏览器以https访问服务器的时候,会提示选择证书,之后,服务器端会验证证书.也就意味着只有拥有有效证书的客户端才能打开该网站. 以下是具体的配置过程. 1. 在服务器端生 ...

  10. Qt on Android 蓝牙开发

    版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...