基于 TeamCity 的持续集成环境: SVN

上一篇介绍了 CI 的一个基本的情况,本篇来介绍下组成 CI 的一个重要部分:版本控制系统。

版本控制系统为多人协作提供了统一的源代码仓库,每个开发人员都从仓库中获得、提交最新代码。版本控制系统记录项目的每一次改动,并通过版本号进行管理。能很方便的对每一次改动进行跟踪,清楚的知道文件的来龙去脉,并帮助解决代码冲突的困难。

SVN(,全称 Subversion) 是 Apache 2000 年推出的一个开源版本控制系统,被设计为 CVS 的替代品。它与 TFVC(Team Foundation Version Control) 一样是一款集中式的版本控制系统(,新版的 SVN 添加了对分布式的支持)。

要想使用 SVN,我们必须先创建 SVN 仓库,然后在需要使用的机器上安装客户端。

创建 SVN 仓库

这里使用 Apache 的 VisualSVN。

安装完后,看到的界面是这样的:

在 Repositories 中右击,选择 "Create New Repository..."

根据项目的需求选择对应的仓库类型,这里选择常规的(即集中式的)。

输入仓库的名字

选择仓库中默认的文件夹。

选择用户权限

提示你创建用户,以便从网站或其它 SVN 客户端来访问仓库。

创建一个用户


如果只需要在本地建立仓库,而不需要专门的服务器来做为 SVN 的仓库供不同的机器访问,则可以直接使用 TortoiseSVN 建立仓库。

使用 SVN 客户端

版本控制系统的主要操作:签出、签入、合并、分支等。SVN 提供了命令行操作的方式来进行此类操作,但是对于习惯了使用 Windows 的同学们,还是更习惯使用 GUI 的界面进行操作。我这里安装的是 TortoiseSVN(俗称的乌龟SVN)。

Check out 仓库到本地文件夹

复制 SVN 仓库地址

第一次 check out 的时候会询问用户名、密码,如果选择 "保存",则不用每次都输入。

签出完成。

签入项目

首先,自然是在刚刚签出的位置建立我们的项目,这里我随便用 Visaul Stuido 建立了一个 MVC 的应用。

然后在需要签入的文件夹(或文件)上右键单击,选择 "Add..."

勾选要提交到仓库的文件,(由于在 "创建 SVN 仓库" 一节中选择的是 Empty 仓库,所以我们要自己建立需要的文件夹。下面建立了三个文件夹:branches、tags 和 trunk)。

分 支

有些时候,我们可能要保持主线不变,分出些 Feature 的分支用于进行新功能的开发,等新功能开发完毕、测试通过后,再合并到主线上。

通过 SVN 的 Branch/tag 功能以某个分支为源头,创建新的分支。

在源分支的目录上右键单击 "Branch/tag..."

在 "To path" 中填写目标分支,下面演示为 trunk 中的 MvcApplication1 这个项目在branches/main下建立分支。


要使用另一个分支的话,同理先签出->修改->签入。


合并回主分支

在分支上进行了多次修改后,我们会希望把分支的这些修改合并回主分支,这个时候可以使用 SVN 的 Merge 功能。

在目标分支(主分支)上右键单击 "Merge..."

选择 "Merge a range of revisions" 来将另一个分支的修改合并到当前分支。

选择要从哪个分支合并到当前分支,下面选择的是一个 feature 分支。目的是把 feature 分支的内容合并到主分支。

选择 "Merge" 就会把另一个分支的修改合并到本分支(保留签出状态)


合并完成后,如果检查之后没有问题,就可以进行签入。


参考资源

svn merge和branch

文章索引

[隐 藏]

本站采用知识共享署名 3.0 中国大陆许可协议进行许可。 ©2014 Charley Box | 关于本站 | 浙ICP备13014059号