2023年6月21日发(作者:)
AriUDP平台
VS2010源代码管理工具配置手册
Version 1.05
版本历史:
版本/状态
1.05
作者
xx
参与者
起止时间
备注
目录
简介 ................................................................................................................................................................................1
第1章 VS项目软件配置工具介绍 ..................................................................................................................3
1
.1
SVN和VISUALSVN介绍 .............................................................................................................................3
1.2
必备软件 ..........................................................................................................................................................4
第2章 VISUALSVN SERVER ..........................................................................................................................5
2.1
VISUALSVN
SERVER ........................................................................................................................................5
2.2
VISUALSVN
SERVER安装过程 ....................................................................................................................5
2.3
VISUALSVN
SERVER
配置与使用方法.....................................................................................................8
2.3.1添加代码库8
2.3.2
代码库安全性设置
用户和用户组................................................................................................9
第3章 13
3.1
TORTOISESVN介绍 ...................................................................................................................................... 13
3.2
TORTOISESVN安装过程............................................................................................................................. 13
3.3
TORTOISESVN配置和使用方法 .............................................................................................................. 15
3.3.1签入源代码到SVN服务器 ............................................................................................................. 15
3.3.2签出源代码到本机............................................................................................................................. 17
3.3.3
提交修改过的文件到SVN服务器 .............................................................................................. 19
3.3.4添加新文件到SVN服务器 ............................................................................................................. 20
3.3.5更新本机代码与SVN服务器上最新的版本一致................................................................... 21
3.3.6重命名文件或文件夹,并将修改提交到SVN服务器 ......................................................... 21
3.3.7删除文件或文件夹,并将修改提交到SVN服务器.............................................................. 22
第四章 ANKHSVN ............................................................................................................................................... 23
4.1
ANKHSVN介绍 ............................................................................................................................................. 23
4.2
ANKHSVN安装 ............................................................................................................................................. 23
4.2
ANKHSVN连接VISUALSVN
SERVER
下载源项目 ............................................................................ 24
4.3
ANKHSVN开发项目时其它的操作流程 .............................................................................................. 28
I xx计算平台 VS2010源代码管理工具配置手册
简介
1、什么是软件配置管理
软件配置管理是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。
2、为什么需要配置管理
如果没有软件配置管理,最大的麻烦是工作成果无法回溯。随着工作的进展新的程序覆盖了老的程序,当突然发现新程序有问题而老程序正确时怎么办?那只能重写老的程序来覆盖新的程序。过一段时间又发现原来的老程序有问题,而解决方法在原来的新程序中……您是不是快要发疯了。
为了避免成果被覆盖,包括我自己在内的很多人早期采用手工管理版本的方式,例如当一个新版本产生时用当时的日期来命名文件夹大发生然后再复制一下以后的修改在复制的文件夹内进行,这样上一个版本就被保存下来了,周而复始不同的版本不会被覆盖。虽然这种方式可以从某种程度上解决版本的回溯问题,但他存在的缺点是显而易见的:第一点如果保留结果过于频繁,将会导致产生大量的有着重复内容的文件夹,庞大的物理空间,管理起来很麻烦;如果保留旧版本的时间间隔太长,可能产生某些有用的老程序无法回溯。拿我最近开发的一个程序来说程序只有几十兆,经过一年的开发各版本累计到1G。第二容易产生版本的混乱,如果是团队开发软件,这种简单的方法更难解决问题的本质了。
3、人的问题
配置管理的方法是成熟的,而且相应的软件工具也是成熟的,基本上不存在看不懂、不会用的问题。配置管理的执行效果如何,完全是事在人为。妨碍配置管理的主要问题是人们嫌麻烦和侥幸心理作怪。
在没出乱子的情况下,执行版本控制看起来有些麻烦。每次修改工作的时候总是要Get Latest Version,接着Check Out,修改完后又要Check In,多做了三步。其实这三步加起来也就十几秒钟,而且不费脑子,根本没有添加多少麻烦,仅仅是个人感觉不爽而以。然而不执行版本控制的话,万一发生工作成果被覆盖或丢失等问题,麻烦就大了。
4、软件配置管理规范
软件研发和管理过程中会产生许许多多的工作成果,例如文档、程序和数据等,他们都应当妥善地保管起来,以便查阅和修改。如果把所有文件一股脑的塞进计算机里,那么使用起来很麻烦。
凡是纳入配置管理范畴的工作成果统称为配置项配置项主要有两大类:一类是属于产品的组成部分,例如需求文档、设计文档、源代码、测试用例等等;另一类是在管理过程中产生的文档,例如各种计划、报告等。每个配置项的主要属性有名称、标识符、文件状态、版本、作者、日期等。配置项及历史纪录反映了软件的演化过程。
版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混乱等现象。配置项的状态有三种:“草稿”、“正式发布”和“正在修改”
-1- xx计算平台 VS2010源代码管理工具配置手册
配置项的版本号与配置项的状态紧密相关:
(1) 处于“草稿”状态的配置项的版本号格式为:
(2) 处于“正式发布”状态的配置项的版本号格式为:X.Y。 一般只是Y值递增,当Y值到达一定的范围时X值才发生变化。
(3) 处于“正在修改”状态的配置项的版本号格式为:。 一般只增大Z值,当配置项修改完毕,状态重新变成“正式发布”时,将Z值变为0,增加X.Y值。
-2- xx计算平台 VS2010源代码管理工具配置手册
第1章 VS项目软件配置工具介绍
1 .1 Svn和VisualSvn介绍
在进行TortoiseSvn(管理员客户端)+ AnkhSvn(VS2008插件) +VisualSvn Server(版本控制服务器)进行源代码版本控制前,有必要先了解下Subversion(Svn)。
Svn(Subversion)是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用Svn作为代码版本管理软件。
Svn客户端
Subversion的客户端有两类,一类是webSvn等基于web的,一种是以TortoiseSvn为代表的客户端软件。前者需要web服务器的支持,后者需要用户在本地安装客户端。
Svn服务器
Subversion支持linux和windows,更多是安装在linux下。
Svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
Svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
VisualSvn 、VisualSvn Server
VisualSvn是Svn的客户端,和Visual Studio集成在一起,但是是商业软件,收费;VisualSvn Server是基于Windows平台上的Subversion服务器,它是免费的。他具体包括了Subversion、Apache和一个相应的管理界面。所以推荐使用免费的TortoiseSvn客户端以及VS插件AnkhSvn 。
为什么要用Svn,而不用Vss?
相同点:都能集成在VS2008下进行源代码管理,都能完全内网开发。
不同点:Vss是基于“锁定--编辑—解锁”模式的,这个模式有一个弊端,就是当其他人在编辑相关单元文件的时候,此单元文件处于锁定状态,其他人如果想编辑这个单元文件的话,只能处于等待状态。后来在持续集成中我使用的Subversion替代Vss,Subversion是基于“修改—冲突—合并”的一个模式,也就是说多个人可以同时签出一个单元文件,编辑然后提交,如果多个人都修改了同一文件的某一行的话,就会发生冲突,手工解决冲突。
Internet开发,和离线开发,VisualSvn会比Vss更胜一筹。
为什么要用VisualSvn Server,而不直接用Subversion?
因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装Svn Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSvn Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候Svn Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面-3- xx计算平台 VS2010源代码管理工具配置手册
来配置。
VisualSvn Server是完全开源和免费的,当然它的官方客户端(VisualSvn)并不免费,不过没关系, VisualSvn Serve客户端有太多的免费版本供我们选择,TortoiseSvn就是一个不错的选择.
1.2 必备软件
基于VS2008 Team开发环境的源代码版本控制需要以下软件,安装顺序没有限制,一切默认安装即可,详细过程后面章节会有叙述:
(1) VisualSvn Server(版本控制服务器)免费开源软件。
版本号:,官方下载地址:
/files/
(2) TortoiseSvn(管理员客户端),免费开源软件。
版本号,官方下载地址:
/project/tortoiseSvn/Application/1.6.11/
(3) AnkhSvn(VS2008插件),免费开源软件。
版本号:,官方下载地址:
/files/documents/175/3887/
-4- xx计算平台 VS2010源代码管理工具配置手册
第2章 VisualSvn Server
2.1 VisualSvn Server
VisualSvn Server是免费的,而VisualSvn是收费的。VisualSvn是Svn的客户端,和Visual Studio集成在一起,但是不免费, VisualSvn Server是Svn的服务器端,包括Subversion、Apache和用户及权限管理,优点在上面已经说过了。
版本号:,官方下载地址:
/files/
2.2 VisualSvn Server安装过程
下载后,运行 程序,点击Next,下面的截图顺序即为安装步骤:
【步骤1】安装首界面,见图2-2-1。
选中checkbox
图2-2-1安装首界面
【步骤2】选择组件为服务器和管理终端功能 见图2-2-2。
-5- xx计算平台 VS2010源代码管理工具配置手册
选择服务器端和管理终端功能
图2-2-2选择组件为服务器和管理终端功能
【步骤3】自定义安装配置 见图2-2-3。
图2-2-3自定义安装配置
【注意】:
如果不选择Use secure connection ,Server Port那里,默认端口有80/81/8080三个;如果选中最-6- xx计算平台 VS2010源代码管理工具配置手册
后面的CheckBox,则表示使用安全连接【https协议】,这是的端口只有433/8433二个可用。 默认是选用的。
至于授权Authentication,默认选择 VisualSVN Server自带的用户和用户组
【步骤4】 点击安装按钮,进行安装 见图2-2-4。
【步骤5】安装成功,服务启动,见图2-3-5。
图2-3-5 安装成功
-7- xx计算平台 VS2010源代码管理工具配置手册
2.3 VisualSvn Server 配置与使用方法
安装好VisualSVN Server后【安装过程看2.2节】,运行VisualSVN Server Manger,下面是启动界面,见图2-3-1:
状态区控制区日志信息用户信息代码库信息
图2-3-1 VisualSVN Server 启动界面
2.3.1添加代码库StartKit
下面添加一个代码库Repository 叫StartKit,并进行相关设置:
【步骤1】创建代码库StartKit,见图2-3-2。
图2-3-2创建代码库StartKit
-8- xx计算平台 VS2010源代码管理工具配置手册
【步骤2】代码库基本配置,见图2-3-3,创建新的代码库,在下图所示的文本框中输入代码库名称:
代码库名称URL地址(机器名可以换成IP)代码库文件结构
图2-3-3代码库基本配置
【注意】
Repository URL 地址是用来从客户端或者VS2008中连接服务器。机器名可以改成IP,这里用的安全连接模式https。
上图中的代码库文件结构CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags三个子目录;不选中,则只创建空的代码库StartKit。默认不选中
点击OK按钮,代码库就创建成功了,见图2-3-4。
图2-3-4 代码创建成功
2.3.2 代码库安全性设置 用户和用户组
下面,我们开始安全性设置,在左侧的Users上点击右键:
【步骤1】创建用户。
创建用户,并设置用户名和密码,见图2-3-5,图2-3-6。
-9- xx计算平台 VS2010源代码管理工具配置手册
图2-3-5 创建用户
图2-3-6 用户名和密码设置
输入上面的信息,点击OK,我们就创建一个用户了。按照上面的过程,分别添加用户startKiter1、startKiter2、startKiter3。
【步骤2】添加这些用户到我们刚才创建的项目里。
右击代码库StartKit的属性见图2-3-7,弹出属性对话框见图2-3-8。
图2-3-7 代码库的属性菜单
-10- xx计算平台 VS2010源代码管理工具配置手册
添加StartKit代码库的用户给用户授权No Access 表示无权Read Only 表示只读Read/Write 表示读写
图2-3-8 给用户分配权限
点击上图中的""按钮,在下图中选择我们刚才添加的用户,点击OK按钮:
【注意】
大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。
【步骤3】创建组,并选择该组的用户,见图2-3-9。
-11- xx计算平台 VS2010源代码管理工具配置手册
图2-3-9 给组划分用户
-12- xx计算平台 VS2010源代码管理工具配置手册
第3章 TortoiseSvn
3.1 TortoiseSvn介绍
TortoiseSvn 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。
版本号,官方下载地址:
/project/tortoiseSvn/Application/1.6.11/
3.2 TortoiseSvn安装过程
下载后,运行 程序,点击Next,下面的截图顺序即为安装步骤:
【步骤1】 安装界面见图3-2-1。
图3-2-1 安装界面
-13- xx计算平台 VS2010源代码管理工具配置手册
【步骤2】选择安装地址,见图3-2-2。
默认安装地址
图3-2-2选择安装地址
【步骤3】安装成功,见图3-2-3。
图3-2-3 安装成功
-14- xx计算平台 VS2010源代码管理工具配置手册
点击Finish按钮后会提示重启系统,其实不重启也没有关系,呵呵:-)
3.3 TortoiseSvn配置和使用方法
在 3.2节中,我已经讲解了怎样安装TortoiseSVN。在第2章的讲解中已经讲了怎么使用VisualSVN Server了,下面是TortoiseSVN的简单使用方法。
3.3.1签入源代码到SVN服务器
【步骤1】签入文件操作,连接SVN服务器
假如我们使用Visual Studio在文件夹StartKit中创建了一个项目,我们要把这个项目的源代码签入到SVN Server上的代码库中里,首先右键点击StartKit文件夹,这时候的右键菜单如图3-3-1所示:
图3-2-1 右键菜单
【步骤2】签入新的项目文件
点击Import,弹出下面的窗体,见图3-2-2其中10.3.2.150是服务器名,svn是代码仓库的根目录,StartKit是我们在上个教程中添加的一个代码库:
【注意】
左下角的CheckBox,在第一次签入源代码时没有用,但是,在以后你提交代码的时候是非常有用的。
-15- xx计算平台 VS2010源代码管理工具配置手册
代码库位置红线部分是代码库的根目录日志记录
图3-2-2 签入新的项目文件
点击OK按钮,会弹出下面的窗体,见图3-2-3要求输入凭据:
图3-2-3 输入用户名和密码
在上面的窗体中输入用户名和密码,点击OK按钮,如图3-2-4所示。
-16- xx计算平台 VS2010源代码管理工具配置手册
图3-2-4
如上图所示,好了,源代码已经成功签入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的源代码到自己的机器了。
3.3.2签出源代码到本机
在本机创建文件夹StartKit,右键点击Checkout,弹出如下图的窗体,如图3-2-5
SVN服务器上的代码库地址本机存放代码的目录迁出的深度,看下面的注释忽略外部定义迁出最新版本迁出指定版本可根据日志选择版本
图3-2-5 迁出代码到本机操作
在上图中URL of Repository:下的文本框中输入svn server中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。
【注意】
-17- xx计算平台 VS2010源代码管理工具配置手册
上图中的Checkout Depth,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入10.3.2.150/svn/StartKit/ ,这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。
搞定!源代码已经成功签出到刚才新建的StartKit目录中。打开StartKit目录,可以看到如下图的文件夹结构如图3-2-6所示
图3-2-6
一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。下图中我修改了其中的二个文件如图3-2-7所示。
已修改状态正常状态
图3-2-7
大家看一下不同状态所对应的图片如图3-2-8所示。
-18- xx计算平台 VS2010源代码管理工具配置手册
修改不同的显示风格正常已修改冲突只读已删除锁定新添加已忽略未修改
图3-2-8
我们已经知道怎么将源代码签入到SVN服务器,怎么从服务器签出代码到本机,也简单了解了不同状态所对应的图案啦。
3.3.3 提交修改过的文件到SVN服务器
上面的图3-2-7中,我修改了位于StartTest文件中的二个文件和,下面演示如何提交到SVN服务器。
【注意】提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。
在StartTest文件夹上点击右键或在StartTest文件下的空白处点击右键,点击SVN
Commit…弹出下面的窗体如图3-2-9所示。
-19- xx计算平台 VS2010源代码管理工具配置手册
最近输入的日志文件信息列表【已修改】修改状态
图3-2-9
点击OK按钮后,弹出如下图的窗体,图3-2-10
图3-2-10
3.3.4添加新文件到SVN服务器
我们在StartKit文件下添加一个新的类文件,状态为non-versione状态在StartKit文件下的空白处点击右键,点击SVN Commit…,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。
-20- xx计算平台 VS2010源代码管理工具配置手册
另外也可以在文件上点击右键,点击TortoiseSVN=>>Add, 选中文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为新添加状态。之后,我们要再SVN Commit这个文件一次,弹出如下图的窗体: 图3-2-11才可以将其真正提交到SVN服务器上的代码库中。
图3-2-11 提交新加的文件
上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。
3.3.5更新本机代码与SVN服务器上最新的版本一致
这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。
【注意】更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。
3.3.6重命名文件或文件夹,并将修改提交到SVN服务器
只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVN Commit提交到SVN服务器后才真正重命名。
-21- xx计算平台 VS2010源代码管理工具配置手册
3.3.7删除文件或文件夹,并将修改提交到SVN服务器
最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到SVN服务器后才真正删除。
【注意】实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。
以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。
【注意】向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用。
-22- xx计算平台 VS2010源代码管理工具配置手册
第四章 AnkhSvn
4.1 AnkhSvn介绍
AnkhSVN是一款在VS中管理Subversion的插件,您可以在VS中轻松的提交、更新、添加文件,而不用在命令行或资源管理器中提交。而且该插件属于开源项目。
版本号:,官方下载地址:
/files/documents/175/3887/
4.2 AnkhSvn安装
下载完毕后,进行安装,安装向导安装即可,如下步骤。
【步骤1】安装界面,见图4-2-1。
图4-2-1 安装界面
【步骤2】安装成功
-23- xx计算平台 VS2010源代码管理工具配置手册
图4-2-2 安装成功
4.2 AnkhSvn连接VisualSvn Server 下载源项目
安装成功后,打开vs2008将会产生如下菜单,见图4-2-1。
图4-2-1 VS2008菜单
如果没有此菜单,请查看工具下的,选项中的,source control如图4-2-2所示:
-24- xx计算平台 VS2010源代码管理工具配置手册
图4-2-2 VS2008设置菜单
打开一个项目连接SVN中,如图4-2-3所示
图4-2-3 连接SVN
url:输入10.3.2.150/svn/StartKit 如图4-2-4所示,输入库账户密码如图4-2-5所示。
-25- xx计算平台 VS2010源代码管理工具配置手册
1.首先添加SVN库地址2.库地址+库名
图4-2-4 添加svn库地址Url
图4-2-5 输入库用户密码
输入正确的口令后可以看到已经建好的项目,进入需要打开的项目目录打开程序,如图4-2-6所示,在VS2008中打开项目StartTest程序,如图4-2-7,图4-2-8所示。
-26- xx计算平台 VS2010源代码管理工具配置手册
所在的库StartKit库所拥有的项目
图4-2-6 打开库StartKit
StartTest项目项目
图4-2-7 打开SVN库StartKit下面的项目StartTest
-27- xx计算平台 VS2010源代码管理工具配置手册
代码库StartKit中项目StartTest下载最新版本项目保存在本机地址
图4-2-8 下载界面
Local Directory是指定本地存放程序路径,大家可以自行设定。点OK,可以看到程序从服务器传到本地。
4.3 AnkhSvn开发项目时其它的操作流程
在程序修改时一般操作流程及方法,
【步骤1】首先点update,更新为最新版本,如图4-3-1。
图4-3-1更新项目程序为最新版本
【步骤2】然后对需要修改的程序文件,进行锁定。如下图4-3-2所示:
-28- xx计算平台 VS2010源代码管理工具配置手册
图4-3-2
可以键入提示信息,如下图所示:
-29- xx计算平台 VS2010源代码管理工具配置手册
图4-3-3 锁定文件
锁定后可以看到,有加锁图标,如图4-3-4所示:
图4-3-4 锁后文件状态
【步骤3】修改后,更新程序,如下图4-3-5所示:
-30- xx计算平台 VS2010源代码管理工具配置手册
图4-3-5提交
可以在message中输入备注信息。
【步骤4】手动解锁文件见图4-3-6。
图4-3-6手动解锁
【步骤5】查看版本历史 见图4-3-7。
-31- xx计算平台 VS2010源代码管理工具配置手册
图4-3-7查看项目版本历史
【步骤6】比较版本,点击diff如图4-3-8所示:
-32- xx计算平台 VS2010源代码管理工具配置手册
图4-3-8 比较
【注意】选择要对比的版本,
HEAD The latest (or “youngest”) revision in the repository.
BASE The revision number of an item in a working copy. If the item has been locally modified, the “BASE
version” refers to the way the item appears without those local modifications.
COMMITTED The most recent revision prior to, or equal to, , in which an item changed.
PREV The revision immediately before the last revision in which an item changed. Technically, this boils
down to -1.
点OK,出现结果如下图所示4-3-9:
-33- xx计算平台 VS2010源代码管理工具配置手册
图4-3-9 比较结果
-34-
2023年6月21日发(作者:)
AriUDP平台
VS2010源代码管理工具配置手册
Version 1.05
版本历史:
版本/状态
1.05
作者
xx
参与者
起止时间
备注
目录
简介 ................................................................................................................................................................................1
第1章 VS项目软件配置工具介绍 ..................................................................................................................3
1
.1
SVN和VISUALSVN介绍 .............................................................................................................................3
1.2
必备软件 ..........................................................................................................................................................4
第2章 VISUALSVN SERVER ..........................................................................................................................5
2.1
VISUALSVN
SERVER ........................................................................................................................................5
2.2
VISUALSVN
SERVER安装过程 ....................................................................................................................5
2.3
VISUALSVN
SERVER
配置与使用方法.....................................................................................................8
2.3.1添加代码库8
2.3.2
代码库安全性设置
用户和用户组................................................................................................9
第3章 13
3.1
TORTOISESVN介绍 ...................................................................................................................................... 13
3.2
TORTOISESVN安装过程............................................................................................................................. 13
3.3
TORTOISESVN配置和使用方法 .............................................................................................................. 15
3.3.1签入源代码到SVN服务器 ............................................................................................................. 15
3.3.2签出源代码到本机............................................................................................................................. 17
3.3.3
提交修改过的文件到SVN服务器 .............................................................................................. 19
3.3.4添加新文件到SVN服务器 ............................................................................................................. 20
3.3.5更新本机代码与SVN服务器上最新的版本一致................................................................... 21
3.3.6重命名文件或文件夹,并将修改提交到SVN服务器 ......................................................... 21
3.3.7删除文件或文件夹,并将修改提交到SVN服务器.............................................................. 22
第四章 ANKHSVN ............................................................................................................................................... 23
4.1
ANKHSVN介绍 ............................................................................................................................................. 23
4.2
ANKHSVN安装 ............................................................................................................................................. 23
4.2
ANKHSVN连接VISUALSVN
SERVER
下载源项目 ............................................................................ 24
4.3
ANKHSVN开发项目时其它的操作流程 .............................................................................................. 28
I xx计算平台 VS2010源代码管理工具配置手册
简介
1、什么是软件配置管理
软件配置管理是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。
2、为什么需要配置管理
如果没有软件配置管理,最大的麻烦是工作成果无法回溯。随着工作的进展新的程序覆盖了老的程序,当突然发现新程序有问题而老程序正确时怎么办?那只能重写老的程序来覆盖新的程序。过一段时间又发现原来的老程序有问题,而解决方法在原来的新程序中……您是不是快要发疯了。
为了避免成果被覆盖,包括我自己在内的很多人早期采用手工管理版本的方式,例如当一个新版本产生时用当时的日期来命名文件夹大发生然后再复制一下以后的修改在复制的文件夹内进行,这样上一个版本就被保存下来了,周而复始不同的版本不会被覆盖。虽然这种方式可以从某种程度上解决版本的回溯问题,但他存在的缺点是显而易见的:第一点如果保留结果过于频繁,将会导致产生大量的有着重复内容的文件夹,庞大的物理空间,管理起来很麻烦;如果保留旧版本的时间间隔太长,可能产生某些有用的老程序无法回溯。拿我最近开发的一个程序来说程序只有几十兆,经过一年的开发各版本累计到1G。第二容易产生版本的混乱,如果是团队开发软件,这种简单的方法更难解决问题的本质了。
3、人的问题
配置管理的方法是成熟的,而且相应的软件工具也是成熟的,基本上不存在看不懂、不会用的问题。配置管理的执行效果如何,完全是事在人为。妨碍配置管理的主要问题是人们嫌麻烦和侥幸心理作怪。
在没出乱子的情况下,执行版本控制看起来有些麻烦。每次修改工作的时候总是要Get Latest Version,接着Check Out,修改完后又要Check In,多做了三步。其实这三步加起来也就十几秒钟,而且不费脑子,根本没有添加多少麻烦,仅仅是个人感觉不爽而以。然而不执行版本控制的话,万一发生工作成果被覆盖或丢失等问题,麻烦就大了。
4、软件配置管理规范
软件研发和管理过程中会产生许许多多的工作成果,例如文档、程序和数据等,他们都应当妥善地保管起来,以便查阅和修改。如果把所有文件一股脑的塞进计算机里,那么使用起来很麻烦。
凡是纳入配置管理范畴的工作成果统称为配置项配置项主要有两大类:一类是属于产品的组成部分,例如需求文档、设计文档、源代码、测试用例等等;另一类是在管理过程中产生的文档,例如各种计划、报告等。每个配置项的主要属性有名称、标识符、文件状态、版本、作者、日期等。配置项及历史纪录反映了软件的演化过程。
版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混乱等现象。配置项的状态有三种:“草稿”、“正式发布”和“正在修改”
-1- xx计算平台 VS2010源代码管理工具配置手册
配置项的版本号与配置项的状态紧密相关:
(1) 处于“草稿”状态的配置项的版本号格式为:
(2) 处于“正式发布”状态的配置项的版本号格式为:X.Y。 一般只是Y值递增,当Y值到达一定的范围时X值才发生变化。
(3) 处于“正在修改”状态的配置项的版本号格式为:。 一般只增大Z值,当配置项修改完毕,状态重新变成“正式发布”时,将Z值变为0,增加X.Y值。
-2- xx计算平台 VS2010源代码管理工具配置手册
第1章 VS项目软件配置工具介绍
1 .1 Svn和VisualSvn介绍
在进行TortoiseSvn(管理员客户端)+ AnkhSvn(VS2008插件) +VisualSvn Server(版本控制服务器)进行源代码版本控制前,有必要先了解下Subversion(Svn)。
Svn(Subversion)是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用Svn作为代码版本管理软件。
Svn客户端
Subversion的客户端有两类,一类是webSvn等基于web的,一种是以TortoiseSvn为代表的客户端软件。前者需要web服务器的支持,后者需要用户在本地安装客户端。
Svn服务器
Subversion支持linux和windows,更多是安装在linux下。
Svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
Svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
VisualSvn 、VisualSvn Server
VisualSvn是Svn的客户端,和Visual Studio集成在一起,但是是商业软件,收费;VisualSvn Server是基于Windows平台上的Subversion服务器,它是免费的。他具体包括了Subversion、Apache和一个相应的管理界面。所以推荐使用免费的TortoiseSvn客户端以及VS插件AnkhSvn 。
为什么要用Svn,而不用Vss?
相同点:都能集成在VS2008下进行源代码管理,都能完全内网开发。
不同点:Vss是基于“锁定--编辑—解锁”模式的,这个模式有一个弊端,就是当其他人在编辑相关单元文件的时候,此单元文件处于锁定状态,其他人如果想编辑这个单元文件的话,只能处于等待状态。后来在持续集成中我使用的Subversion替代Vss,Subversion是基于“修改—冲突—合并”的一个模式,也就是说多个人可以同时签出一个单元文件,编辑然后提交,如果多个人都修改了同一文件的某一行的话,就会发生冲突,手工解决冲突。
Internet开发,和离线开发,VisualSvn会比Vss更胜一筹。
为什么要用VisualSvn Server,而不直接用Subversion?
因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装Svn Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置Apache,如果是新手,岂不是很头痛?而VisualSvn Serve集成了Subversion和Apache,省去了以上所有的麻烦。安装的时候Svn Server已经封装为windws service,Apache服务器的配置也只是在图像界面上,指定认证方式、访问端口等简单操作;另外,用户权限的管理也是通过图像界面-3- xx计算平台 VS2010源代码管理工具配置手册
来配置。
VisualSvn Server是完全开源和免费的,当然它的官方客户端(VisualSvn)并不免费,不过没关系, VisualSvn Serve客户端有太多的免费版本供我们选择,TortoiseSvn就是一个不错的选择.
1.2 必备软件
基于VS2008 Team开发环境的源代码版本控制需要以下软件,安装顺序没有限制,一切默认安装即可,详细过程后面章节会有叙述:
(1) VisualSvn Server(版本控制服务器)免费开源软件。
版本号:,官方下载地址:
/files/
(2) TortoiseSvn(管理员客户端),免费开源软件。
版本号,官方下载地址:
/project/tortoiseSvn/Application/1.6.11/
(3) AnkhSvn(VS2008插件),免费开源软件。
版本号:,官方下载地址:
/files/documents/175/3887/
-4- xx计算平台 VS2010源代码管理工具配置手册
第2章 VisualSvn Server
2.1 VisualSvn Server
VisualSvn Server是免费的,而VisualSvn是收费的。VisualSvn是Svn的客户端,和Visual Studio集成在一起,但是不免费, VisualSvn Server是Svn的服务器端,包括Subversion、Apache和用户及权限管理,优点在上面已经说过了。
版本号:,官方下载地址:
/files/
2.2 VisualSvn Server安装过程
下载后,运行 程序,点击Next,下面的截图顺序即为安装步骤:
【步骤1】安装首界面,见图2-2-1。
选中checkbox
图2-2-1安装首界面
【步骤2】选择组件为服务器和管理终端功能 见图2-2-2。
-5- xx计算平台 VS2010源代码管理工具配置手册
选择服务器端和管理终端功能
图2-2-2选择组件为服务器和管理终端功能
【步骤3】自定义安装配置 见图2-2-3。
图2-2-3自定义安装配置
【注意】:
如果不选择Use secure connection ,Server Port那里,默认端口有80/81/8080三个;如果选中最-6- xx计算平台 VS2010源代码管理工具配置手册
后面的CheckBox,则表示使用安全连接【https协议】,这是的端口只有433/8433二个可用。 默认是选用的。
至于授权Authentication,默认选择 VisualSVN Server自带的用户和用户组
【步骤4】 点击安装按钮,进行安装 见图2-2-4。
【步骤5】安装成功,服务启动,见图2-3-5。
图2-3-5 安装成功
-7- xx计算平台 VS2010源代码管理工具配置手册
2.3 VisualSvn Server 配置与使用方法
安装好VisualSVN Server后【安装过程看2.2节】,运行VisualSVN Server Manger,下面是启动界面,见图2-3-1:
状态区控制区日志信息用户信息代码库信息
图2-3-1 VisualSVN Server 启动界面
2.3.1添加代码库StartKit
下面添加一个代码库Repository 叫StartKit,并进行相关设置:
【步骤1】创建代码库StartKit,见图2-3-2。
图2-3-2创建代码库StartKit
-8- xx计算平台 VS2010源代码管理工具配置手册
【步骤2】代码库基本配置,见图2-3-3,创建新的代码库,在下图所示的文本框中输入代码库名称:
代码库名称URL地址(机器名可以换成IP)代码库文件结构
图2-3-3代码库基本配置
【注意】
Repository URL 地址是用来从客户端或者VS2008中连接服务器。机器名可以改成IP,这里用的安全连接模式https。
上图中的代码库文件结构CheckBox如果选中,则在代码库StartKit下面会创建trunk、branches、tags三个子目录;不选中,则只创建空的代码库StartKit。默认不选中
点击OK按钮,代码库就创建成功了,见图2-3-4。
图2-3-4 代码创建成功
2.3.2 代码库安全性设置 用户和用户组
下面,我们开始安全性设置,在左侧的Users上点击右键:
【步骤1】创建用户。
创建用户,并设置用户名和密码,见图2-3-5,图2-3-6。
-9- xx计算平台 VS2010源代码管理工具配置手册
图2-3-5 创建用户
图2-3-6 用户名和密码设置
输入上面的信息,点击OK,我们就创建一个用户了。按照上面的过程,分别添加用户startKiter1、startKiter2、startKiter3。
【步骤2】添加这些用户到我们刚才创建的项目里。
右击代码库StartKit的属性见图2-3-7,弹出属性对话框见图2-3-8。
图2-3-7 代码库的属性菜单
-10- xx计算平台 VS2010源代码管理工具配置手册
添加StartKit代码库的用户给用户授权No Access 表示无权Read Only 表示只读Read/Write 表示读写
图2-3-8 给用户分配权限
点击上图中的""按钮,在下图中选择我们刚才添加的用户,点击OK按钮:
【注意】
大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。
【步骤3】创建组,并选择该组的用户,见图2-3-9。
-11- xx计算平台 VS2010源代码管理工具配置手册
图2-3-9 给组划分用户
-12- xx计算平台 VS2010源代码管理工具配置手册
第3章 TortoiseSvn
3.1 TortoiseSvn介绍
TortoiseSvn 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。
版本号,官方下载地址:
/project/tortoiseSvn/Application/1.6.11/
3.2 TortoiseSvn安装过程
下载后,运行 程序,点击Next,下面的截图顺序即为安装步骤:
【步骤1】 安装界面见图3-2-1。
图3-2-1 安装界面
-13- xx计算平台 VS2010源代码管理工具配置手册
【步骤2】选择安装地址,见图3-2-2。
默认安装地址
图3-2-2选择安装地址
【步骤3】安装成功,见图3-2-3。
图3-2-3 安装成功
-14- xx计算平台 VS2010源代码管理工具配置手册
点击Finish按钮后会提示重启系统,其实不重启也没有关系,呵呵:-)
3.3 TortoiseSvn配置和使用方法
在 3.2节中,我已经讲解了怎样安装TortoiseSVN。在第2章的讲解中已经讲了怎么使用VisualSVN Server了,下面是TortoiseSVN的简单使用方法。
3.3.1签入源代码到SVN服务器
【步骤1】签入文件操作,连接SVN服务器
假如我们使用Visual Studio在文件夹StartKit中创建了一个项目,我们要把这个项目的源代码签入到SVN Server上的代码库中里,首先右键点击StartKit文件夹,这时候的右键菜单如图3-3-1所示:
图3-2-1 右键菜单
【步骤2】签入新的项目文件
点击Import,弹出下面的窗体,见图3-2-2其中10.3.2.150是服务器名,svn是代码仓库的根目录,StartKit是我们在上个教程中添加的一个代码库:
【注意】
左下角的CheckBox,在第一次签入源代码时没有用,但是,在以后你提交代码的时候是非常有用的。
-15- xx计算平台 VS2010源代码管理工具配置手册
代码库位置红线部分是代码库的根目录日志记录
图3-2-2 签入新的项目文件
点击OK按钮,会弹出下面的窗体,见图3-2-3要求输入凭据:
图3-2-3 输入用户名和密码
在上面的窗体中输入用户名和密码,点击OK按钮,如图3-2-4所示。
-16- xx计算平台 VS2010源代码管理工具配置手册
图3-2-4
如上图所示,好了,源代码已经成功签入SVN服务器了。这时候团队成员就可以迁出SVN服务器上的源代码到自己的机器了。
3.3.2签出源代码到本机
在本机创建文件夹StartKit,右键点击Checkout,弹出如下图的窗体,如图3-2-5
SVN服务器上的代码库地址本机存放代码的目录迁出的深度,看下面的注释忽略外部定义迁出最新版本迁出指定版本可根据日志选择版本
图3-2-5 迁出代码到本机操作
在上图中URL of Repository:下的文本框中输入svn server中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。
【注意】
-17- xx计算平台 VS2010源代码管理工具配置手册
上图中的Checkout Depth,有4个选项,分别是迁出全部、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。上面的例子中,我们也可以使用web的方式访问代码库,在浏览器中输入10.3.2.150/svn/StartKit/ ,这时候也会弹出对话框,要求输入用户名和密码,通过验证后即可浏览代码库中的内容。
搞定!源代码已经成功签出到刚才新建的StartKit目录中。打开StartKit目录,可以看到如下图的文件夹结构如图3-2-6所示
图3-2-6
一旦你对文件或文件夹做了任何修改,那么文件或文件夹的显示图片机会发生变化。下图中我修改了其中的二个文件如图3-2-7所示。
已修改状态正常状态
图3-2-7
大家看一下不同状态所对应的图片如图3-2-8所示。
-18- xx计算平台 VS2010源代码管理工具配置手册
修改不同的显示风格正常已修改冲突只读已删除锁定新添加已忽略未修改
图3-2-8
我们已经知道怎么将源代码签入到SVN服务器,怎么从服务器签出代码到本机,也简单了解了不同状态所对应的图案啦。
3.3.3 提交修改过的文件到SVN服务器
上面的图3-2-7中,我修改了位于StartTest文件中的二个文件和,下面演示如何提交到SVN服务器。
【注意】提交源代码到服务器时,一定确保本机的代码是最新版本,否则可能提交失败,或者造成版本冲突。
在StartTest文件夹上点击右键或在StartTest文件下的空白处点击右键,点击SVN
Commit…弹出下面的窗体如图3-2-9所示。
-19- xx计算平台 VS2010源代码管理工具配置手册
最近输入的日志文件信息列表【已修改】修改状态
图3-2-9
点击OK按钮后,弹出如下图的窗体,图3-2-10
图3-2-10
3.3.4添加新文件到SVN服务器
我们在StartKit文件下添加一个新的类文件,状态为non-versione状态在StartKit文件下的空白处点击右键,点击SVN Commit…,和上面讲的提交修改过的文件到SVN服务器一样,就可以了。
-20- xx计算平台 VS2010源代码管理工具配置手册
另外也可以在文件上点击右键,点击TortoiseSVN=>>Add, 选中文件,点击OK按钮,这样并没有将这个文件提交到SVN服务器,只是将这个文件标记为源代码库库中的文件,并将其状态置为新添加状态。之后,我们要再SVN Commit这个文件一次,弹出如下图的窗体: 图3-2-11才可以将其真正提交到SVN服务器上的代码库中。
图3-2-11 提交新加的文件
上面讲是添加文件,实际上,添加文件夹的步骤也是一样的,这里就不说了。
3.3.5更新本机代码与SVN服务器上最新的版本一致
这个也很简单,只要在需要更新的文件夹上点击右键或在该文件下的空白处点击右键,点击SVN Update,就可以了。
【注意】更新操作可能会因为版本冲突而失败,这是可以使用合并【Merge】或其他方法解决;也可能因为锁定【Get Lock】而失败,这是需要先解锁【Release Lock】。
3.3.6重命名文件或文件夹,并将修改提交到SVN服务器
只要在需要重命名的文件或文件夹上点击右键,点击TortiseSVN=>>Rename…,在弹出的窗体中输入新名称,点击OK按钮,就可以了。此方法也不是直接重命名,而是将该文件或文件夹的名称标记为重命名后名称,也需要我们使用SVN Commit提交到SVN服务器后才真正重命名。
-21- xx计算平台 VS2010源代码管理工具配置手册
3.3.7删除文件或文件夹,并将修改提交到SVN服务器
最简单就是,你直接删除文件或文件夹,然后使用SVN Commit提交更新到SVN服务器。另外一种方法是在你要删除的文件或文件夹上点击右键=>>TortoiseSVN=>>Delete删除,此方法也不是直接删除,而是将该文件或文件夹的状态置为删除,也需要我们使用SVN Commit提交到SVN服务器后才真正删除。
【注意】实际上,从你把源代码迁签入SVN服务器开始,每一个版本的数据和文件,就算是你已经删除了的,也都可以随时迁出。
以上只是TortoiseSVN最简单的几个功能,其实他的功能远不止这些,其他的功能大家可以在使用的过程中慢慢体会,有些功能我会在下面的教程中使用到,到时候会和大家讲清楚用法。
【注意】向SVN服务器提交源代码的时候,一定不要提交bin、obj等文件夹,否则会很麻烦。但是web项目的bin目录除外,但是web项目的bin目录中的引用其他项目而生成的dll不需要提交。
一个好习惯:如果项目中引用了其他的第三方的程序集,比如EnterpriseLibrary、FCKEditor等,这时候不要简单从他们的安装位置引用,而是在你的解决方案下,添加一个Library的目录,把需要的程序集复制到这里,然后从Library目录引用。
-22- xx计算平台 VS2010源代码管理工具配置手册
第四章 AnkhSvn
4.1 AnkhSvn介绍
AnkhSVN是一款在VS中管理Subversion的插件,您可以在VS中轻松的提交、更新、添加文件,而不用在命令行或资源管理器中提交。而且该插件属于开源项目。
版本号:,官方下载地址:
/files/documents/175/3887/
4.2 AnkhSvn安装
下载完毕后,进行安装,安装向导安装即可,如下步骤。
【步骤1】安装界面,见图4-2-1。
图4-2-1 安装界面
【步骤2】安装成功
-23- xx计算平台 VS2010源代码管理工具配置手册
图4-2-2 安装成功
4.2 AnkhSvn连接VisualSvn Server 下载源项目
安装成功后,打开vs2008将会产生如下菜单,见图4-2-1。
图4-2-1 VS2008菜单
如果没有此菜单,请查看工具下的,选项中的,source control如图4-2-2所示:
-24- xx计算平台 VS2010源代码管理工具配置手册
图4-2-2 VS2008设置菜单
打开一个项目连接SVN中,如图4-2-3所示
图4-2-3 连接SVN
url:输入10.3.2.150/svn/StartKit 如图4-2-4所示,输入库账户密码如图4-2-5所示。
-25- xx计算平台 VS2010源代码管理工具配置手册
1.首先添加SVN库地址2.库地址+库名
图4-2-4 添加svn库地址Url
图4-2-5 输入库用户密码
输入正确的口令后可以看到已经建好的项目,进入需要打开的项目目录打开程序,如图4-2-6所示,在VS2008中打开项目StartTest程序,如图4-2-7,图4-2-8所示。
-26- xx计算平台 VS2010源代码管理工具配置手册
所在的库StartKit库所拥有的项目
图4-2-6 打开库StartKit
StartTest项目项目
图4-2-7 打开SVN库StartKit下面的项目StartTest
-27- xx计算平台 VS2010源代码管理工具配置手册
代码库StartKit中项目StartTest下载最新版本项目保存在本机地址
图4-2-8 下载界面
Local Directory是指定本地存放程序路径,大家可以自行设定。点OK,可以看到程序从服务器传到本地。
4.3 AnkhSvn开发项目时其它的操作流程
在程序修改时一般操作流程及方法,
【步骤1】首先点update,更新为最新版本,如图4-3-1。
图4-3-1更新项目程序为最新版本
【步骤2】然后对需要修改的程序文件,进行锁定。如下图4-3-2所示:
-28- xx计算平台 VS2010源代码管理工具配置手册
图4-3-2
可以键入提示信息,如下图所示:
-29- xx计算平台 VS2010源代码管理工具配置手册
图4-3-3 锁定文件
锁定后可以看到,有加锁图标,如图4-3-4所示:
图4-3-4 锁后文件状态
【步骤3】修改后,更新程序,如下图4-3-5所示:
-30- xx计算平台 VS2010源代码管理工具配置手册
图4-3-5提交
可以在message中输入备注信息。
【步骤4】手动解锁文件见图4-3-6。
图4-3-6手动解锁
【步骤5】查看版本历史 见图4-3-7。
-31- xx计算平台 VS2010源代码管理工具配置手册
图4-3-7查看项目版本历史
【步骤6】比较版本,点击diff如图4-3-8所示:
-32- xx计算平台 VS2010源代码管理工具配置手册
图4-3-8 比较
【注意】选择要对比的版本,
HEAD The latest (or “youngest”) revision in the repository.
BASE The revision number of an item in a working copy. If the item has been locally modified, the “BASE
version” refers to the way the item appears without those local modifications.
COMMITTED The most recent revision prior to, or equal to, , in which an item changed.
PREV The revision immediately before the last revision in which an item changed. Technically, this boils
down to -1.
点OK,出现结果如下图所示4-3-9:
-33- xx计算平台 VS2010源代码管理工具配置手册
图4-3-9 比较结果
-34-
发布评论