第一章Visual Source Safe简介

1.1 背景介绍


       如果说70年代的软件危机导致了软件工程思想的诞生和理论体系的发展,那么80~90年代尤其是90年代软件产业的迅猛发展导致了另一种新思想的产生和实现,这就是软件的版本管理。
只要参加过软件开发的人都清楚,现在的软件项目完全由一个人来完成是难以想象而且也是不可能的,通常是有一个研发小组来共同分析、设计、编码和维护,并有专门的测试小组对已完成编码调试的软件进行全面的测试。在软件开发这个庞大而复杂的过程中,需要涉及到各个方面的人员,信息的交流反馈不仅仅是在研发小组的成员之间及各个研发小组之间,还存在于客户和研发者之间。所有的这些交流反馈意见信息都有可能导致对软件的修改,小的可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。在这个工程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他/她该如何有效地解决这些问题,具体地说就是如下一些问题:
1.       怎样对研发项目进行整体管理;
2.       项目开发小组的成员之间如何以一种有效的机制进行协调;
3.       如何进行对小组成员各自承担的子项目的统一管理;
4.       如何对研发小组各成员所作的修改进行统一汇总;
5.       如何保留修改的轨迹,以便撤销错误的改动;
6.       对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。
一个非常直接的反应,我们必须要引进一种管理机制,一个版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。以往的那种被誉为具有良好编程风格的做法,诸如在对他人的源程序进行修改时注释修改原因,修改人和日期,如果是多个成员同时进行了修改,那么需要进行及时的人工的差异比较和综合以便形成一个统一的新版本。这种做法在当前的大型软件的开发中已经越来越没有空间了,可以说是一种以小作坊的形式来面对软件的社会化大生产,再也不可能行得通了。
其实,版本管理的思想很早就存在于软件开发者的头脑之中,只是以往的认识没有现在人们所意识到的那样迫切。UNIX的程序开发系统较早就提供了能够进行开发小组中源代码版本管理的工具,现在的Linux更是提供功能强大的能够跨平台的版本管理器,国外公司的基于Windows的版本管理器也已经有了比较成熟的产品,国内的研究单位如北京大学计算机系CASE实验室也在致力于这方面的工作。在众多的成熟产品和试验产品中,这里只将对使用比较广泛,有较大用户前景且又能较易获得的版本管理器产品Microsoft公司的Visual SourceSafe 6.0进行详细的介绍,针对普通的研发小组的解决方案,及具体的实现。

1.2 VSS简介


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 Client

2.1 安装简介


       为了使用VSS的强大功能,我们必须在为一位工作人员的用机安装VSS Client(即Visual SourceSafe的客户端)。
       目前,VSS服务器已经配置完毕,安装机器的机器名“PLAServer”,大家可以在局域网内通过“网上邻居”查找到该台计算机。或者直接在地址栏中输入“//PlaServer”,会跳出一个对话框询问用户名及密码,我们设置的共享用户名及密码均为“vss”,大家可以输入后按回车,则就可以浏览到在服务器上有一个名为“VSS”的文件夹,请双击进入。


请双击该程序,即可运行安装。程序名为 ”netsetup.exe”

图1 浏览服务器VSS文件夹
       进入后,将显示VSS文件夹内的所有内容,我们可以按照图1指示的步骤,对里面的“netsetup.exe”进行双击,则可以进行程序的安装。
       安装过程与一般Windows程序没有分别,我们在这儿就不加详述了。唯一需要注意的是在输入序列号时,请输入本软件的序列号为“111-11111111”。

2.2 配置VSS.NET


       下面,我们在开始菜单的程序组中找到刚才安装的程序,其位置在“Microsoft Visual SourceSafeàMicrosoft Visual SourceSafe 6.0”,我们对其进行单击,则弹出一个对话框,如图2所示:

图2 VSS Client登录框
       共有三个选项,我们在这儿进行逐一的解释:
