由于项目测试需求,需要远程服务器上使用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. 关于MySQL相关的查看显示信息:

    关于MySQL相关的查看显示信息: 数据库范围: 一.查看所有的数据库:(仅仅是看数据库数量与名字) mysql> show databases; 二.查看某个数据库的创建信息:(主要看数据库的 ...

  2. Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence

    Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence 使用oracle11g插入数据时遇到这样一个问题: 1 --创建测试表-- 2 CREATE T ...

  3. Lucene.net应用

    1.加入盘古分词方法 /// <summary> /// 对输入的搜索的条件进行分词 /// </summary> /// <param name="str&q ...

  4. 170106、用9种办法解决 JS 闭包经典面试题之 for 循环取 i

    闭包 1.正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是 ...

  5. $scope.$watch()——监听数据变化

    $scope.$watch(watchFn, watchAction, [deepWatch]):监听数据变化,三个参数 --watchFn:监听的对象,一个带有Angular 表达式或者函数的字符串 ...

  6. caffe model 可视化

    1. 打开网址 http://ethereon.github.io/netscope/#/editor 2.将自己的train_test.prototxt里的复制粘贴到左边 3.然后同时shift+e ...

  7. ADB server didn't ACK * failed to start daemon *

    问题描述:在eclipse的Logcat出现错误 [2014-01-08 14:00:07 - adb] ADB server didn't ACK [2014-01-08 14:00:07 - ad ...

  8. Xamarin.Forms listview中的button按钮,实现带着参数返回上一级页面

    今天在做列表显示的时候遇到一个问题,就是在ListView中如何才能让一个button的按钮工作并且包含参数呢? 其实有点类似于rep里的控件无法起获取一样.在Xamarin中,当你button绑定事 ...

  9. cocos IDE 编译lua 游戏程序的环境配置

    因为毕业设计需要用cocosIDE编译一个apk在手机上跑,所以搭建这个环境还是需要的. ps:是针对win系统的. 需要的工具: 1.cocosIDE:点击链接 (ps:据说这个软件设计有点反人类, ...

  10. MATLAB地图工具箱学习总结(四)自定义投影

    MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...