跟我学软件版本控制和管理相关的应用技术——VisualSVN服务器安装...

跟我学软件版本控制和管理相关的应用技术——VisualSVN服务器安装...

2023年6月30日发(作者:)

杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

1.1 跟我学软件版本控制和管理相关的应用技术——VisualSVN服务器安装和配置管理详解

1.1.1 软件配置管理及版本控制

1、配置管理(Configuration Management,CM)

(1)什么是配置管理

是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。

(2)配置管理的最终目标是实现软件产品的完整性、一致性、可控性

通过配置管理能够使产品极大程度地与用户需求相吻合,因为它是通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。

一个好的配置管理过程能覆盖软件开发和维护的各个方面,同时对软件开过程的宏观管理,即项目管理,也有重要的支持作用。良好的配置管理能使软件开发过程有更好的可预测性,使软件系统具有可重复性。

2、配置管理在软件开发过程和项目管理过程中的作用

由于一个软件产品从开发到完成,其实始终都是在“缝缝补补”的过程中达到用户预期效果的。每一个软件项目,无论是工程类项目,还是产品类项目,都必须经历需求分析、系统设计、编码实现、集成测试、部署、交付、维护和支持的过程。

在这个过程中,由于将生成各种各样不同的工件,这包括各种文档、源程序、可执行代码、支持库等。另外由于需求会频繁地出现变更,因此面向如此庞大且不断变动的信息集,如何能够使其有序、高效地存放、查找和利用就成为了一个突出的问题。

(1)配置管理过程不能仅仅对静态的、成形的产品进行管理,而必须对动态的、成长的产品进行管理

配置管理同软件开发过程紧密相关,并且配置管理必须紧扣软件开发过程的各个环节:管理用户所提出的需求,监控其实施,确保用户需求最终落实到产品的各个版本中去,并在产品发行和用户支持等方面提供帮助,响应用户新的需求,推动新的开发周期。

通过配置管理过程的控制,用户对软件产品的需求如同普通产品的订单一样,遵循一个严格的流程,经过一条受控的生产流水线,最后形成产品,发售给相应用户。

杨教授工作室,版权所有,盗版必究, 1/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

(2)好的配置管理过程将有助于规范各个角色的行为,同时又为角色之间的任务传递提供无缝的接合

配置管理过程所规范的工作流程和明确的分工有利于管理者应付开发人员流动的困境,使新的成员可以快速实现任务交接,尽量减少因人员流动而造成的损失。

3、配置管理系统应该具备以下主要功能

(1)并行开发支持

因开发和维护的原因,要求能够实现开发人员同时在同一个软件模块上工作,同时对同一个代码部分作不同的修改,即使是跨地域分布的开发团队也能互不干扰,协同工作,而又不失去控制;

(2)修订版管理

跟踪每一个变更的创造者、时间和原因,从而加快问题和缺陷的确定 ;

(3)版本控制:能够简单、明确地重现软件系统的任何一个历史版本 ;

(4)产品发布管理:管理、计划软件的变更,与软件的发布计划、预先定制好的生命周期或相关的质量(5)过程保持一致;项目经理能够随时清晰地了解项目的状态 ;

(6)建立管理:基于软件存储库的版本控制功能,实现建立(build)过程自动化 ;

(7)过程控制:贯彻实施开发规范,包括访问权限控制、开发规则的实施等 ;

(8)变更请求管理:跟踪、管理开发过程中出现的缺陷(Defect)、功能增强请求(RFE)或任务(Task),(9)加强沟通和协作,能够随时了解变更的状态 ;

(10)代码共享:提供良好的存储和访问机制,开发人员可以共享各自的开发资源 ;

4、版本控制

(1)版本,亦称配置标识

它是指某一特定对象的具体实例的潜在存在。这里的某一特定对象是指版本维护工具管理的软件组成单元,一般是指源文件;具体实例则是指软件开发人员从软件库中恢复出来的某软件组成单元的具有一定内容和属性的一个真实拷贝。例如,对源文件的每一次修改都生成一个新版本。

