由于项目测试需求,需要远程服务器上使用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. for...in也反复执行语句,但它是用来操作对象的

    for...in也反复执行语句,但它是用来操作对象的

  2. wex5 实战 省市县三级联动与地址薄同步

    无论是商城,还是快递,都要用到省市县三级联动,和地址薄,今天就以实战来制作,难点有3个: 1:三级联动,有wex5组件实现,相对简单,实战里对行数据进行了拼接 2:  地址薄选项,利用inputSel ...

  3. Dynamics AX 2012 R2 SSRS报表在VS2010中预览没有数据

    今天,Reinhard 在VS中制作SSRS报表,预览的时候发现显示不出数据. 仔细检查了数据处理环节和临时表里的数据,都发现没有问题. 用同事的账号登陆同样的开发环境,发现他的账号可以在VS中预览到 ...

  4. J2EE开发时的包命名规则

    http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...

  5. Easyui-combobox-checkbox-带复选框的下拉框

    $.post("getSubInsuranceTypeList.do",{parent_id:node.id},function(result){                  ...

  6. ubuntu常见问题及解决

    1.反复关机后自动重启. 联网状态下输入以下命令. sudo apt-get install laptop-mode-tools 2.win和ubuntu双系统下,怎么修改启动顺序和等待时间? 1.开 ...

  7. 瘋子C++笔记

    瘋耔C++笔记 欢迎关注瘋耔新浪微博:http://weibo.com/cpjphone 参考:C++程序设计(谭浩强) 参考:http://c.biancheng.net/cpp/biancheng ...

  8. 位图切割器&位图裁剪器

    位图切割器: 虽然网上有类似的工具,PhotoShop 也有类似功能,但前者似乎不支持超大位图切割(以 G 计大小),而后者的切割块数量好像有比较小的限定范围,于是自己动手写了这个工具. 至于为什么是 ...

  9. 使用日期控件datePicker,阻止移动端的自动调取键盘的事件

    方法:简单来说就是阻止input的默认事件. 因为datePicker就是用input来封装的,所以直接阻止input的输入事件就ok: 很简单,把input field属性readonly设置为tr ...

  10. Spring MVC中Action使用总结

    Spring MVC中每个控制器中可以定义多个请求处理方法即Action,Action可以有多个不同的参数,有多种类型的返回结果. 可以作为Action的参数类型有: 表单对象基本数据类型,包括包装类 ...