使用 SubVersion 做开发

Subversion是什么?

Subversion是一个自由/开源版本控制系统,它管理文件和目录可以超越时间。一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。从这个方面看,许多人把版本控制系统当作一种“时间机器”。

Subversion可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作。进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。

一些版本控制系统也是软件配置管理(SCM)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。然而,Subversion不是这样一个系统,它是一个通用系统,可以管理任何类型的文件集,对你这可能是源代码—对别人,可能是一个货物清单或者是数字电影。

SVN svnserve 方式安装及配置

I.Linux RedHat 9
1.卸载原版本
# rpm -ev subversion-0.17.1-4503.0

2.安装包
# rpm -ivh –nodeps apr-0.9.5-0.2.i386.rpm
# rpm -ivh –nodeps apr-util-0.9.5-0.1.i386.rpm
# rpm -ivh –nodeps neon-0.24.7-1.i386.rpm
# rpm -ivh –nodeps subversion-1.2.3-1.rh90.i386.rpm

3.建立用户svn,创建repostory
$ svnadmin create /home/svn/svnroot

4.启动SVN服务
$ svnserve -d -r /home/svn/svnroot

这样就简单的建立了一个基础的 SubVersion 开发环境,普通情况下代码是存放在 SubVersion 的数据库中,我们是无法直接把这些代码及时应用,当然 SubVersion 的功能不至于这么简单 :) 我们可以在代码更新的时候添加一个 hook 上去,让 SubVersion 自动把代码更新到我们应用的地方。

添加自动更新的 hook

在 /home/svn/svnroot/hooks 创建一个名称为 post-commit 的脚本,内容为:

#!/bin/sh
REPOS=”$1″
REV=”$2″
# 第一次更新代码,请使用 checkout 方法把全部文件导出

svn checkout svn://localhost /home/svn/willbe –username oneoo –password ******

# svn://localhost => SubVersion 访问地址

# /home/svn/willbe => 将要把代码输出到的目录

# 次后的代码更新只需要做 update 处理
#svn update /home/svn/willbe –username oneoo –password ******

  • http://yuga.yo2.cn yuga

    oneoo,在linux下做开发?从来没玩过linux,这次出差回去看看买台机器,回头装个玩玩… 8)