版本控制工具横向比较

 
版本控制是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多有代码版本带来的问题。本文首先列举没有版本控制工具时可能遇到的问题,再对主流版本控制工具做概要介绍,之后对作为Java开发者首选的版本控制工具CVS的历史、功能、概念做详细的介绍;最后在Eclipse+CVS环境中,以CVS使用的一个完整流程为例,介绍如何正确的使用CVS工具。
 
为什么要使用版本控制工具?
如果没有版本控制工具的协助,在开发中我们经常会遇到下面的一些问题:
一、 代码管理混乱。如果是别人添加或删除一个文件,你很难发现。没有办法对文件代码的修改追查跟踪。甚至出现文件丢失,或新版本代码被同伴无意覆盖等现象。
二、 解决代码冲突困难。当大家同时修改一个公共文件时,解决代码冲突是一件很头疼的事。最原始的办法是手工打开冲突文件,逐行比较,再手工粘贴复制。更高级的做法是使用文件比较工具,但仍省不了繁杂的手工操作,一不小心,甚至会引入新的bug。
三、 在代码整合期间引入深层BUG。例如开发者A写了一个公共函数,B觉得正好可以复用;后来A又对这个公共函数进行了修改,添加了新的逻辑,而这个改动的却是B不想要的。或者是A发现这个公共函数不够用,又新做了一个函数,B却没有及时获得通知。这些,都为深层BUG留下隐患。
四、 无法对代码的拥有者进行权限控制。代码完全暴露在所有的开发者面前,任何人都可以随意进行增、删、改操作,无法指定明确的人对代码进行负责。特别是产品的开发,这是极其危险的。
五、 项目不同版本发布困难。特别是对产品的开发,你会频繁的进行版本发布,这时如果没有一个有效的管理产品版本的工具,一切将变得非常艰难。
   上面只是列举了一些没有版本控制系统可能带来的问题,特别是对大型项目和异地协同开发有了一个合适的版本控制工具,它可以有效解决因为代码版本不同引起的各种问题,让我们的开发人员能更多的把精力花费在开发上面。而不是每次都花费很多时间进行代码整合和解决版本不同带来的各种问题。
 
主流版本控制工具介绍
   现在,有很多优秀的版本控制工具供我们选择,下面就五种主流的版本控制工具做简单的介绍。
Starteam 
   是一个集合了版本控制、构建管理(Build Management)和缺陷跟踪系统为一体的软件,并且具有强大的图形界面,易学易用;但管理复杂、维护困难。2002年底被Borland公司收购。
PVCS Version Manager
是美国的MERANT公司软件配置管理工具PVCS 家族中的一个组成部分,它能够实现源代码、可执行文件、应用文件、图形文件和文档的版本管理;它能安全地支持软件并行开发,对多个软件版本的变更进行有效的控制管理。
ClearCase(CC)
是ROSE构件的一部分,目前最牛的配置管理工具,主要应用于复杂的产品发放、分布式团队合作、并行的开发和维护任务。可以控制word, excel,powerpoint,visio等文件格式,对于不认识的格式可以自己定义一种类型来标识。
Visual SourceSafe(VSS)
   简单易用、方便高效、与Windows操作系统及微软开发工具高度集成。
CVS(Concurrent Versions System)
   是开发源码的并发版本系统,它是目前最流行的面向软件开发人员的源代码版本管理解决方案。它可用于各种平台,包括 Linux 、Unix和 Windows NT/2000/XP等等。
   前面三种是重量级的商业版本控制工具,更适合庞大的团队和项目,并且价格不菲。Visual SourceSafe是微软的产品,当然只能用在windows平台并与微软的开发工具无缝集成。CVS免费开源,并且几乎所有开源项目都是使用CVS进行版本管理,无疑,它是我们Java开发者最优选择。
 
CVS的历史、功能、基本概念的介绍
 
历史
   CVS 诞生于 1986 年,当时作为一组 shell 脚本而出现;1989年3月,Brian Berlinor用C语言重新设计并编写了CVS的代码;1993年前后,Jim Kingdon最终将CVS设计成基于网络的平台,开发者们能从Internet任何地方获得程序源代码。截至目前最新版本是2004年12月13日发布的1.12.11。
 
