软件开发管理之版本控制管理:Subversion (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)