`

软件开发管理之版本控制管理:Subversion (SVN)

    博客分类:
  • svn
 
阅读更多

软件开发管理之版本控制管理:Subversion (SVN)

——Angel

软件开发管理之版本控制管理:Subversion (SVN) 1

一、 什么是版本控制管理 1

二、Subversion的基本概念 2

三、快速入门:Windows下搭建SVN服务器 2

1.下载subversion 2

2.设置环境变量 2

3.创建仓库 3

4.修改访问权限 3

5.添加用户 4

6.启动SVN 6

7.创建一个目录,提交内容 6

8.使用流程 6

 

一、什么是版本控制管理

版本控制之于程序员,就好比安全网之于高空秋千表演者。知道安全网就在那里,万一自己摔落它能够提供保护,高空秋千表演者才能放心大胆地在空中飞跃。同样,版本控制使您有能力去冒以往想都不敢想的风险。如果哪儿出了错,您总是可以使自己的代码回复到一个已知的、工作正常的版本。您可以在不触及主干的分支中进行试验,而不会影响到其他小组成员。在已经发布的产品的较老版本中发现 bug 时,您可以轻松检出特定版本,以确认、修订,并生成该 bug 的修补程序。如果没有版本控制,您必须极为慎之又慎,缓慢地推进,总而言之,生产力会更低。 

Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。

(注:摘抄文章《软件开发管理之版本控制管理》)

二、Subversion的基本概念

版本库:Subversion是一种集中的分享信息的系统,它的核心是版本库,它储存所有的数据,版本库按照文件树形式储存数据包括文件和目录。任意数量的客户端可以连接到版本库,读写这些文件。通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。

实际上,版本库是另一种文件服务器,而不是你常见的那一种。最特别的是Subversion会记录每一次的更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。 当一个客户端从版本库读取数据时,通常只会看到最新的版本,但是客户端也可以去看以前的任何一个版本。举个例子,一个客户端可以发出这样的历史问题上个星期四的目录是怎样的?或是谁最后一个更改了这个文件,更改了什么?,这些是每一种版本控制系统的核心问题:系统是设计来记录和跟踪每一次改动的。

(注:摘抄文章《软件开发管理之版本控制管理》)

三、快速入门:Windows下搭建SVN服务器

1.下载subversion 

选择svn-win32-1.6.6.zip,我喜欢解压就能用的版本 
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=11151&expandFolder=11151&folderID=91 

2.设置环境变量 

解压svn-win32-1.6.6.zip,如D:\svn\svn-win32-1.6.6,设置SVN_HOME,加入PATH,%SVN_HOME%\bin,添加SVN_EDITOR变量为notepad.exe 

(注:

》在进行解压的时候,我们一般是新创建一个文件件svn,然后在svn目录下进行解压,这个主要是我们之后需要在svn目录新建存放工程的文件和目录。还有就是如果需要安装客户端的话,那么我们一般的话,是和服务端放在一个文件夹进行管理。

》环境变量包括用户变量和系统变量,我们主要配置的是系统变量,以上需要配置三个系统变量 SVN_HOME:这个需要通过新建的方式创建; PATH:在原先的基本上进行追加;SVN_EDITOR:这个也需要新建,主要是可以进行使用文本编辑器)

3.创建仓库 

先创建一个目录如:D:\svn\svn_test,使用命令添加该仓库: 

命令如下

1. svnadmin  create  D:\svn\svn_test  

该命令会在D:\svn\svn_test生成一些目录和配置文件 

4.修改访问权限 

打开仓库(就是刚才创建的svn_test)目录下的conf\svnserve.conf文件在[general]下添加: 

命令如下 

1. auth-access = write   

2. password-db = passwd  

auth-access = write

password-db = passwd

如果允许匿名用户访问,那就添加 

命令如下 

1. anon-access = read  

 自己加上 start其中anon-access = read表示匿名用户可读,也可改成none或者write,分别表示没权限和可写,如果anon-access设成可写了,就是谁都可以改代码了,这是我们不希望的。

auth-access = write表示认证用户可写。

password-db = passwd.conf表示密码文件是passwd.conf

svnserve.conf所在目录新建一个文件passwd.conf,编辑内容如下:

[users] 

flmn = password 

表示有个用户叫flmn,密码是password,下面可以再添加用户。

(注:如果在import的时候,提示Failed,那么就是没有进行write的权限,修改auth-access=write即可参考:http://wenwen.soso.com/z/q223575153.htm)

5.添加用户 

打开仓库目录下的conf\passwd文件在[users]下添加一个用户如:username,密码:password: 

命令如下 

1. username = password  

我们在实际当中需要配置各种角色的用户,比如可读,可写的....

具体操作如下:

》svnserve.conf:

配置如下:

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

说明:annon-access = none 是不允许匿名访问

auth-access = write 拥有写的权限

password-db = passwd 对应的用户名和密码查看当前对应的文件

auth-db = authz 对应的用户权限配置查看authz文件

passwd 文件(添加用户,这边举例一个进行说明):

angel = angel 

说明:用户名是 左边的angel  密码是右边的 angel

要十分的注意:

1. 每一个用户都需要有一个组。

2. 用户名的最左边和最右边一定不能出现空格,否则访问的时候会报一个认证配置无效。

authz文件:

[groups]

admin = angel

[/]

@admin = rw

*= r

参考资料:http://www.iusesvn.com/bbs/viewthread.php?tid=6&extra=page%3D1

username = password

6.启动SVN 

命令如下 

1. svnserve  --daemon  --root  D:\svn\svn_repository  

svnserve  --daemon  --root  D:\svn\svn_repository

7.创建一个目录,提交内容 

方法一:

使用客户端TortoiseSVN登录,地址是:svn://localhost,如果不是在本机登录就要:svn://ip,右键svn://localhost创建一个目录如:test,会要求输入用户名和密码,username:password 

方法二:

先用客户端把svn://localhost,checkout到一个目录下,然后再在那个目录添加文件或文件夹test,然后直接提交就行了 

方法三:

使用命令提交本地内部,打开命令控制台,去到想要提交内容的目录如:D:\project\myproject,然后使用命令提交: 

命令如下

1. svn import svn://localhost/test  

svn import svn://localhost/test

8.使用流程

开发人员使用svn进行开发的一般流程是:

——>从SVN服务器上检出项目——> checkout

——> 更新文件或目录 ——> update

——> 修改文件或目录 —— commit(提交)变更

——> 增加文件或目录 ——> add(增加) 文件或目录——> commit(提交)

——> 删除文件或目录 ——> commit(提交)上一级目录

但要注意,当需要向服务器提交时,必须先更新再提交,以防版本冲突。

<!--EndFragment-->
分享到:
评论

相关推荐

    版本控制:Subversion使用指南

    Subversion,简称SVN,是一种开源的版本控制系统,用于管理文件和目录的变更历史,使得多人协作开发时能够高效地处理代码版本问题。Subversion提供了一种集中式的版本控制模型,使得团队成员可以安全地进行文件的...

    比较好的版本控制入门:SubVersion

    SubVersion(简称SVN)是一种广泛使用的开源版本控制系统,它允许用户管理文件和目录的历史版本,方便团队协作和项目管理。SubVersion的核心功能包括版本追踪、冲突解决、分支与合并以及备份恢复等,这些都是软件...

    深入浅出SVN(SubVersion,版本控制系统) (pdf高清晰版)

    综上所述,Subversion作为一款开源版本控制系统,其设计理念、特点及应用领域使其成为软件开发不可或缺的工具之一。无论是对于个人开发者还是大型团队,Subversion都能够提供强大的支持,帮助管理和维护项目的版本...

    使用Subversion进行版本控制 PDF中文版

    在IT行业中,版本控制是软件开发过程中的一个关键环节,它确保了代码的完整性和可追溯性,使得团队协作更加高效。《使用Subversion进行版本控制 PDF中文版》这一资源,深入介绍了Subversion(SVN)这一流行版本控制...

    Subversion(简称svn)是近年来崛起的版本管理软件

    Subversion(通常缩写为svn)是一款开源的版本控制系统,用于管理和跟踪文件及目录的变更。自2000年代初发布以来,它在IT行业中迅速获得了广泛的认可,特别是在软件开发领域,成为开发者们协作和管理项目源代码的...

    SVN Books Subversion 1.8

    从那时起,Subversion 就成为了一个流行的版本控制系统,广泛应用于软件开发中。 Subversion 的架构 Subversion 的架构主要由三个部分组成:客户端、服务器和存储库。客户端是用户与 Subversion 交互的界面,...

    PowerBuilder 通过SVN实现版本控制操作说明

    通过以上步骤,我们可以有效地利用SVN对PowerBuilder项目进行版本控制,这对于团队协作开发非常重要。不仅可以跟踪每次更改的历史记录,还能有效防止因对象重名等问题而导致的代码混乱。希望本文能帮助读者顺利地...

    利用SVN和AltiumDesigner进行PCB版本控制设计

    SVN(Subversion)是一种开源的版本控制系统,广泛应用于软件开发和设计领域。AltiumDesigner是电子设计自动化(EDA)软件,提供了强大的PCB设计功能。 一、版本控制的重要性 版本控制的重要性体现在以下几个方面...

    利用SVN进行版本控制.pdf

    Subversion(简称SVN)作为一款成熟且广泛使用的版本控制系统,为开发者提供了强大的版本管理功能。本文将基于“利用SVN进行版本控制.pdf”的内容,深入探讨如何在Altium Designer Summer09这一新一代电子产品开发...

    [资料][软件开发][版本控制][CVS][Version Control with Subversion].pdf

    - **Subversion定义**:Subversion(SVN)是一种分布式版本控制系统,用于管理软件项目的历史版本,并支持团队协作。 - **Subversion的历史发展**:自2000年以来,Subversion逐渐成为一种流行的版本控制工具,它由...

    采用Subversion 进行版本控制

    - **项目管理**:在软件开发项目中使用Subversion来管理源代码和其他资源。 - **文档版本控制**:对于文档、设计稿等非代码类文件的版本控制同样适用。 - **团队协作**:支持多用户协同工作,简化版本合并和冲突解决...

    svn subversion-1.7.2

    Subversion(SVN)是一个开源的版本控制系统,用于管理对软件项目源代码的更改。它在软件开发领域中广泛使用,特别是在多人协作的环境中,帮助团队成员协同工作,跟踪文件的修改历史,以及解决合并冲突等问题。...

    软件研发管理-基于JIRA+SVN的版本管理交流-白冰.pptx

    - 除了问题追踪和版本管理,JIRA还提供了报告、权限分配、问题分类和监控等多种工具,帮助团队更有效地管理软件开发过程。 综上所述,通过结合JIRA的项目管理能力和SVN的版本控制能力,软件研发团队可以更好地应对...

    最新SVN版本控制带汉化

    SVN广泛应用于软件开发、文档管理、网站维护等需要版本控制的场景。随着技术的发展,SVN也在不断优化,以更好地适应现代开发环境的需求。掌握SVN的使用,对于提升团队协作效率和项目管理能力具有重要意义。

    用 Apache 和 Subversion 搭建安全的版本控制环境

    Subversion 是一种开源版本控制系统,它以其强大的特性和灵活性,在开源软件开发领域获得了广泛的认可。相比于早期流行的版本控制系统 CVS,Subversion 提供了许多改进和增强功能,包括目录版本化、原子提交、版本化...

    svn实现软件版本控制

    标题:“svn实现软件版本控制”所涵盖的知识点非常广泛,涉及软件开发中版本控制的基本概念、使用Subversion(简称SVN)进行版本控制的实际操作、目录结构的理解以及具体的项目开发流程。以下是详细的知识点解析: ...

    SVN SubVersion

    **SVN SubVersion**,全称为Subversion,是一款开源的版本控制系统,被广泛应用于软件开发领域,用以管理和跟踪项目中的文件和目录变更。Subversion的设计理念是为团队协作提供一个可靠的版本化文件存储系统,使得...

    版本控制软件Subversion使用

    这些改进使得Subversion成为了现代软件开发中的首选版本控制系统之一。 **六、Subversion的多样化服务器配置** Subversion支持多样化的服务器配置方式,包括通过Apache web server加SSH的方式,以及通过Svnserve加...

    带有Subversion的版本控制Version Control with Subversion

    版本控制是软件开发过程中不可或缺的一部分,它能够帮助开发者追踪代码的历史变更记录,并且在必要时能够回滚到之前的某个版本状态。随着软件项目的复杂度增加以及团队规模的扩大,版本控制的重要性也日益凸显。传统...

Global site tag (gtag.js) - Google Analytics