功能介绍
一、 代码统一管理,保存所有代码文件更改的历史记录。对代码进行集中统一管理,可以方便查看新增或删除的文件,能够跟踪所有代码改动痕迹。可以随意恢复到以前任意一个历史版本。并避免了因为版本不同引入的深层BUG。
二、 完善的冲突解决方案,可以方便的解决文件冲突问题,而不需要借助其它的文件比较工具和手工的粘贴复制。
三、 代码权限的管理。可以为不同的用户设置不同的权限。可以设置访问用户的密码、只读、修改等权限,而且通过CVS ROOT目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
四、 支持方便的版本发布和分支功能。
 
基本概念
资源库(Repository)
CVS的资源库存储全部的版本控制下的文件copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改动后再check in(commit)回资源库。而资源库通常为与工作目录分离的。CVS通过多种方式访问资源库。每种方法有不同目录表示形式。
版本(Revision)
每一个文件的各个版本都不相同,形如1.1, 1.2.1,一般1.1是该文件的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 1.4...有时候会出现1.3.2.2,原因见后。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则可以标志用户的特定信息。
标签(Tag)
用符号化的表示方法标志文件特定revision的信息。通常不需要对某一个孤立的文件作tag,而是对所有文件同时作一个tag,以后用户可以仅向特定tag的文件提交或者checkout。另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同revision可以包括在一个tag中。如果命名一个已存在的tag默认将不会覆盖原来的;
分支(Branch)
当用户修改一个branch时不会对另外的branch产生任何影响。可以在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch为1.2.2,该分支下revision可能为1.2.2.1,1.2.2.2,...
冲突(Conflct)
完全是纯文本的冲突,不包含逻辑上的矛盾。一般是一份文件,A做了改动,B在A提交之前也做了改动,这样最后谁commit就会出现冲突,需要手工解决冲突再提交。
 
CVS与eclipse集成开发
 前面对CVS的历史、功能、概论等理论知识做了介绍。下面我们将使用最流行的Java IDE Eclipse中内置的CVS工具,以一个完整开发流程,介绍实际环境中CVS的正确使用。关于CVS系统的安装,不是本文的内容,您可以从附录的链接中获取安装的介绍资料。
 
常用的CVS控制命令
Check Out(检出)
把源文件从cvs源代码仓库中取出,缺省的版本是最新的版本,你也可以选择指定的版本。在每次更改源代码之前,需要Check Out最新的版本,再起基础之上对源代码进行修改。将代码目录checkout到指定目录下,所有文件都是read-write。
Check In(检入)
把源代码加入到cvs源代码仓库中,每一个添加进代码库中的文件的版本是 1.1。以后每次修改文件重新ci以后,此文件的版本递增为1.2 ,1.3.……。在每次对源代码修改之后,需要Check In,提交最新版本的源代码。
Synchronize with Repository(与资源库同步,简称同步)
使本地更改与资源库同步,它会列出本地和资源库之间不同的所有文件。
Add to Version Control
将新的文件加入到版本控制之中。
Add to .cvsIgnore
将文件设置到版本控制之外,这样该文件或目录中的文件的更改在CVS中不可见,即使同步也无法发现。
 
CVS正确使用步骤
一、 同步(Synchronize)
就是将本地更改与服务器同步,同步之后可以清晰的看到上一捡出(Check Out)版本之后本地、服务器上的最新改动。这是非常有用的,特别是敏捷开发,强调集体拥有代码。有了同步功能,你可以全局把握项目的代码,可以很方便的跟踪公共模块代码的任何改动。
具体操作:在Eclipse的资源视图(Resource Perspective)或者Java视图(Java Perspective)中,选中要同步的目录,点击右键选择"Synchronize with Repository",之后它将显示同步的视图。
 
同步之后,它有四种Mode可以选择,见上图绿色框框里按钮。从做到右分别为:
Incoming Mode:表示修改是来自服务器,对应于更新(update)操作。
Outgoing Mode:表示修改是来自本地,对应提交(commit)操作。
Incoming/ Outgoing Mode:本地和服务器修改都在该模式(Mode)中显示。
Conflicts Mode:显示本地和服务器修改的冲突文件。
二、 更新(update)
比较简单,选择Incoming Mode,再选中要更新的文件,右键选择update操作。
三、 解决冲突并合并(solve conflct and merge)
如果有冲突文件,冲突文件不能更新。你必须先解决冲突再操作。选中冲突的文件,再点右键选择"Open in Compare Editor",用比较工具打开该文件。
 
