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包安装有时会发生错误。
分享到:
相关推荐
**二、SVN配置** 1. **创建版本库**: 使用`svnadmin create /path/to/repo`命令创建一个新的版本库。 2. **设置权限**: 可以通过修改版本库的`conf`目录下的`passwd`和`authz`文件来管理用户和权限。 3. **启动...
在本篇文章中,我们将详细探讨如何安装和配置SVN,以便于团队有效地管理和共享代码资源。 **1. 安装SVN服务器** 在Windows系统上,通常使用VisualSVN Server作为SVN服务器。首先,访问VisualSVN官网下载安装包,...
#### 三、修改svn配置文件 - **svnserve.conf配置**:此文件位于SVN安装目录下的`conf`子目录中,用于配置SVN服务器的基本行为。 - `anon-access=none`:禁止匿名访问,确保只有授权用户才能访问仓库。 - `auth-...
安装和使用SVN需要对服务器端和客户端进行配置,本文将对SVN的安装配置与使用进行详细的介绍。 一、SVN服务器端的安装 SVN服务器端的安装非常简单,点击服务器端exe文件,一直下一步,选择Standard Edition。在弹...
**SVN安装配置教程** **一、什么是SVN** ...以上就是关于SVN安装配置及使用的全面教程。通过熟练掌握这些知识点,你可以有效地利用SVN来管理和协作你的项目。记得持续学习和实践,以充分利用SVN带来的便利。
### SVN详细配置和使用 #### 一、背景与需求 版本控制系统在软件开发过程中扮演着极其重要的角色。本文档将详细介绍Subversion (SVN) 的配置及使用方法,并结合具体的场景来阐述其重要性。 ##### 开发中的实际...
在本教程中,我们将深入探讨SVN的安装、配置以及基本操作,以帮助你更好地理解和应用这一强大的工具。 **一、SVN安装** 1. **Windows**: 对于Windows用户,可以下载TortoiseSVN,它是一个带有图形界面的SVN客户端...
【压缩包子文件的文件名称列表】:虽然具体文件名未给出,但通常会包含一系列文档或教程,如“SVN安装指南”、“SVN配置步骤”、“SVN命令行教程”等,这些文件将详细解释如何在不同操作系统(如Windows、Linux或Mac...
Apache Subversion(简称SVN)是一个开源的版本控制系统,常...以上就是"apache+svn安装配置"的详细步骤,通过这些步骤,你可以在本地或服务器上建立一套完整的版本控制系统,方便团队成员高效地进行软件开发和协作。
本教程将深入讲解如何安装和配置SVN。 **一、SVN安装** 1. **Windows安装**: 对于Windows用户,可以下载TortoiseSVN,这是一个带有图形用户界面的SVN客户端。访问官方网站下载最新版本,然后按照安装向导进行操作...
1. 安装SVN apt-get install subversion 2. 建立svn仓库 1). 建立svn目录:mkdir /home/.svn(使用隐藏目录) 2). cd /home/.svn 3). mkdir astar 4). 创建仓库astar:svnadmin create /home/.svn/astar,...
【SVN安装配置与使用】 SVN(Subversion)是一种版本控制系统,用于管理代码和文档的变更历史。本文将详细介绍如何在服务器端安装配置SVN,以及如何在客户端进行基本的使用。 一、服务器端安装配置 1. 选择安装包...
### MyEclipse 10.0 优化及 SVN 安装配置详解 #### MyEclipse 10.0 优化技巧 **1. 字体设置调整:** 在使用 MyEclipse 10.0 时,为了提升开发体验,推荐进行字体设置调整。具体步骤如下: - 打开 `Window` 菜单。 ...
SVN安装配置与使用 1、 所选服务器安装包:VisualSVN-Server-2.1.3.msi、 2、 客户端安装包:TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi
【svn插件安装和配置使用】 在开发过程中,版本控制系统如Subversion(简称svn)扮演着至关重要的角色,它能够帮助开发者追踪代码的修改历史,协同团队工作。然而,在特定环境下,例如MyEclipse 8.5及以上版本,...
本教程将深入介绍如何安装和配置SVN。 **1. SVN的基本概念** - **版本库(Repository)**:存储所有版本信息的地方,是SVN的核心组件。 - **工作副本(Working Copy)**:开发者本地的项目副本,可以直接编辑。 ...