(2)版本控制

就是对在软件开发过程中所创建的配置对象的不同版本进行管理,保证任何时候都能取到正确的版本以及版本的组合。

(3)主要的工具

典型的工具有如VSS和CVS、Subversion、Rational ClearCase等。

杨教授工作室,版权所有,盗版必究, 2/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

好的版本控制工具对于团队开发来讲,可以控制每个人的分工和权限。两个人可以同时编辑同一份源代码,由程序来提醒两次修改中存在的冲突。并且可以查看某一处改动是谁做的,当开发人员发布了一个正式版,可以建立一个分支,在分支上继续开发下一个版本,而对于后来发现的Bug,可以在主分支上继续改进,如果分支上同样存在这个Bug,可以将两者合并。

1.1.2 Visual SVN服务器的安装和配置

1、软件开发中的版本控制及Subversion概述

(1)为什么要使用版本控制

当多人共同开发同一个软件时,会涉及源代码的共享以及带来的相关问题,比如追究某个代码是由谁在什么时间修改的。下面列出版本控制带来的好处:

1) 为团队提供了所有项目文档的回退按钮,IDE工具只能提供某个文件的回退按钮,而不能做到,比如回退到2011年6月12日下午3点10分时的所有项目文件;

2) 支持多个开发人员在可控的方式下为相同的代码工作;

3) 版本控制系统保存了文档在过去的各个改动,便于查找是谁,在何时,因为什么修改了文档;

4) 支持在文档的主线上同时有多个版本(版本的分支和合并是版本控制的主要手段,一些开发团队仅仅是简单的共享代码主干);

5) 支持查询在某个时点上项目各个文档的状态,可用于研究生产效率等(比如,统计项目哪个时期代码提交最活跃,以及每个人的代码提交频次等等),也可用于对以前的软件发行版的再发行(比如,以前构建的2.0版本的安装包丢失了,那么可以通过版本控制器记录的历史重新回溯到那个版本,然后重新构建出安装包)。

(2)为什么使用Subversion

1) 首先,考虑的是使用免费开源和轻量级的版本控制器。

2) 第二,要求使用比较广泛,为此可选的有CVS和SVN。但最终选择SVN的主要考虑是比较好集成Apache服务器,并且提交的代码支持原子级操作(即,比如提交3个文件,如果因为网络或者其他原因,上传2个文件后中断,SVN能做到服务器端回滚到提交前的状态,而CVS做不到这点,需要手工检查和恢复)。

2、Subversion的程序构成和相关的网络资源

(1)Subversion采用C/S结构

杨教授工作室,版权所有,盗版必究, 3/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

提供有客户端和服务器端程序,但本身所提供的服务器端和客户端都是通过命令行方式启动和执行的。而第三方的组织提供有各种图形界面的客户端工具,比如Eclipse插件Subclipse、Windows图形界面工具TortoiseSVN。而现在也提供有可视化的Subversion服务器端程序Visual SVN。

(2)与Subversion相关的网络资源

1) subversion官方网站:/

2) subclipse官方网站:/

3) tortoiseSVN官方网站:/

4) 使用subversion进行版本控制中文版在线版本:/svnbook/

3、了解版本控制软件中的检出和检入等操作

(1)初始导入项目到SVN服务器端

项目组中的某个成员在Eclipse中编写了一个初始的项目,然后再把该初始项目共享到版本控制器的服务器主机中,有助于项目组中的其他成员检出代码,这时就需要进行初始导入操作。

杨教授工作室,版权所有,盗版必究, 4/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

(2)检出(checkout)代码

在刚开始进入一个开发队伍的时候,在项目组中一般都已经有了版本控制和软件项目。因此,对于新来的员工首先是检出代码——把项目的源代码下载到用户本地,并且带有版本控制信息。

当然,在MyEclipse等开发工具中可以在新建项目时直接从SVN服务器端检出代码的方式创建出本地项目。

杨教授工作室,版权所有,盗版必究, 5/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

(3)在开发过程中项目在提交前,应该先做更新项目操作

