SVN安装配置和使用

Subversion是新一代的版本控制工具,不仅仅应用于程序源代码管理,也可以广泛应用于其他需要协作管理数据的工作。Subversion 作为CVS 的重写版和改进版,其目标就是作为一个更好的版本控制软件,取代目前流行的CVS。Subversion 的主要开发人员都是业界知名的CVS 专家。Subversion支持绝大部分的CVS 功能/命令;Subversion 的命令风格和界面也与CVS 非常接近。当然,不同的地方正是对CVS 的改进。主要体现在:全局性的版本编号、目录的版本控制、原子性提交、支持变更集概念。

SVN安装及配置

2.1. 软件下载
2.1.1. 服务端软件
l httpd-2.2.10.tar.gz

下载地址:http://httpd.apache.org/

Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。使用较多的是基于Apache下的svn的配置。

l subversion-1.5.4.tar.gz

下载地址:http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz

Subversion服务端软件。

2.1.2. 客户端软件
l TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi

l LanguagePack_1.5.3.13783-win32-zh_CN.msi

下载地址:http://tortoisesvn.tigris.org/

较为常用的一种SVN Windows客户端管理软件,LanguagePack为中文包。

l site-1.4.6.zip

下载地址:http://subclipse.tigris.org/

subclipse,SVN在Eclipse下的一种插件。

l VisualSVN-1.5.2.msi

下载地址:http://www.visualsvn.com/visualsvn/download/

SVN在VS.net下的一种插件。

l svn-importer-1.1-M8.zip

下载地址:http://www.polarion.org/index.php?page=overview&project=svnimporter

CVS、VSS切换到SVN的工具。

以上服务端和客户端软件已经下载,保存在Sofe目录下。其它工具下载可参考网站http://subversion.tigris.org/

2.2. 安装Apache
1) 解压apache安装包

tar xvzf httpd-2.2.10.tar.gz

2) 进入解压后的目录

cd httpd-2.2.10

3) 配置apache安装

./configure --prefix=/usr/local/apache --enable-mods-shared=all

将apache安装在/usr/local/apache目录下。

4) 编译

make

5) 安装

make install

6) 验证安装是否成功

切换到apache的bin目录

cd /usr/local/apache/bin

启动apache服务

./apachectl start

打开浏览器http://10.192.77.222/ (根据实际IP)如果有测试页"It works!"出现则证明已经安装成功。

2.3. 安装Subversion
1) 解压SubVersion安装包

tar xvzf subversion-1.5.4.tar.gz

2) 进入解压后的目录

cd subversion-1.5.4

3) 配置subversion安装

./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache

4) 编译

make

5) 安装

make install

6) 创建库文件所在的目录

SubVersion安装完成后,创建库文件所在目录,相当于SubVersion的存储目录,路径可根据实际计划指定。

mkdir /web/svn

7) 创建仓库project

cd /usr/local/subversion/bin

./svnadmin create /web/svn/project

完成后切换到/web/svn/project,看看是不是多了些文件,如果是则说明Subversion安装成功了

2.4. 修改Apache配置文件
1) 打开配置文件

vi /usr/local/apache/conf/httpd.conf

2) 在LoadModule模块添加

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

如果modules目录下不存在以上两个so文件,需要手工拷贝。

3) 在配置文件最后添加

<Location /svn>
DAV svn
SVNParentPath /web/svn
AuthzSVNAccessFile /web/svn/authz.conf
AuthType Basic
AuthName "Subversion"
AuthUserFile /web/svn/authfile
Require valid-user
</Location>

SVNParentPath表示svn的父目录

AuthType表示连接类型

AuthName表示连接框显示的信息

AuthzSVNAccessFile表示权限配置文件路径

AuthUserFile表示用户配置文件路径

Require valid-user表示采用用户名密码方式认证

2.5. 权限管理
2.5.1. 增加用户
使用apache的htpasswd命令增加用户,默认采用MD5方式加密

cd /usr/local/apache/bin

增加test用户,系统会要求输入密码和确认密码。第一次增加用户,创建authfile时,使用-c选项,继续添加用户时,不可再使用。

./htpasswd -c /web/svn/authfile test

依次添加其它用户(根据需求),为显示权限分配,本例添加以下用户:wdwu, tyang, yfpeng, ljyan, xsli, hgao

./htpasswd /web/svn/authfile wdwu

……

2.5.2. 权限分配
创建/web/svn/authz.conf文件,进行权限管理。示例内容如下:

[groups]

g_admin = wdwu

g_vip = tyang

g_jhtpay = tyang,ljyan,yfpeng

g_odsb = xsli,hgao,yfpeng

[/]

@g_admin = r

[project:/]

@g_admin = rw