比较器(Compare)视图,左边版本底的是本地文件(Local File),右边是远程服务器文件(Remote File)。使用"Select Next Change"按钮(绿框中的第一箭头向下按钮),逐一查看不同点。如果不同点标识为黑色框框,则不用管它。如果是蓝色框框,则需要手工调整。如上图,不同点是蓝色框框,将鼠标放到两个不同点的中间小方框中,则凸出一个向右的按钮,并显示提示信息"Copy Current Change from Right to Left",意思是将右边服务器的不同点覆盖到左边的本地文件。点中此按钮。重复这样的操作,将所有服务器上的更改拷贝到本地。
如果有一行代码,本地和服务器都同时做了修改。这时,修改点则显示红色框框。这时,你就必须手工做正确的修改。全部修改完成,保存本地文件。
此时,如果修改点没有了蓝色的框框,就可以开始做合并(merge)操作了。操作也很简单,选择该文件,点击右键,选择"Mark as merged"。
注意:必须确保没有蓝色框框,即完全拷贝了服务器的修改才可以做合并( merge )操作,否则会覆盖服务器上的代码。
四、 提交(commit)
更新服务器代码,解决冲突之后,首先要查看本地文件修改之后是否有错误。如果有,当然首先解决错误,再提交。
  
Visual SourceSafe 6.0
一、版本管理的必要性
如果说 70 年代的软件危机导致了软件工程思想的诞生和理论体系的发展,那么 80 90 年代尤其是 90 年代软件产业的迅猛发展导致了另一种新思想的产生和实现,这就是软件的版本管理。
只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。所有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他 / 她该如何有效地解决这些问题,具体地说就是如下一些问题:
1. 怎样对研发项目进行整体管理;
2. 项目开发小组的成员之间如何以一种有效的机制进行协调;
3. 如何进行对小组成员各自承担的子项目的统一管理;
4. 如何对研发小组各成员所作的修改进行统一汇总;
5. 如何保留修改的轨迹,以便撤销错误的改动;
6. 对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。
一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。以往的那种被誉为具有良好编程风格的做法,诸如在对他人的源程序进行修改时注释修改原因,修改人和日期,如果是多个成员同时进行了修改,那么需要进行及时的人工的差异比较和综合以便形成一个统一的新版本。这种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作坊的形式来面对软件的社会化大生产,再也不可能行得通了。
其实,版本管理的思想很早就存在于软件开发者的头脑之中,只是以往的认识没有现在人们所意识到的那样迫切。 UNIX 的程序开发系统较早就提供了能够进行开发小组中源代码版本管理的工具,现在的 Linux 更是提供功能强大的能够跨平台的版本管理器,国外公司的基于 Windows 的版本管理器也已经有了比较成熟的产品,国内的研究单位如北京大学计算机系 CASE 实验室也在致力于这方面的工作。在众多的成熟产品和试验产品中,这里只将对使用比较广泛,有较大用户前景且又能较易获得的版本管理器产品 Microsoft 公司的 Visual SourceSafe 6.0 进行详细的介绍,针对普通的研发小组的解决方案,及具体的实现。
 