比如在项目组中已经有一个程序文件提交到SVN服务器中,但可能有其他成员用户提交了新的改动到,但你现在又修改了并准备提交你的改动。

此时,首先要操作更新,这样如果该文件在SVN服务器中已经改动,会将改动加入到用户自己的当前本地的中。

杨教授工作室,版权所有,盗版必究, 6/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

(4)在开发过程中提交项目中的某个新的代码

在提交代码时,一般会级联当前目录下所有改动的内容。

4、Visual SVN简介

(1)Subversion是一个好的解决方案,但是配置与命令式界面感觉不太人性化

因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为Windows Service,还要通过修改配置文件来控制用户的权限,另外如果要想以http协议的Web方式访问,一般还要安装和配置Apache服务器。这对于初学者来说,存在一定的困难。

杨教授工作室,版权所有,盗版必究, 7/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

(2)VisualSVN Serve集成了Subversion和Apache

安装的时候SVN Server时已经封装为Windws Service,而对于Apache服务器的配置也可以利用图形界面实现,并指定认证方式、访问端口等简单的配置操作;另外,用户权限的管理也是通过图形界面进行的,简单方便。

目前,Subversion(SVN)是最受欢迎的 CVS(一种流行的开放源码变更管理系统)的替代品,它提供了更好的性能——比如,允许智能本地缓存和数据库后端缓存、轻松而又快速的分支(branching)以及对使用 CVS 时所遇到的常见问题的良好解决。

5、下载VisualSVN Server

进入到/server/download/网站页面,将VisualSVN Server的系统程序下载到本地。

6、直接双击安装程序进行系统程序的安装——将出现下面的安装画面

杨教授工作室,版权所有,盗版必究, 8/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

然后再点击“Next下一步”按钮,将出现下面的安装过程

选择遵守软件协议,再点击“Next下一步”按钮

杨教授工作室,版权所有,盗版必究, 9/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

选择安装类型,再点击“Next下一步”按钮,在Server Port中的默认端口有80/81/8080三个;如果最后面的CheckBox被选中,则表示使用安全连接【https协议】,这时的端口只有433/8433二个可用。

其中的“Location”代表Visual SVN程序的安装位置,可以任意选择,只需要点击后面的“Browse”按钮可以更换安装的目录,安装的内容包括Subversion和Apache的程序。

杨教授工作室,版权所有,盗版必究, 10/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

而“Repositories”代表Visual SVN代码仓库的位置,也可以任意选择,点击后面的“Browse”按钮同样也可以更换代码库安装目录。

其中的“Server Port”为通过Apache服务器对外访问的Http或者Https的端口号。如果需要支持Https协议则勾选后面的复选框。在对话框中选择安装的路径和https的端口号(如果https的端口号出现冲突,可以改变端口号),再点击“Next下一步”按钮。

点击下面对话框中的“Install”按钮将将开始安装

杨教授工作室,版权所有,盗版必究, 11/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

在安装的过程中将出现安装的进度提示信息

安装成功后,将出现下面的提示信息

杨教授工作室,版权所有,盗版必究, 12/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

点击对话框中的“Finish”按钮后将自动地启动SVN服务器。

其中的树形节点Repositories表示项目的版本库所在的目录,而Users节点代表对版本库中的项目访问(Check in 和Check out)的各个用户、Groups节点代表对版本库中的项目访问的各个用户组。

而右面的teacher:8443/svn/代表VisualSVN Server的服务器的地址,其中的teacher:8443/是Apache服务器的地址,而svn是代码仓库的根目录。

7、在Windows的服务程序组中可以启动和终止SVN服务器

VisualSVN Server安装成功后,将自动地注册为Windows的服务程序。因此,可以直杨教授工作室,版权所有,盗版必究, 13/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

接在Windows的服务程序组中启动和终止SVN服务器。

8、创建项目的代码库

(1)启动VisualSVN Server服务器管理控制台

(2)然后创建和命名版本库

点击左面树的节点“Repositories” ,并找到“新建”菜单后再点击其内的“Repository”子菜单,或者直接点击弹出菜单中的“Create ”子菜单项目。