@g_vip = r

[project:/jhtpay]

@g_jhtpay = rw

[project:/odsb]

@g_odsb = rw

groups用来定义用户组,如g_admin = wdwu,组名为g_admin,组成员为wdwu。

一个用户可以同时属于多个组。

[/]

@g_admin = r

表示g_admin组对根目录有读权限,注意组前要加@符号。

[project:/]

@g_admin = rw

@g_vip = r

表示g_admin对project库根目录具有读写权限,g_vip组具有读权限。

[project:/jhtpay]

@g_jhtpay = rw

表示g_jhtpay组对project下的子目录jhtpay具有读写权限。

[project:/odsb]

@g_odsb = rw

表示g_odsb组对project下的子目录odsb具有读写权限。

通过以上配置,管理员对所有目录具有读写权限,项目组成员对本项目具有读写权限,不能访问其它项目内容。

2.6. 验证
重启apache服务,通过客户端工具,使用不同用户登录,对目录进行操作,验证权限设置。

3. Windows客户端TortoiseSVN使用
3.1. 安装
安装TortoiseSVN和中文包

TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi

LanguagePack_1.5.3.13783-win32-zh_CN.msi

TortoiseSVN会将资源管理器进行扩展,在右键菜单中添加子菜单,提供svn的功能。

3.2. 图标说明

normal

一个新checkout的工作副本使用绿色的对勾做重载。表示Subversion 状态正常。

modified

在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方

式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。

conflicted

如果在更新的过程中出现了冲突,图标会变成黄色感叹号。

readonly

如果你给一个文件设置了svn:needs-lock属性,Subversion 会让此文件只读,直到你获得文件

锁。具有这个重载图标的文件来表示你必须在编辑之前先得到锁。

locked

如果你拥有了一个文件的锁,并且Subversion 状态是正常,这个重载图标就提醒你如果不使

用该文件的话应该释放锁,允许别人提交对该文件的修改。

deleted

这个图标表示当前文件夹下的某些文件或文件夹已经被调度从版本控制中删除,或是该文件夹

下某个受版本控制的文件丢失了。

added

加号告诉你有一个文件或目录已经被调度加入版本控制。

ignored

忽略

non-version

没有纳入版本管理的文件

3.3. 常用功能

SVN更新:将服务上的变化更新到本地

SVN提交:将本地的变化提交到服务器

SVN还原:取消本地的修改,将服务器文件覆盖本地文件。

检查更新:对比服务器端和本地文件的变化。

更新至版本:将服务器的某个版本更新到本地,最常用的是获取最新版本。

版本库浏览器:以资源管理器方式对服务器文件进行管理。

获取锁定:锁定某个文件,使他人在解锁之前不能更改对应服务器文件。

解除锁定:解除对文件的锁定,使他人可以更改对应服务器文件。

4. MyEclipse插件subclipse使用
4.1. 安装
将site-1.4.6.zip解压的内容拷贝到MyEclipse 6.0\eclipse目录,启动MyEclipse即完成对插件的安装。

4.2. 使用
添加项目到SVN:

从SVN导入项目

用法和CVS相似,不再累述。

8. 目录结构示例
svn:/

/proj/

+-trunk

+-branches

+-tags

这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。

对于这几个开发目录,一般的使用方法有两种。我更多的是从软件产品的角度出发(比如freebsd),因为互联网的开发模式是完全不一样的。

第一种方法,使用trunk作为主要的开发目录。

一般的,我们的所有的开发都是基于trunk进行开发,当一个版本/release开发告一段落(开发、测试、文档、制作安装程序、打包等)结束后,代码 处于冻结状态(人为规定,可以通过hook来进行管理)。此时应该基于当前冻结的代码库,打tag。当下一个版本/阶段的开发任务开始,继续在trunk 进行开发。

此时,如果发现了上一个已发行版本(Released Version)有一些bug,或者一些很急迫的功能要求,而正在开发的版本(Developing Version)无法满足时间要求,这时候就需要在上一个版本上进行修改了。应该基于发行版对应的tag,做相应的分支(branch)进行开发。

例如,刚刚发布1.0,正在开发2.0,此时要在1.0的基础上进行bug修正。

按照时间的顺序

9. 常见问题
1 通过WEB或客户工具访问SVN显示403 Forbidden

l 检查用户和权限配置文件是否正确。

l 检查库目录用户访问权限,如权限不足,可用chmod更改。

2 Apache启动失败

l 检查SVN相关apache配置是否正确,mod_dav_svn.so和mod_authz_svn.so是否存在。

l 是否在root用户下安装。

3 svn命令使用错误

l 安装配置时是否正确指定apr。

l 通过rpm包安装有时会发生错误。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值