二、 Visual SourceSafe 6.0(VSS 6.0) 简介
VSS 6.0 现在是作为 Microsoft Visual Studio 6.0 这个开发产品家族的一员,如 Visual C++ 6.0 Visual J++ 6.0 一样。
1. VSS 的简单工作原理
Microsoft VSS 6.0 解决了软件开发小组长期所面临的版本管理问题,它可能有效地帮助项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包括各种文件类型)以特有的方式存入数据库。开发组的成员不能对该数据库中的文件进行直接的修改,而是由该版本管理器将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作 Checkin 提交给 VSS ,由它进行综合更新。 VSS 也支持多个项目之间文件的快速高效的共享。当某个成员向 VSS 中添加文件时,该文件将会被备份到数据库中,以便所有的成员都能共享该文件。而且每个成员对所有的项目文件所作的修改都将被记录到数据库中,从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能。小组的成员可能得到该项目的最新版本,对它进行修改,并保存一个新的版本。
VSS 的项目组织管理使得开发小组的协调变得简单容易且很直观,当一个和一组文件发放给另一个成员,小组, Web 站点或是任何其他的地址, VSS 确保他们之间的真正共享及所选的一组文件的不同版本的安全性。现在,越来越多的开发者可以通过他们的开发环境来访问 VSS 的功能。而且 VSS 可以很容易地于 Microsoft Access Visual Basic Visual C++ Visual FoxPro 和其他的开发工具集成在一起,一旦 VSS 集成到开发环境中,就可以象控件一样使用,能够很好地体现出 VSS 的易用性和强大功能。
2.VSS 中的几个重要概念
为了更好的了解 VSS ,有必要对如下一些概念给予说明。
首先是项目的概念,所谓的项目是一组存在 VSS 中的文件(任何类型),可以在项目中或是项目之间进行文件的添加、删除、编辑和共享。一个项目与操作系统的文件夹有很多的相似之处,但它更好地支持文件合并、历史和版本控制。所有的文件存在 VSS 数据库的项目中,开发组成员不能在 VSS 中的主备份文件上工作(除了检查和版本比对等特殊情况外)而是 VSS 为每个成员在各自的工作目录下提供一个拷贝以供工作。尽管在没有工作目录的情况下也可以查看某个文件,但如要真正在 VSS 管理下工作,就必须要创建一个工作目录。
VSS 能够维护一个文件的多个版本,包括一个从不同版本之间进行修改的记录。版本控制包括如下方面:
组内协调 在一般情况下,确保在任何时刻都只有一个成员对某个特定的文件进行修改,这样可以防止文件被其他成员的修改意外更新。当然, VSS 管理员可以改变此缺省设置以允许对单个文件同时有多个 Checkout ,并且仍禁止对他人的修改进行覆盖。
版本跟踪 对老版本的源代码和其他文件进行归档和跟踪,而且这些版本能够被重新得到以便进行 bug 跟踪或其他目的。
跨平台开发 支持同一代码在跨多个开发平台时的版本控制。
重用或面向对象代码 跟踪哪些程序使用了哪些代码可被重用的模块。
版本控制的涵义在以后的章节中将会得到更进一步的论述。
我们已经知道, VSS 提供版本控制和历史服务,以保证一个文件的每个版本都是可恢复的。 VSS 用日期 / 时间戳来记录文件是何时被 Checkout 或是何时被修改的,它主要有三种方法来跟踪文件和项目的版本:
版本号:这是由 VSS 维护的内部数码,用户对它没有控制权。每个文件和项目的每个版本都有一个版本号,这些版本号总是一个整数且是递增的。
标签:这些是用户赋给某个项目或文件的某个版本的一个字符串,可以是任何格式的长度不超过 31 字符的字符串。
日期 / 时间戳:它给出了一个文件何时最后被修改的信息,或者是一个文件何时被 Checkin VSS 同时支持 12 小时和 24 小时的时间格式。
工作目录是用户真正对项目文件进行调试修改的地方,当用户 Checkout 或提取一个文件时, VSS 将该项拷贝到用户的工作目录下,当用户修改了该文件并将其 Checkin 或提交时, VSS 再将它从用户的工作目录拷回到 VSS 的数据库中。在用户作 Checkout 时, VSS 将会自动管理他的工作目录,诸如创建必要的子目录。而且工作目录可以随时创建或修改。
3. VSS 6.0 的一些新增的特征和功能
归档和恢复 VSS 6.0 中这两个操作是在一个用户界面友好的 VSS 管理员 wizard 中进行的,而在以前的版本中,它们只能通过命令行来实现。
移动文件 当用户移动文件时, VSS 6.0 自动将该文件共享到一个新的项目中,并在原项目中将其删除。在新项目中,该文件的属性是共享的。
多个项目之间的差异比较 该功能允许用户在不同的项目之间进行差异比较。
单个文件的展开 在以前的版本中, VSS 只能展开一个目录(文件夹),在 VSS 6.0 中,同时可以展开一个文件。
快速提取 由于 VSS 6.0 在性能上的提高,现在的文件提取速度比以往 VSS 版本的快两倍左右。
历史信息过滤 —VSS 6.0 支持查看那些没有标签的文件和项目的历史。
清除临时文件夹选项 该新功能可使用户很方便地清除临时文件夹。
检查外部的超连接 VSS 的较早的版本中,只有内部的超连接和项目内的跳转才得到检查, VSS 6.0 允许用户检查项目之外的超连接和跳转。
创建打开 VSS 数据库的快捷键 用户可以使用 VSS Explorer 中该新功能创建一个打开某个特定 VSS 数据库的桌面快捷键。
HTML 格式的帮助 —VSS 的以往版本使用的是 WinHelp 格式。
 
