由于项目测试需求,需要远程服务器上使用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. C# 把背景为白色的图片变成透明图片

    Image Imageimage; Imageimage = System.Drawing.Image.FromFile(@"C:\A.JPG"); Bitmap bitmap = ...

  2. wex5 实战 登陆帐号更换与用户id一致性

    一 前言 关于用户登陆,注册,页面跳转,我讲了很多,都是页面框架级别的.有人问到这个问题,索性总结一下,今天是收尾最后一篇. 以往初学时的设计是: 1 注册 2 登陆 3 进入页面. 这种很简单,没有 ...

  3. 怎么用AJAX来判断dedecms用户是否登录呢

    JS代码:Copy code<script language="javascript" src="{dede:global name='cfg_cmspath'/} ...

  4. 微信支付JsAPI

    https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip 下载获取微信支付demo压缩包 打开压缩包,并将其中 Wxpay ...

  5. EF连接ORACLE

    1.nuget引用Oracle.ManagedDataAccess.EntityFramework的dll文件 2.安装Oracle Developer Tools for Visual Studio ...

  6. 测试机安装fd-server问题记录

    今天在239测试机上安装了fd-server来代替apache,汇总下遇到的问题和解决方法. 1. 安装git时使用yum安装,命令 yum install git 2. 启动fd-server之前要 ...

  7. java.sql.SQLException: ORA-00001: 违反唯一约束条件 (SCOTT.SYS_C0011456)

    我tb_user数据库的主键是id,在这个java程序中: String sql="insert into tb_user(id,USER_NAME,USER_PASSWORD) value ...

  8. angular中不同controller传值问题

    利用angularJS中service单例模式的特性,服务(service)提供了一种能在应用的整个生命周期内保持数据的方式,能够在控制器之间进行通信,且能保证数据的一致性. 一般我们都会封装serv ...

  9. Keras

    sudo pip install keras --安装 新建一个文件,里面存储的数据:第一列是属性,第二列是类别 11220044 011220044 011220044 011220033 1112 ...

  10. 阅读笔记 火球UML大战需求分析3

    在复习回顾的以前所学的UML 统一建模语言之后,要将他们融会贯通起来,必定要进行一次事件,这样才能更好地运用各种UML,所以,了解了所有的UML图之后,就要开始接收一个练习的项目了. 这里作者给的例子 ...