杨教授工作室,版权所有,盗版必究, 14/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

然后VisualSVN会要求在弹出的对话框中输入新建版本库的名称,按下图所示输入本示例的版本库名称为CRMSystemRepositories,将创建出新的代码库。系统也将自动显示出在客户端访问该版本库的URL地址:teacher:8443/svn/CRMSystemRepositories。

其中的teacher:8443/是Apache服务器的地址,而svn是代码仓库的根目录,CRMSystemRepositories为代码库的名称。

在上图所示的文本框中输入版本库的名称后点击其中的“Ok”按钮,代码库创建完毕。

(3)保留版本库目录的默认结构

如果选中上图中的CheckBox,则在代码库CRMSystemRepositories下面会创建trunk、branches、tags三个子目录;不选中该CheckBox项目,则只创建出一个空的代码库CRMSystemRepositories。建议在每个项目下面都建立出三个目录,它们分别是Trunk、Branches和Tags,其中Trunk存放开发主线的代码和文档,而Branches存放分支的代码和文档——如满足特殊用户要求的定制项目、特殊使用项目等,在Tags目录中则存放各种发布的版本。

创建完代码库后,没有任何内容在里面,其实每个源码仓库是一个数据库。当然,也可以根据项目的需要,创建出多个不同的版本库达到分门别类地管理代码和文档。

9、在VisualSVN中新建用户帐号(安全性设置)

(1)添加项目中的各个用户

点击左面树的节点“Users”,然后再选择“新建”子菜单中的“User”子菜单,或者杨教授工作室,版权所有,盗版必究, 15/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

直接点击弹出菜单中的“Create User”子菜单项目。

(2)在对话框中输入用户帐号名称和密码、确认密码等信息

用户帐号名称为DeveloperOne(代表开发人员)、密码和确认密码为12345678。

最后点击对话框中的“OK”按钮,系统将创建出一个开发人员的用户帐号。

(3)为项目组的各个角色人员创建出对应的帐号和设置初始的密码

然后再按照上面的过程,分别添加项目组中的测试人员TesterOne和管理人员ManagerOne,他们的密码和确认密码都为12345678。

杨教授工作室,版权所有,盗版必究, 16/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

10、在VisualSVN中新建用户组(有助于权限分配)

由于在项目组中会有多个成员,为了为每个不同的成员分配权限,可以创建出用户组,并指定各个用户组中的成员用户,最后再对用户组进行授权。

(1)新建出Developer开发人员组和添加成员用户

(2)新建出Tester测试人员组和添加成员用户

杨教授工作室,版权所有,盗版必究, 17/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

(3)新建出Manager管理人员组和添加成员用户

11、为每个用户组分配权限

(1)启动权限分配对话框

在左面的树形节点中右键单击版本库CRMSystemRepositories节点,然后在弹出的菜单中选择“所有任务”菜单中的“Manager Security”子菜单项目。

杨教授工作室,版权所有,盗版必究, 18/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

将会出现下图所示的版本权限分配对话框,在对话框中的“Permissions”项目表示版本库的权限,其中的“Inherit from parent(Read/Write)”表示具有读与写的权限,而“no Access”表示没有权限,“Read Only”表示只有读取的权限。

(2)在对话框中指定用户组和目标用户,并为用户组分配权限

点击上图对话框中的“”按钮,选择刚才添加的用户或者用户组,然后在下面的“Permissions”项目中分配具体的权限。也可以通过“Remove”按钮删除用户或者用户组。最后点击“确定”按钮后,将完成权限的设置。

杨教授工作室,版权所有,盗版必究, 19/20页 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

上面的不同的用户组中的用户就具有对名称为CRMSystemRepositories的代码库的不同权限。Tester组代表测试人员,不负责代码的编写,所以为只读权限。而Developer和Manager是开发人员和项目管理人员组,当然应该要具有读、写的权限。

杨教授工作室,版权所有,盗版必究, 20/20页

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688078459a77066.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信