三、 VSS 6.0 的解决方案
在对 VSS 6.0 的工作原理,功能和新增特征有了一个较全面的了解后,我们开始进入到本节,即如何运用 VSS 6.0 来实际解决软件开发工程中的版本管理和控制问题,怎样有效地构架一个系统的解决方案。
首先看一下我们的开发小组所处于的实际情况,最一般的情况是整个项目使用的就是微机环境,每个开发者在各自的 Windows 微机下利用 Microsoft VC VB VJ 等等来开发项目中各个子项目或子模块,通常这个小组是局域网的一部分或者是一个较为独立的子网,可能配有专门的服务器。这样的一个开发环境对于实现用 VSS 6.0 来进行版本控制和管理是非常有利而且是比较直观的,因为 VSS 6.0 也需要这个网络环境。
其次是对于项目本身来说的,一个项目经过分析设计后一般都会分成若干个子项目由若干个开发小组各自负责编码调试,但软件开发的实际情况决定了各个小组之间并不是完全独立的,他们在很多情况下都需要协调交互和信息反馈,开发过程中的每一步都有可能会导致对前一阶段工作的修正,因为软件开发很大程度上是一个螺旋式的过程,更不用说小组之内的相互交流了。在这个不断交互改动的过程中,将可能形成的项目的阶段版本、部分版本和完整版本的数量是可想而知的,而以往的通常的版本人工管理方法已是不能胜任了。而且还有一个非常重要的方面不可忽略,这对系统软件的开发尤为明显,即软件的层次结构。一般的做法是在通用的系统软件之上为多个应用开发相应的应用程序,与此相对照的项目开发组也一般分为系统开发组和各个应用开发组,应用软件的开发和使用过程中将会反馈回无数的应用本身和系统软件的问题,如果只是针对每个应用来单独修改更新系统软件版本,这样就不可避免地导致多个系统版本的不一致,这样对于真正解决系统所存在的问题就显得力不从心了。而 VSS 6.0 正适合于这种软件的开发体系结构,可以为各个小组创建自己的项目,而这些项目又从属于一个总的项目,所有的修改都将被汇总处理以形成一个统一的最新版本。
针对这样最为普通的一个软件开发环境和组织结构,运用 VSS 6.0 进行版本控制管理的非常有效而且代价较小的解决方案是:
在一台 Windows NT 服务器或者是一台较为独立的 Windows 98/95 PC 上安装 VSS 6.0 的服务器端软件,创建一个为该整个项目存放用的数据库,然后在该数据库中创建各个项目和子项目,并由 VSS 管理员为小组的每个成员创建一个帐号及他们各自的权限;
在开发小组其他成员的 PC 上安装 VSS 的客户端软件,并创建自己的工作目录,这样在软件的开发过程中,他们只要通过该客户端软件登录到 VSS 服务器上, Checkout 当前要进行工作的项目或文件,如有修改的在工作结束时将其 Checkin 提交给 VSS 服务器进行统一更新。
解决方案如图 1 所示。
 
四、 VSS6.0 服务器的安装
在我们给出整个解决方案后,现在来看一下如何安装 VSS 服务器。 VSS 6.0 Microsoft Visual Studio 6.0 套件的成员,我们就以这个版本为例进行说明。
第一步,将 Visual Studio 6.0 CD1 放入 CD-ROM ,自动进入安装程序,选择第二项 “Server Applications and Tools(Add Only)” ,如图 2 所示;
第二步,然后在 “Server Setups” “Server Components” 中选择 “Visual Source Safe Server”, “Install” 按钮后,根据提示放入 CD2 ,如图 3 所示;
第三步,根据 Installation Wizard 的提示,继续安装过程,选择安装路径,按图 4 左上角的按钮,系统继续进行安装,直至提示你重启以使新安装的程序生效,重启计算机。
VSS 6.0 服务器的安装比较简单,它既可以安装在 Windows NT 下,也可以安装在 Windows 9x 下。
 
五、 VSS 6.0 客户端的安装
VSS 6.0 服务器安装完毕后,就可以在 VSS 管理员的指导下安装客户端的软件。由于我们是在一个 Windows 环境的子网内,每台 PC 客户机均可通过网上邻居来访问 VSS 服务器。在 VSS 管理员为用户指明 VSS 客户端软件的安装程序 “Netsetup.exe” 的位置后,用户可以直接通过资源管理器 “Explorer” 在网上邻居中找到该程序,并双击以运行它,如图 5 所示。
Netsetup.exe 被启动后进入 VSS 客户端的安装,在如下提示框中输入用户名和工作组名,如图 6 所示。
选择 VSS 的安装路径后,在图 7 中点击安装图标,进入实际安装步骤,以后的工作将由系统自动完成。
当系统提示你, VSS 已成功安装,到此所有的安装工作已经完成。
 
