`

软件开发管理之版本控制管理: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-->
分享到:
评论

相关推荐

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

    也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。  从启动这个项目到现在,虽然CollabNet提供了大部分的资金(它付出几位全职 Subversion 开发人员的薪水), 但这还是个开源...

    SVN版本控制系统

    Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。...

    SVN+中文语言包 - 让您的Subversion客户端“说”中文

    提升您的Subversion(SVN)体验,通过这个简易的中文语言包,将SVN客户端界面本地化为中文,使得中文用户能够更加便捷地进行版本控制操作。这个语言包是为了帮助非英语母语的开发者和项目管理者更舒适地使用SVN,...

    Xversion 1.3.8 svn版本控制工具

    Xversion Mac版是一款macOS平台的Subversion版本控制工具,就是是一个Subversion的管家一样,Xversion Mac版支持URL类型(HTTP, HTTPS, SVN, SVN+SSH)或是文件,支持Subversion的版本涵盖1.6, 1.7, 1.8以及1.9. ...

    Version Control with Subversion (svn手册中英文版)

    某些版本控制系统本身也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的支持,或者提供程序构建工具。不过Subversion并不是这样...

    SVN版本管理详解-08210246.pdf

    但是版本控制的作用不仅在软件开发领域,任何需要管理频繁信息改变的地方都需要它,这 就是Subversion发挥的舞台。 这一章是一个对Subversion高层次的介绍―它是什么;它能做什么;它是怎样做到的。

    svn控制手册中文版

    这是平时软件行业管理版本所需要的,svn方便了开发 人员修改代码

    subversion 最新版svn-win32-1.5.3

    subversion 最新版svn-win32-1.5.3 团队开发版本控制软件。 将是取代大名鼎鼎的cvs下一代版本控制系统,继承了cvs的优点摒弃了其缺点,由cvs的原班人马加上新一代高手开发。

    最新版本的AnkhSVN中文版ankhsvn.zip

    最新版本的AnkhSVN中文版ankhsvn.zip Vs的svn插件 最新版本的AnkhSVN中文版,支持VS2015,它是一款在VS软件管理Subversion的插件, 方便你在VS编程时添加提交更新文件,而无需在命令行模式手工提交, 作一一款开源的...

    SVN(64位、32位)

    SVN(Subversion):代码版本管理软件,你可以将文档、项目、代码放到SVN的中央仓库(Repository)中,这个仓库就像一个文件服务器,不过它会记住文件每一次的变动(包括日期、修改人等等),这样你就可以把文件恢复到指定...

    svn安装包与汉化.rar

    TortoiseSVN 是一个 Windows 下的版本控制系统 Apache™ Subversion® 的客户端工具。就是 说,TortoiseSVN 常年管理文件和目录。文件存储于一个中央版本库中。版本库就像一个常见的文件服 务器,除了它保存你对文件...

    SVNadmin 是基于php开发,实现web后台可视化管理SVN小工具

    svnadmin 是监控和修复 Subversion 仓库的管理工具. 关 于仓库管理的更多细节, 见 “svnadmin”一节. 由于 svnadmin 只有直接访问仓库才能工作 (因 此它只能用在存放了仓库的主机中), 所以说在指定仓库时只能使用...

    SVN上传软件1254687

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...

    在Eclipse中使用SVN与CVS代码管理工具管理项目

    除此之外,一些自由软件开发的协作网如SourceForge.net除了提供CVS外,现在也提供专案开发者使用SVN作为原码管理系统,JavaForge、Google Code以及 BountySource 则以SVN作为官方的源码管理系统。2009年,绝大多数...

    svn 多个人共同开发项目工具

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...

    代码管理工具SVN工具教程.CHM

    Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 Coll abNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部 分。...

    SVN汉化文件LanguagePack_1.6.7.18415-win32-zh_CN

    团队开发版本控制svn汉化 svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件

    TortoiseSVN-1.12.2-zh_CN中文手册

    TortoiseSVN是一款非常易于使用的Windows 版本控制 /版本控制/源代码控制软件。它基于Apache ™ Subversion(SVN)® ; TortoiseSVN为Subversion提供了一个简单易用的用户界面。 它是根据GPL开发的。这意味着任何人...

    TortoiseSVN 1.5.2.13595版(Windows下的SVN客户端)

     某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的...

Global site tag (gtag.js) - Google Analytics