Ø         Username:即VSS用户的用户名,我们在服务器端已经为所有的成员分配了用户名,用户名为本人的汉字,如成员王洪超的用户名为“王洪超”,直接输入即可。
Ø         Password:即VSS用户的对应密码,在第一次登录的时候,我们分配的初始密码为空值,大家可以不必输入,在登入之后,我们可以自行更改密码(参加以下章节的描述)。
Ø         DataBase:即VSS服务器的数据库目标地址,我们可以按照图2中直接输入“\\Plaserver\vss”,也可以按“Browser…”键自行选择,按“Brwoser…”按钮后会出现以下对话框:


点击可以增加新的数据库

可用的VSS数据库列表

图3 Open SourceSafe DataBase如图3所示,在对话框中,首先列出的是所有可用的数据库名称及实际物理地址。我们可以选择其中一个然后按“Open”按钮,即可选定一个数据库。如果想增加更多的数据库的话,可以按这个对话框中的“Browser…”。进行进一步的选择,我们在这儿不加以详述了。

第三章 VSS用法简介

3.1 界面简介



菜单栏
       下图(图4)即为VSS的用户界面,我们可以先对其熟悉一下。

文件区

项目目录区

工具栏

图4  VSS基本界面
菜单栏及工具栏,我们将在以后加以详细描述,下面介绍一下项目目录区及文件区:
Ø         项目目录区:显示所有正在使用的目录,我们可以自己在本人的目录区下创建目录,也可以删除或者修改目录(在权限定义时,我们禁止所有用户删除目录)。
Ø         文件显示区:在选定目录之后,文件显示区将显示该目录中所有的文件,并且可以查看到该文件的一些信息,比如目录正在由谁来进行编辑等等。

3.2 更改用户密码


       在我们初始化定义时,我们给所有用户赋予的初始密码均是空白密码,所以为了保证代码的完整性及安全性,所有用户在登录后均需要更改密码。
       更改密码请在菜单栏的“Tools”à”Change Password…”,在新弹出的对话框中分别输入旧密码(即空白密码),然后再重复输入两次新密码即可使新密码生效。

3.3 创建目录


请看图5,是一个简单的目录区