六、 VSS6.0 服务器的配置和管理
VSS 6.0 服务器安装完毕后,就可以针对开发项目进行 VSS 服务器的配置和管理,这些工作均需由 VSS 管理员来完成。
首先,为整个项目创建一个 VSS 数据库(在 VSS 服务器安装时,系统已经创建了一个缺省数据库 Common ),启动 Visual SourceSafe 6.0 Admin Start /Programs/Microsoft Visual Studio 6.0/Microsoft Visual SourceSafe/Visual SourceSafe 6.0 Admin ),跳出如图 8 的窗口,点击下拉菜单 Tools 中的 Create Database... 菜单项,将出现如图 9 的窗口,选择新数据库的路径,例如创建 MyApp 数据库,然后点击 OK 按钮,系统将完成创建工作。
第二步,为新创建的数据库(例如 MyApp )建立用户,首先需要打开该数据库,点击下拉菜单 Users/Open SourceSafe Database... ,然后选择数据库 MyApp ,打开它,如图 10 所示。再选择菜单项 Add User... ,输入用户名和口令,如图 11 所示。然后依次创建其他的用户。
第三步,在该新建的数据库中创建项目 Project 。启动 Microsoft Visual SourceSafe 6.0 Start/Programs/Microsoft Visual Studio 6.0/Microsoft Visual SourceSafe/Microsoft Visual SourceSafe 6.0 ),出现如图 12 的窗口,点击下拉菜单 File Open SourceSafe Database..., 跳出如图 13 的对话框,选择一个数据库(例如 MyApp ),双击它或按 Open 按钮一打开该数据库;一个项目 Project 是一组相关的文档或者是一个文件的集合, VSS 允许你以任何的层次结构来存贮和组织你的项目。在 VSS 数据库中,你可以创建一个或者多个项目。点击菜单 File 中的命令 Create Project... ,创建一个项目,例如 MyProject ,如图 14 所示;创建完项目 MyProject 后,需要向 MyProject 中添加文件,点击 File Add Files 命令,将跳出对话框,选择相应文件或目录,点击 Add 按钮,将它们添加到 MyProject 中去,如图 15 所示。
VSS 服务器的配置到此基本上已经完成了,创建了数据库和项目,并为它们建立了相应的用户,这样用户在客户端的 VC 等集成开发环境中就可以直接登录到 VSS 服务器上,进行在 VSS 控制管理下的开发工作。
 
七、在客户端的 VC 中使用 Source Code Control
VSS 服务器端的安装配置工作全部完成,并在客户端也完成了 VSS 的安装,这样就可启用 VSS 来管理控制整个开发小组的源代码和文档的版本管理。本节我们以应用比较广泛的 VC++ 6.0 为例来说明如何坐在客户端运用 VSS ,以实现所有的开发工作均处于 VSS 的有效的控制管理之下。
启动 Microsoft Visual C++ 6.0 ,在 VC 的集成开发环境中,点击 File 菜单的 Open Workspace 命令,跳出的对话框如图 16 所示,与没有安装 VSS 客户端软件的 VC 有一个明显的区别:在对话框的底部增加了一项 “Open a project from source code control source control”
点击 source control 按钮,将跳出如图 17 的登录对话框,输入你的用户名和口令,通过 Browse... 按钮选择你要登录的数据库。选择一个项目 Project ,在文本区输入它在本地的工作目录, VSS 服务器将在该工作目录下拷贝一份源代码以供用户开发调试和修改,如图 18 所示。其他的操作就如同在本地开发一样,将鼠标移至 VC 窗口的边框,按右键选上 Source Control ,就会出现 Source Control 工具条,如图 19 所示。选择 Source Control 工具条中的相应按钮,可以完成诸如获取某项目文件的最新版本,向 VSS 数据库中添加新文件,将修改后的文件 Checkin 提交给 VSS 数据库,查看某个项目文件的历史信息,进行不同版本文件及不同项目之间文件的差异比对,还有共享某个项目或文件。这样操作起来是不是很轻松呢?!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值