基于SVN的快速开发发布环境搭建
来源:互联网 发布:linux find当前目录 编辑:程序博客网 时间:2024/05/26 17:48
本人在几家互联网公司工作过,公司的代码管理基本都是基于svn,开发环境各有不同,从最原始的直接ssh到测试服务器修改代码,或者是本地修改,然后通过ftp或者sftp上传到服务器,这样的代码发布方式会有比较多的问题,第一多人合作的时候代码容易相互覆盖,第二是对测试环境的代码修改无法追踪,一个人对测试环境代码的修改别人无法快速定位。然后后来接触到了基于svn的发布系统,有用过SAE的同学应该有感觉,SAE提供的就是基于SVN的代码管理和发布环境,非常方便和实用,本文就将介绍一下如何手动搭建这样一个开发环境。
首先搭建安装svn服务器。
源码包官网地址:http://subversion.apache.org/download/#recommended-release
解压缩之后直接源码安装
./configure
make&make install
svn的server有两种方式可以对外提供服务,一个是本身自带一个svnserve程序,启动之后就是一个后台程序,走的是自己的协议,也可以通过apache,把svn安装为apache的模块,通过http或者https协议对外提供服务。
我们这里就直接用自带的svnserve。
安装完整之后,首先创建版本仓库:svnadmin create /home/user/testsvn
/home/user/testsvn可以修改为你自己的路径,这就是svn的版本仓库根目录,svn服务器的配置文件,已经后续你提交到svn的数据文件都会存储在这个目录下。
运行完上述命令之后,testsvn目录中应该就会多了一些目录和文件,进入conf/目录,打开passwd文件,添加svn用户名密码:
[users]
username= password
conf/authz是访问权限控制配置
[groups]
admin=username
harry_sally_and_joe = harry,sally,&joe
[testsvn:/]
@admin = rw
然后配置svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
然后就是如何配置让svn可以自动发布代码,这里涉及到了svn的hook机制,就是所谓的钩子,在/home/user/testsvn目录下可以看到有一个hooks目录,进入到这个目录
可以看到很多post-commit.tmpl 这样的文件,这些都是hook文件的模板,每个文件都对应一种hook方式
可以cp post-commit.tmpl post-commit
post-commit其实就是一个shell文件,每次svn有新的commit操作时,svn服务器都会运行该文件,所以文件头部要加上:
#!/bin/sh
然后chmod u+x post-commit,保证该hook脚本可执行。
在post-commit中添加如下一行代码:
SVN_PATH/svn update /code/ --username=tttt --password=1111--non-interactive
当然前提是在/code/目录已经svn co 过了,当然可以先check一下该目录的svn状态,如果没有初始化过,先svn co,然后再update。
配置文件都配置完成以后启动svn服务
svnserve -d -r /home/user/testsvn --listen-port 8890
这样,在自己的机器上,通过svn://ip:8890/就可以check出代码,然后向该svn提交代码时,你提交的代码会自动同步到服务器的/code/目录
- 基于SVN的快速开发发布环境搭建
- 基于maven快速搭建自定义的karaf开发调试环境
- 搭建基于HTTPS的iOS发布环境
- 协同开发好帮手,SVN开发环境快速搭建
- 【软件开发实践】基于 Jenkins 快速搭建持续集成环境
- 基于ADT bundle快速搭建Android开发环境
- linux开发环境的快速搭建
- Android开发环境的快速搭建
- Grails开发环境的快速搭建
- 快速搭建hibernate5.0.9的开发环境
- 搭建基于Eclipse的Jboss开发环境
- 搭建基于ubuntu的内核开发环境
- 搭建基于ubuntu的内核开发环境
- 基于nodejs的开发环境搭建
- 基于UBUNTU的NODEJS开发环境搭建
- 基于ubuntu的ARM开发环境搭建
- 基于Windows的JAVA开发环境搭建
- 基于Eclipse的spring开发环境搭建
- html5的结构标签有利于seo
- [IOS]UIButton 圆角/边框设置 相关
- 一个极好的适合新手的详细的Flask教程————《The Flask Mega Tutorial》
- 关于oracle
- 爱大鸟LoveShootBirds强联网移动SDK添加(
- 基于SVN的快速开发发布环境搭建
- laravel ubuntu 安装
- java多线程
- tshark命令小结
- re映射
- 魔方机器人思路
- ping不通问题的总结 OK6410 开发板的初学者 网络的总结
- (C语言版)链表(二)——实现单向循环链表创建、插入、删除、释放内存等简单操作
- Sizeof与Strlen的区别与联系