图5 目录区基本功能
目前,我们在权限设置当中,仅允许用户在本人的目录下面(即在“/$/紫晶平台2.0版/个人备份/[username]”([username]即本人用户名)目录及下属目录中允许创建新的目录,在其它目录区不允许用户自由创建。
示例:比如用户王洪超登录后,可以在目录区“王洪超”目录条上面单击右键,弹出功能菜单,我们可以选择“Create Project”,即可以创建一个新的目录区。

图6 创建新目录
在如图6中的对话框中,我们输入该目录的名称,然后在comment对该目录写一段简单的注释(VSS允许不加注释,但我们建议大家都加一段简单的注释,说明该目录的简单功用)。单击“OK”按钮即可以创建新的目录。

3.4 指定工作目录


       在如图5所示的右键功能栏中,我们可以看到第二项是“Set working Folder…”,即指定工作目录,它的具体意思是指在本机上给该目录创建一个镜像目录,那么在我们以后将该目录中的文件检出(Check out)时,该文件即可以在指定的本地工作目录中找到。

3.5 添加文件



图7 工具栏
       与微软其它软件一样,每一项功能我们都可以通过多种途径加以实现,那么在VSS当中也是一样的,比如我们在3.3节中所说的创建目录功能,与工具栏当中第一个按钮的功能是一样的。我们在以后就不加以说明,请大家在使用当中自己进行体会。
       我们现在来说明一下第二个按钮,即“Add Files…”,这在初始化文件目录时特别有用。
       我们首先应该先在目录区当中选定一个目录,即选定一个准备添加文件的目标目录(选择方法即是用鼠标在其上面单击)。然后再按 这个按钮,则弹出一个新的对话框。

图8 添加文件对话框
       这个对话框我们可以看到,是比较原始的文件对话框。我们可以用鼠标选择所属的单个文件然后按“ADD”按钮将其加入到我们选定的目录当中去。也可以在用鼠标选择的时候按下Shite键进行连选(即一次连续选择多个文件),或者按Ctrl键进行复选(即一次间隔选择多个文件)。
       
图9 添加文件
       在按“Add”按钮后,将弹出如图9的对话框,我们可以输入一小段的注释文字,对这些文件加以说明,在下面,我们可以看到一个复选钮(Apply same comment for all files),我们一般可以勾上,这样就可以对每一个文件使用同一注释,如果你不勾选此复选钮,那么将视你选择的文件,将分别再次弹出该对话框,让你输入针对特定文件的注释。
       下面的三个复选钮必须在按“Addvanced>>”按钮后方可显现。大家可以根据需要分别进行选择。
       有时候我们会碰到这样一个情况,在我们的项目文件当中,不仅包含单独的文件,并且也包含很多子目录,那么我们如何操作呢?
      其实操作方法非常简单,我们只需要如下图所示,在Windows中浏览到该文件夹,并且选择好要加入的文件及子目录,然后用鼠标将其拖到VSS的文件显示区即可。
       
图10 批量添加文件

3.6 Check in与Check Out


在VSS当中Check in(签入)与Check out(签出)是一个非常重要的概念,在你将你的文件签入时,你本地目录中的文件会被设置为只读属性,在此种状态下,你无法对该文件进行修改。
我们在需要修改该文件的时候,就需要使用Check Out命令,将选定的文件签出,此时,你的文件将能够自由修改,而在VSS当中,该文件将显示正在被谁编辑,并且其它用户不能再对该文件进行操作,保证了文件的统一性及安全性。
Check out 按钮不仅可以对文件进行签出动作,亦可以对整个目录进行签出动作,我们可以根据需要进行相应的处理。
Check in 按钮,与Check Out一样,既可以进行文件操作,亦可以对目录进行操作。
另外,我们还有一个按钮是Undo Check Out ,如果我们在上一次Check Out之后,进行了某些修改,但突然改觉到这种修改是不必要的,并且我们已经无法在编辑器中使用“撤销”命令恢复到原始状态,可以使用这个Undo Check out按钮,再一次得到原来的版本文件。
另外,还有一个Get Last Version,我们可以在选定的文件当中,用右键功能菜单看到,它的作用类似于将文件从VSS当中直接拷贝一份备份文件到一个指定的目录。

3.7 版本管理功能


       我们可以在工具栏当中看到Show Differences 按钮与Show History 按钮,它们也是很重要的版本控制功能。我们也可以在一个指定文件的右键功能菜单当中找到对应的菜单项。
       Show Differences可以查到本地文件与存在VSS数据库当中的文件(最后一个版本)的异同点,如果我们没有一直严格按照Check In与Check Out这种模式工作的话,如果发现有不同的地方,请马上使用Get Last Version将历史版本重新从服务器数据库中得到最新的版本。
       而Show History可以对该文件的历次修改给出一个对应表,如下图所示:

图11 版本历史对话框
       我们可以看到文件abc.txt在VSS数据库中共有三个版本,第一个版本是加入的时候得到的。
       第二个版本以及第三个版本是经过修改后存储的新版本,其中版本3是最新的版本。
       如果我们需要最原始的版本,我们可以先选中版本1,然后单击按钮“Get”即可以获得原始的版本,如果我们需要获得版本2,操作方法同上。
       同时,我们也可以使用“Rollback”按钮将版本进行回滚。这样的话,我们可以很方便的对版本进行管理。

posted on 2006-08-03 12:19  WilliamsQi  阅读(804)  评论(0编辑  收藏  举报



CoolCha 库查搜索
查手机号码归属地
查IP地址、火车车次、邮编、在线翻译... 淘星助手