VSS 2005

 
src="http://morningspace.51.net/head.html" name="navigator" border="0" height="60" width="100%" scrolling="no" frameborder="0">
 名称Visual SourceSafe简明培训教程
(Visual SourceSafe Training Short Course)
 作者晨光(Morning)
 简介对于采用Visual SourceSafe 6.0作为版本控制工具的项目及产品开发,本教程针对不同用户角色,提供有关该软件的若干使用指导。
 声明本教程版权为晨光(Morning)所有,未经允许,请勿复制、传播,谢谢。

 目录

1 说明

2 概述

3 管理员部分 4 普通用户部分 附录

1 说明

一、本教程针对不同使用对象提供Visual SourceSafe 6.0的若干使用指导,阅读对象包括Visual SourceSafe的管理员和普通用户,以及希望了解如何采用Visual SourceSafe进行软件版本控制的管理人员。管理员或普通用户在使用Visual SourceSafe的过程中,如果遇到不知如何操作,或者对某些操作的注意事项不甚了解等类似情况时,可以查阅本教程。

二、本教程的"管理员部分"是管理员必读的,如果管理员在除履行其自身职责之外,还兼任普通用户的角色,则可以参阅教程中的"普通用户部分"。作为一般的普通用户,只需阅读"普通用户部分"即可。

三、教程中列举的操作,加星号者,为高级用法(Advanced Usage),其余为基本用法(Basic Usage)。所谓基本用法是指一些通常使用频繁的,或者是使用方法较为简单的操作。所谓高级用法是指通常使用频率不多,或者较为重要的,或者用法复杂的操作。

四、本教程内容摘选并改编自Visual SourceSafe 6.0英文版联机帮助,从中提取了诸多重要信息、容易忽略的内容以及若干注意事项。一些基本内容(主要指某些基本操作的使用方法)只简单列举了条目,欲了解这些条目的详细情况请查看联机帮助的相关部分,可以通过列于这些条目之后的英文说明在联机帮助中搜索到相关内容。

五、本教程不涉及Visual SourceSafe图形用户界面操作的解释说明,对指定功能的具体操作步骤请查看联机帮助的相关部分。可以通过列于该功能之后的英文说明在联机帮助中搜索到相关内容。

六、在其他Visual Studio产品中(例如:Visual C++)可以集成Visual SourceSafe的功能,本教程不涉及有关在其他集成开发环境下如何使用Visual SourceSafe功能的内容,这部分内容主要针对普通用户。对这些内容的了解,在阅读完本教程之后,将会变得容易。此外,某些操作在Visual SourceSafe环境下使用更为方便。

2 概述

  Visual SourceSafe(以下简称VSS)是一种版本控制管理工具。它通过将各种类型的文件(包括:文本文件、图像文件、二进制文件、声音文件、视频文件等)存入其内部数据库的方式,帮助你有效地管理工程(Project,关于VSS中工程的概念请见下面)。它允许你在多个工程间共享同一组文件;你可以将一个文件添加到数据库中,以便其他相关人员使用;任何对文件的更改将被记录下来,以便在任何时候可以恢复到该文件的某个旧版本。

  VSS的工程组织方式使团队协作开发变得更为容易和直观。一个工程是一组存放于VSS数据库内的任意类型的文件,一个工程类似于操作系统中的目录,但VSS为其提供了版本控制、历史记录、文件合并等更多的功能支持。

3 管理员部分

3.1 维护用户列表(Maintain the User List)

3.1.1 添加用户(Add a User)

  此处略,详细内容请查阅联机帮助。

3.1.2 更改密码(Change Passwords)

  此处略,详细内容请查阅联机帮助。

3.1.3 创建用户列表(Create a User List)

  此处略,详细内容请查阅联机帮助。

3.1.4 删除用户(Delete a User)

  此处略,详细内容请查阅联机帮助。

3.1.5 编辑用户属性(Edit User Attributes)

  此处略,详细内容请查阅联机帮助。

3.2 管理数据库(Manage the Database)

3.2.1 分析数据目录(Analyze the Data Folder)*

  建议你定期备份完整的VSS数据目录(参见数据库打包)。VSS数据目录中包含有全部工程和文件的数据库信息。由于网络或操作系统的某些故障,VSS中的文件可能存在错误和不一致问题,Analyze VSS DB工具被用来查找和修复这些问题。在运行该工具前,需要锁定(Lock)所有用户并要求他们退出VSS,用户可以在一个数据库被锁定时保持文件的签出状态(参见锁定数据库)。建议分两次运行Analyze VSS DB工具,第一次修复错误,第二次核查是否仍然存在没有被修复的错误。数据目录的具体位置是由Data_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。

3.2.2 数据库打包(Archive Databases)*

  你可能需要定期地备份VSS数据库,或者数据库的某一部分。VSS Administrator工具提供了此项功能。它可以:

  • 节省VSS数据库服务器的磁盘空间。
  • 加快显示历史记录操作(Show History)的速度。
  • 便于在多个VSS数据库间传递文件和工程,保持历史记录完整无缺。
  • 备份全部或部分VSS数据库内容并压缩成文件。

3.2.3 清除临时目录(Clean Temporary Folder)

  VSS通常在运行时把临时结果放在临时目录里,并在退出前将之删除。由于某些原因,例如非正常重启,可能导致临时内容残留在目录中。作为管理员,你有责任定期清除临时目录的内容。每隔几周一次,当没有任何用户运行VSS或VSS Administrator时,请清除临时目录的内容。临时目录的具体位置是由Temp_Path初始化变量在SRCSAFE.INI文件中指定的(参见定制SS.INI和SRCSAFE.INI文件)。

3.2.4 锁定数据库(Lock a Database)

  数据库锁定功能将不会自动锁定那些当前已经登录的用户,你应该在锁定数据库之前要求登录用户退出VSS。在重新允许用户使用VSS之前,需要解除对数据库的锁定。

3.2.5 数据库恢复(Restore Databases)

  此处略,详细内容请查阅联机帮助。

3.2.6 使用多个数据库(Work with Multiple Databases)*

  缺省时,VSS将所有文件集中放在一个数据库中。如果可能,应尽量使用一个数据库存放所有文件,这比分多个数据库存放要好,因为:

3.3 有关权限的话题(About Rights)

3.3.1 权限的传递(Rights Propagation)

  当你添加了一个新用户,并为该用户设置了针对某个工程的权限时,将在VSS数据库中建立起一个assignment。该assignment将会沿着工程树向下传递直至遇到另一个assignment。

  例如:针对工程"$/" ,你为用户A指定了Add权限(参见安全访问权限),而对于工程"$/Sample",你没有为用户显式指定权限,则该用户将对工程"$/Sample"自动拥有Add权限。当你在工程"$/Sample/BusinessObject"处为其指定了Read权限后,将阻止早先assignment的向下传递过程,所以用户A对该工程(指"$/Sample/BusinessObject")及其子工程都只具有Read权限了。

  当你首次添加一个用户时,该用户在工程"$/"处被赋予的权限由"缺省权限"决定,缺省权限是通过在VSS Administrator里设置Project Security属性页的内容来定义的。你可以通过修改该页内容,全局性地变更所有用户的缺省权限。

3.3.2 安全访问权限(Security Access Rights)

3.3.2.1 缺省安全设置

  当安装VSS后,缺省安全设置将被启用。你可以利用定制的方式,使某些用户拥有对某些工程和某些VSS命令的特定权限。

  缺省安全设置很简单,当添加新用户时,你只有两种级别的访问权限可供选择:

  • 只读权限(Read-only rights):用户可以查看VSS中的任何内容,但不能更改。
  • 可读写权限(Read/write rights):用户可以查看和修改VSS中的任何内容。

  如果这样的访问权限级别足以应对日常使用,那么就无需再增强安全控制的级别了。

  所有的VSS安全管理都在VSS Administrator中进行。任何能运行该程序的用户都可以改变VSS的任意特性,所以最好只有管理员才使用该程序。

3.3.2.2 更高级别的安全控制

  在VSS中,对工程的安全性控制,是通过制定用户访问权限来实现的。每个工程仅能被那些具有相应权限的用户访问到,每个命令仅能被那些具有相应权限的用户使用。可以通过VSS Administrator来定制权限,以达到更高级别的安全控制。

  以下是VSS的权限级别列表,下列每种权限都拥有该权限之前的全部权限。例如:拥有Check Out权限的用户,也将同时拥有Read权限。(参见附录A2:VSS中部分命令的对应权限级别

权限描述
Read (R)类似于缺省安全设置中的只读权限
Check Out (C)可以使用Check Out/Check In/Undo Check Out等命令对文件进行修改
Add (A)可以使用Add/Delete/Label/Rename等命令对文件进行修改
Destroy(D)可以使用Destroy/Purge/Rollback等命令对文件实施永久性删除操作

4 普通用户部分

4.1 对工程、文件的一般性使用(Normal Use about Projects and Files)

4.1.1 打开/关闭数据库(Open/Close a Database)

  此处略,详细内容请查阅联机帮助。

4.1.2 创建新工程(Create New Projects)

  此处略,详细内容请查阅联机帮助。

4.1.3 添加文件、目录、工程(Add Files,Folders,and Projects)

  此处略,详细内容请查阅联机帮助。

4.1.4 删除和恢复文件、工程(Delete and Recover Files and Projects)

  VSS提供了3种删除文件的方法:

  对于共享文件,Delete和Destroy仅将文件从当前所选工程中删除掉,其他共享了该文件的工程,以及VSS数据库中,仍留有此文件。

4.1.5 移动文件和工程(Move Files and Projects)

  移动一个文件的唯一方法是,在文件新所在位置的上一级工程(parent project)处使该文件共享(参见对文件和工程的Branch/Share操作),然后将原有工程(original project)下的该文件Delete或者Destroy(参见删除和恢复文件、工程)。移动后,文件的历史记录将被保留。

  通过使用Move命令,你可以将一个子工程(subproject)从某个上级工程重置到另一个工程下。该操作不会改变子工程的内容和历史记录,但它会影响上级工程的历史记录(包括子工程所在的原有上级工程和新的上级工程)。当移动一个工程后,你将无法重建原有上级工程的某个旧版本。

4.1.6 重命名文件、工程(Rename Files or Projects)

  若某个文件被多个工程所共享,对该文件的重命名将影响所有工程,而在Branch状态下,则不影响(参见对文件和工程的Branch/Share操作)。

4.1.7 设置工作目录(Set Working Folders)

  此处略,详细内容请查阅联机帮助。

4.2 签入、签出、获取、查看及相关操作(Check In/Out、Get、View and Other Related Use)

4.2.1 签入签出操作(Check In and Check Out Files)

  此处略,详细内容请查阅联机帮助。

4.2.2 撤销签出(Undo Check Out)

  执行该操作时,若用户选择了替换本地文件,则用户将丢失最近一次签出后对该文件在本地的更改。

4.2.3 获取最近版本(Get Latest Version)

  此处略,详细内容请查阅联机帮助。

4.2.4 获取早期版本(Get Earlier Version)

  此处略,详细内容请查阅联机帮助。

4.2.5 获取和查看文件、工程(Get and View Files and Projects)

  Get操作将文件或工程拷贝至本地的工作目录,并设置为read-only属性。可以用View操作查看文件内容,此时用户无需设置工作目录。

  尽量不要删除vssver.scc文件。本地工作目录及每个子目录下都包含一个这样的文件,VSS利用其中记录的信息确定本地目录中哪个文件已经更改了。删除后,将使新一次的Get操作速度减慢。

4.2.6 回滚到以前版本(Rollback to Previous Versions)

  该操作将使文件的内容恢复到先前某个版本时的状态,它将使所有在该版本后所做的改动丢失。如果你所回滚的文件被多个工程共享,则操作只影响你所指定的那个工程,并且它会自动实行Branch操作(参见对文件和工程的Branch/Share操作)。建议你使用虚拟回滚(Virtual Rollback),它将不会使随后的改动永久丢失。具体操作如下:

  • 选择你要回滚的文件并签出
  • 使用Get命令获取某个原有版本到本地
  • 签入该文件

4.2.7 多人同时签出一个文件(Check Out Multiple Files)*

  缺省状态下,一个文件只允许一个人签出,管理员可以通过修改配置,允许多人同时签出。此时,VSS将跟踪所有签出该文件的用户。每当用户签入时,VSS都将和当前存于数据库内的最新版本进行比较,若用户修改的是同一文件的不同处,VSS将进行简单的合并(Merge),否则提示用户,并且不允许签入。用户可以通过VSS提供的Visual Merge工具,比较存放于VSS数据库中的文件和本地文件的异同,手工修改本地文件,直到认为已经可以签入时,方才执行最终签入操作。(参见合并

4.2.8 合并(Merge)*

  在VSS中,合并可能发生在3种场合下:使用Multiple Checkout的工作方式;合并原先已经Branch了的文件;获取(Get)文件。

  在完成一个合并之后,VSS遵循如下规则:

  • 如果仍有冲突,VSS维持文件的签出状态,为了使文件能顺利签入,你必须排除这些冲突。
  • 如果你使用Merge Branches命令,将一个文件合并到一个工程中,而该工程中的对应文件已被签出,该文件将继续保持签出状态(参见对文件和工程的Branch/Share操作)。
  • 在任何其他时候,VSS将会提示你,或者在合并后自动签入,或者保持文件的签出状态以使你在更新VSS数据库中内容之前再核查一边。

  缺省情况下,当发生冲突时,VSS将启用其Visual Merge工具。

4.2.9 排他性签出(Exclusive Check Out)*

  允许多人同时签出一个文件是针对整个VSS数据库而言的,但用户仍可以根据实际情况,针对某些文件修改该规则。对某个文件实施排他性签出,则其他用户将无法签出该文件,直至该用户使用了签入操作。

4.2.10 对工程的Cloak操作(Cloak Projects)*

  若对某工程实行了Cloak操作,则当对该工程的上一级工程进行Get/Check In/Check Out/Undo Check Out/Project Difference操作时,将不会影响该工程及其子工程。而在该工程上进行类似操作时,则和平常得到的结果一样。这一属性将传递给其下的子工程。

  例如:某个工程其路径为$/Application,下面有三个子工程:$/Application/Code,$/Application/Test,$/Application/Docs,而Docs工程下的内容可能对你没有任何用处。当你每次从$/Application处进行Get操作后,都需要从本地删除多余的Docs目录。此时可以对Docs进行Cloak操作。这样,每次的Get操作将只把Code和Test下的内容放到本地。如果你需要获取Docs工程下的内容,则可以单独从Docs处进行Get操作。

4.3 Branch、Share、Label和Pin操作(Branch、Share、Label and Pin)

4.3.1 对文件和工程的Branch/Share操作(Branch and Share Files and Projects)*

  在VSS中,通过Share操作,一个文件可以被多个工程共享,在任何一个工程中对该文件的更改,都将反映到其他相关工程里。

  Branch操作则消除这种共享,每次将一个被共享的文件拆成两个分支,在不同工程中分别跟踪该文件。通过查看文件属性的Links属性页可以了解该文件被哪些工程共享,通过查看Paths属性页可以了解文件的分支状况。

  例如:产品目前的正式版本为2.0(工程路径为$/Application),在加入新功能后将升级为3.0。但在开始升级的过程中,其间的一个过渡版本2.1存在bug,需要修改。此时可以进行如下操作:选择被Label标识为2.0的那个版本(参见给文件、工程指定标签),利用Share功能创建过渡版本(工程路径为$/Application2.1),此时两个工程中的文件是共享的,且$/Application2.1中的所有文件都处于Pin状态(参见 Pin操作),即:在向3.0升级的过程中,对$/Application中相关文件的更改,将不影响$/Application2.1下的内容,但此时文件仍是共享的。仅对需要修改bug的文件采取Branch操作。这样做的好处是,中间版本的bug修改工作和3.0的升级工作可以同时进行,并且最大限度的降低了所需的存储空间。

4.3.2 给文件、工程指定标签(Label Files and Projects)*

  VSS使用3种方式跟踪文件的历史记录:内部版本号,日期,用户自定义标签。

  标签可以是一个不超过31个字符长度的串,例如:"1.0"、"2.01b"、"Final Beta"、"Approved for QA"。应用Label功能,用户就可以获取某个特定时期的软件内容了。所有当前工程下的文件和子工程都将继承该标签。

  注意下面几点:

  • 当使用Label功能时,表明你在所选工程的历史记录里创建了一个新的版本,但文件和工程本身的内容并未发生变化。
  • 对某个工程的某个标签再次使用Label操作将覆盖原来的标签内容。

  请参见附录A1:同时维护一个工程的多个版本

4.3.3 Pin操作(Pin)*

  该功能对共享文件很有用,尽管它的使用不仅限于共享文件,也包括其他任何文件。当你对一个文件实施Pin操作后,你将不能对之做任何修改。如果一个文件在Pin之后又被实施了Share操作,而被Pin的那个版本同时也是被共享的版本,则所有共享该文件的工程都不能更改该文件。如果一个文件先被实施了Share操作,而后在某个工程中被Pin了,则除了这个工程外的其余工程仍可以更改该文件(参见对文件和工程的Branch/Share操作)。

4.4 其他操作(Other Use)

4.4.1 扩展关键字(Expand Keywords)*

  VSS可以将某些指定信息(例如:VSS内部版本号)直接插入文本文件中。用户只要将某些关键字放入文件的注释中,每次添加(Add)或签入(Check In)文件时,VSS都会自动查找这些关键字,并将相关信息置于其后。

  VSS中常用的关键字:

关键字描述
$Archive: $文件在VSS中的路径名
$Author: $最近一次更改文件的用户
$Date: $最近一次签入的时间
$History: $文件的历史记录
$Revision: $VSS内部版本号
$NoKeywords: $使VSS对其后的所有关键字不进行扩展

  例如:

  在某文件中加入如下一行:

  $Revision: $

  若当前该文件在VSS内部的版本号是22,则签入后VSS会将之修改为:

  $Revision: 23 $

4.4.2 使用Shadow目录(Work with Shadow Folders)*

  Shadow目录位于服务器端,包含了工程中所有的文件。这些文件既非位于VSS数据库中的master copy,亦非位于本地工作目录的local copy,而是最近一次签入的所有内容。Shadow目录应该由管理员来设置。

  是否使用Shadow目录功能是可选的,通常在如下两种情况下可以考虑使用该功能:

  • 为使某些用户能查看文件(但不能更改),这些用户可能没有对VSS的访问权限。
  • 不让你的本地工作目录保留可编译的软件副本。为使每个用户都能得到一个最新版本的软件,所有用户可能希望在某个目录下集中进行编译,而非在各自的工作目录下编译。在这种情况下,Shadow目录功能通常和添加(Add)、签入(Check In)之后的Remove Local Copy结合使用。

  Shadow目录不会跟踪子工程的变化,例如:你有一个被Shadow的工程$/A,包含两个子工程:$/A/1和$/A/2,而你又将$/A/2重命名为$/A/B,这种变化将不会被反映到Shadow目录中。你可以手工修改,或者利用Reconcile All功能,使之保持同步。

4.4.3 性能优化(Optimize Performance)*

  有两种方法可以改善VSS的性能:尽可能多的将内容通过网络拷贝至本地来做;修改初始化文件对VSS的性能进行微调。

  具体优化措施:

4.4.4 查找文件(Search for Files)

  VSS Explore的list view缺省时只显示当前工程中的所有文件。通过使用Search命令,可以只显示符合指定要求的文件。例如:只显示.h文件,只现实被签出的文件。Search命令是允许递归的。

4.4.5 设置密码(Set Passwords)

  如果VSS管理员指定域账号为VSS登录账号,则用户登录VSS时将不会提示输入密码。

4.4.6 编写批处理文件(Writing Batch Files)*

  在编写批处理文件时,一些在命令行方式下使用的交互手段需要改变。

  • 屏蔽输入(Disable Input)

    如果你的批处理文件中包含了一系列VSS命令(它们可能需要整夜运行),你一定不希望程序执行期间会停下来提示用户输入信息。有3个命令行选项可以解决此类问题。

    缺省时,VSS在执行诸如添加(Add)、签入(Check In)等操作时会提示你输入注释(Comment),利用-c选项可以避免该类提示:

    命令描述
    -c-不添加注释
    "-cHello"使用Hello字串作为注释
    -c@COMMENT.TXT使用comment.txt文件的内容作为注释

    此外,VSS通常会要求用户回答yes或no,你可以使用-i选项避免此类问题:

    命令描述
    -i-y对所有此类提问自动回答Yes
    -i-n对所有此类提问自动回答No
    -i使用缺省回答

    VSS也可能会提示登录名,你可以使用-y选项提供足够多的信息。

  • 重定向输出

    缺省时,VSS将所有输出定向到屏幕,在命令行状态下你可以使用-o选项分页输出,而在批处理文件中你同样可以利用-o屏蔽输出或重定向输出。

    命令描述
    -o-屏蔽输出
    -oRESULTS.TXT重定向所有输出到文本文件results.txt中,如果该文件已存在,输出内容将追加到该文件末尾。

  • 使用命令行返回值

    在命令行状态下运行VSS时,VSS会设置一些返回值来标明运行状态。你可以在批处理文件中根据VSS的返回值采取相应措施。

    返回值描述
    100表明出错,例如:VSS无法找到数据库文件,或者你试图签出某个早已被签出的文件。
    1表明一个不是很严重的错误,将在如下三种情况下发生:
    当你使用ss Dir时,没有找到任何条目。
    当你使用ss Status时,至少有一项被签出。
    当你使用ss Diff时,至少有一个文件不一致。
    所有这些情况表明,即使本次操作是成功的,你执行的下一个VSS命令也可能操作失败。
    0VSS成功执行。

4.4.7 定制SS.INI和SRCSAFE.INI文件(Customize the SS.INI and SRCSAFE.INI Files)

  VSS有两类初始化文件,它们包含了VSS的一些环境变量:SS.INI,每个用户都有一个这样的文件;SRCSAFE.INI,仅有一个,定义了VSS的一些全局变量,只有管理员才有权修改它。

附录

A1 同时维护一个工程的多个版本(Maintain Multiple Versions of a Project)

  你可以使用Share/Pin/Branch的方式,也可以使用Label方式。如果你所处的环境只要求少量的改动,比如:轻量级的patch,使用Label比较合适;如果你正在规划大量的开发内容,使用Share/Pin/Branch比较合适。例如:在软件处于Beta版时,你可以通过Label功能冻结(freeze)之,并同时修改Beta版的bug。当你正同时维护着某个产品的1.1版和2.0版时,合理的做法是,为每个版本创建一个新的工程,Share并Pin所有的文件,在需要的时候Branch。当1.1发布时,你可以将1.1版的工程Label,而后将对1.1版的改动重新Merge到2.0版中。下面的几个场景为你使用Label功能提供指导:

场景1:理想情况

1、对即将到达Beta 1版的工程进行开发和测试。
2、当你认为时机适宜时,将之Label为"Beta 1"。
3、开始Beta 2版的工作。

场景2:文件A的某个版本被错误地包含在Beta 1版中

1、对即将到达Beta 1版的工程进行开发和测试。
2、当你认为时机适宜时,将之Label为"Beta 1"。
3、开始Beta 2版的工作。
4、如果发现文件A某一时期的版本被错误的包含在了Beta 1版中,选择该文件的正确版本并Label为"Beta 1"。
5、获取(Get)Beta 1版的工程。

场景3:需将bug-fix后的文件A被包含在Beta 1版中,而其余文件未曾改动

1、对即将到达Beta 1版的工程进行开发和测试。
2、当你认为时机适宜时,将之Label为"Beta 1"。
3、开始Beta 2版的工作。
4、你发现,包含在Beta 1版中文件A的那个版本存在bug,必须改正,而工程中的其余文件则不须改动。
5、签出该文件,改正,然后签入。
6、将工程重新Lable为"Beta 1"(你将被询问是否确认删除原有标记)。

场景4:需将bug-fix后的文件A包含在Beta 1版中,而其余文件也作了改动

1、对即将到达Beta 1版的工程进行开发和测试。
2、当你认为时机适宜时,将之Label为"Beta 1"。
3、开始Beta 2版的工作。
4、你发现,包含在Beta 1版中文件A的那个版本存在bug,必须改正,而工程中的其余文件已经改动过且已经被签入。
5、签出该文件,改正,然后签入(此时该文件的VSS内部版本号将自动加1)。
6、将该文件Label为"Beta 1"(和工程的Label同名),这将使该文件的现有版本被指定为"Beta 1"。

场景5:文件A的一个原有版本需要进行bug-fix,并加入Beta 1版中

1、对即将到达Beta 1版的工程进行开发和测试。
2、当你认为时机适宜时,将之Label为"Beta 1"。
3、开始Beta 2版的工作。
4、你发现,包含在Beta 1版中文件A的那个版本存在bug,必须改正。例如:文件的当前内部版本号是6,且包含了为达到Beta 2版所做的某些改动,而你不希望将这些改动并入Beta 1版中。
5、签出文件A(Version 6)
6、获取Version 4,覆盖Version 6的本地版本。
7、修改该文件Beta 1版中的bug,然后签入。这将使文件A的内部版本号升至7(Version 4的内容加上bug-fix后的内容,但没有包含Version 5和Version 6的内容)
8、将Version 7 Label为"Beta 1"。这将使文件A的Version 7版被指定为"Beta 1"。现在,如果你尝试获取Beta 1版的工程时,你将会得到包含bug-fix后的文件A(被单独Label)连同原来Label为"Beta 1"的工程中的其余文件。
9、为了继续Beta 2版的工作,需要恢复在Version 5和Version 6上的改动,再次签出文件A(Version 7)
10、获取Version 6。
11、覆盖Version 7的本地版本,或合并之(这将使本地版本变成Version 6的内容加上你在Version 7中为"Beta 1"所做的bug-fix)。
12、继续修改文件A的本地版本直到你满意,然后签入。这将产生文件A的Version 8,现在你将可以继续Beta 2版的工作了。

A2 VSS中部分命令的对应权限级别

  下表中打星号表示具有该类权限的用户可以使用该命令。

功能RCAD
Add  **
Branch  **
Check In ***
Check Out ***
Cloak****
Create [1]  **
Delete  **
Destroy   *
Difference****
Get Latest Version****
History****
Label  **
Links****
Merge [2] ***
Merge****
Move [3]  **
Move   *
Pin ***
Purge   *
Recover  **
Rename  **
Rollback   *
Share [4] ***
Share  **
Undo Check Out ***
Set Working Folder****

[1] 此处指用户必须有对Parent Project的A类权限。
[2] 此处指用户必须有对目的Project的C类权限,同时有对原Project的R类权限。
[3] 此处指用户必须有对目的Parent Project的A类权限,同时有对原Parent Project的D类权限。
[4] 此处指用户必须有对原Project的C类权限,同时有对目的Project的A类权限。

src="http://morningspace.51.net/footer.html" name="navigator" border="0" height="80" width="100%" scrolling="no" frameborder="0">
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试的相关文档,测试代码、自动化测试程序代码均需要作为配置项,纳入到配置管理库中。vss是一个简单实用的工具,希望大家测试工作中,合理的使用vss. 1 VSS概述 版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。 Visual SourceSafe 是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图象文件、二进制文件、声音文件、视屏文件)存入数据库进行项目研发管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,它的每次改动都会被记录下来,用户可以恢复文件的早期版本,项目组的其他成员也可以看到有关文档的最新版本,并对它们进行修改,VSS也同样会将新的改动记录下来。你还会发现,用VSS来组织管理项目,使得项目组间的沟通与合作更简易而且直观。 VSS可以同 Visual Basic、Visual C++、Visual J++、Visual InterDev、Visual FoxPro 开发环境以及 Microsoft Office 应用程序集成在一起,提供了方便易用、面向项目的版本控制功能。Visual SourceSafe 可以处理由各种开发语言、创作工具或应用程序所创建的任何文件类型。在提倡文件再使用的今天,用户可以同时在文件和项目级进行工作。Visual SourceSafe 面向项目的特性能更有效地管理工作组应用程序开发工作中的日常任务。 1.1 VSS中的文件 当你要修改某个文档时,需要先从数据库中将它签出(check out),或者告诉VSS你要编辑该文档。VSS会将该文档的副本从数据库中拿到你的工作文件夹(working folder)中,你就可以修改你的文档了。如果其他用户再想对同一文档进行修改,VSS会产生一个信息,告诉他,该文档已被签出(check out),从而避免多人同时修改文档,以保证文档的安全性。 当你完成修改之后,需要将文档 签入(check in)VSS。这个操作从你的工作文件夹(working folder)中复制被你修改的文档,并将它放回VSS数据库,以便其他用户能够及时看到文档的改动。VSS能够保存文档的所有改动,并显示最新版本,同时早期版本也会被跟踪记录下来。VSS对反增量技术的运用,仅需要用很少的磁盘空间就能使得用户获取文档的所有版本。 如果你没有修改文档,你可以执行撤消签出(undo check out)命令,文档将被保存为被签出(check out)之前的状态。 如果你只需读取某一文档而并不需要编辑它,你可以执行取出(get)命令,将文档放入你的工作文件夹,再选择查看文档(view),来查看你的文档的最新版本。 1.2 VSS中的项目 项目(project)是指用户存储在VSS数据库中的所有文件(file)的集合。用户可以在项目之间或项目内部实现文件的添加(add)、删除(delete)、编辑(edit)、共享(share)。一个“项目(project)”在很大程度上类似于一个普通系统的的文件夹,不同的是它能更好地支持文件合并(merge)、跟踪(archive)和版本控制(version control)功能。 文件保存在VSS数据库中的项目(project)里。你无须管理存储在VSS 中的文件正本,除非你要检查或与其它拷贝进行比较。 VSS为每一位用户提供了一份备份文件放入工作文件夹(working folder),供用户对文件进行查看与编辑。尽管没有工作文件夹也可以查看文件,但要想真正实现对文档的处理,必须建立工作文件夹。 1.3 VSS的版本控制功能 VSS能够保存文件的多个版本,包括文件版本之间每一处微小的变动。版本控制有以下几方面的内容: l 组内合作——在缺省的情况下,一般一个文件在某一时间只允许一个用户对其进行修改,这样可以防止文件意外地被其他用户改动或者覆盖。但管理员可以改动这种缺省的设置,允许文件多层签出。这种设置也能防止过多的、不必要的改动。 l 版本追踪——VSS能够对源代码和其他文件进行存储和早期版本的追踪,从而实现重建文件早期版本等有关功能。 l 跨平台开发——在多平台开发的情况下,版本追踪用于维护核心代码。 l 代码的再使用—— 追踪程序基准使得代码可重用。 1.4 文件的拆分和共享 在VSS中可以实现一个文件被多个项目共享(share)。在一个项目中对文件的改动可以自动反映到其他共享的项目中去。这正提倡了代码重用。在file菜单中的properties中,点击link,可以查看某一文件的共享情况。 拆分(branch)是将文件从原来共享的项目中分离出来的过程。它使得VSS可以实现从不同的路径追踪文件。 注:在其他版本控制系统中,分支是通过跟踪版本号来实现的。例如:版本“2.3.9.2”是版本2.3的第二个修订版本的第九个分支。而VSS通过明显不同的项目名称实现对文件分支的跟踪。 拆分文件就断开了共享连接,使得本项目中的文件与其他原来共享的项目无关。对此文件的修改将不会再反映到其他项目上。拆分是这样被建立的:两个文件以前有着共同的历史记录,从实现拆分开始,他们的历史记录将被VSS分别追踪。 拆分文件之后,link按纽将不再显示已断开的连接,但你可以用path(file菜单中的properties项)按纽浏览拆分的历史记录。 共享(share)文件就是在多个项目间建立文件的连接。拆分(branch)文件就是在项目之间建立了不同的文件路径。 1.5 工作文件夹(working folder) VSS是存储和管理文件的工具,但是编辑和编译文件必须在VSS指定文件夹中进行。这个文件夹叫工作文件夹,它可以是现存的文件夹,也可以是VSS新建的文件夹。VSS浏览器在文件列表上方显示了文件的工作文件夹的路径。 在VSS系统中,工作文件夹才是你真正用于处理文档的地方。当你要编辑或修改某个文档时,必须对文档实施check out 操作(详见3.3.5修改和编辑文件),VSS将该文档从项目中拷贝出来,放入你的工作文件夹。当你修改完毕并check in 文件之后,VSS又将文件重新拷贝到数据库中以记录你的修改。 一旦你将文件签出,VSS就开始在你的本地机上创建并管理你的工作文件夹。 每一个用户、每一个项目或每一台微机都可以有自己的工作文件夹。如果Joe在项目$/SpreadSheet和$/WordProcessor上工作,他就有相应的2个不同的工作文件夹。如果Hanna在同样的项目上工作,对于每一个项目她又有自己的工作文件夹。 当你为某个项目设置了工作文件夹,你可以用它来放置你该项目中包括子项目再内的所 2 VSS的客户端安装 2.1 安装VSS的系统条件 l 计算机/处理器: 处理器为486DX/66MHz或以上PC机推荐Pentium或更高级的处理器。 l 内存:Windows 95或以后的版本要求16 MB RAM (推荐32 MB);Windows NT 4.0要求24 MB (推荐32 MB)。 l 硬盘:客户机:典型安装:59MB; 72 MB;安装过程:66 MB; l 服务器:典型安装:128 MB;最大安装:141 MB; l 附加硬盘要求:Internet Explorer:典型为43 MB,最大59 MB;MSDN:典型57MB,最大59 MB l 驱动器:CD ROM l 显示:VGA或更高级显示器,推荐Super VGA。 l 操作系统:Microsoft Windows 95或以后版本或者Microsoft Windows NT 4.0,NT要求Service Pack 3或更高版本(包括Service Pack 3〕 l 外围设备/其它: Microsoft Internet Explorer 4.01 Service Pack 1 (包含). 2.2 从网络安装VSS客户端 1) 打开本地计算机的“网上邻居”属性对话框; 2) 点击“配置”按纽; 3) 将“MICROSOFT网络用户”的属性设置为:登录到WINDOWS NT 域,域名为PLANNING; 4) 添加TCP/IP、NETBEUI、IPX/SPX协议; 5) 重新启动计算机,登录“planning”域; 注:管理员为每位NT用户设置的登录密码为“111”,用户在第一次登录时,计算机会提示用户修改密码。 6) 从“网上邻居”的“planning”域中查找服务器“VSSDATA”; 7) 打开共享的“VSS”文件夹并双击“NETSETUP”; 8) 按照安装程序的提示开始安装。 3 VSS的基本使用操作 3.1 登录VSS 点击VSS图标或从程序菜单中运行Visual SourceSafe 6.0,即可打开VSS浏览器。 如果用户登录的VSS密码和登录PLANNING域的密码是一致的,系统将不再提示输入进入VSS数据库的密码;如果用户为VSS设置的密码与登录PLANNING域的密码不同,系统将提示用户输入VSS的登录密码。关于如何修改VSS用户密码,详见“3.2.14修改用户密码”。 3.2 VSS浏览器 当你一打开VSS,如果你设定了密码的话,它会提示你输入密码。如果你没有设定密码,你可以直接看到浏览器。在浏览器上,你可以浏览你的数据库、查看项目列表、显示文件统计信息、执行命令对文件和项目进行操作等。浏览器的最上方的标题栏是你当前连接的数据库VSS使用符号来提供有关文件和项目信息。 菜单栏的下面是常用工具栏,这里有许多常用命令的按纽,它可以帮你快速地执行对文件的操作。 在项目栏中,显示有项目列表,包括特殊项目的有关信息。文件栏显示了当前项目的所有文件的列表。结果栏显示当前你所执行的操作的结果。 3.3 VSS基本操作 3.3.1创建新的文件夹 1) 选中要创建新文件夹的项目(上级文件夹); 2) 在file菜单中选中creat project; 3) 写入要添加的文件夹的名称,同时也可以在comment栏中为新建的文件夹添加备注; 4) 点击OK。 3.3.2添加文件夹 1) 选中你要添加文件夹的项目(上级文件夹); 2) 在file菜单中选中add files; 3)在文件夹列表中选中要添加的文件夹; 4)点击add,同时可以在comment栏为你添加的文件夹做一个简单备注; 5)如果你要连同子文件夹一起添加,选择Recursive; 5) 点击OK,成功添加了一个带有备注的文件夹。或者点击close,退出操作,返回add files对话框,点击close。 3.3.3添加文件 3.3.2.1使用add命令添加文件 1)选中你要添加文件的文件夹; 2) 在fil菜单中选中add files; 3) 在文件列表中选中要添加的文件;如果要添加多个文件,可以使用CTRL键或SHIFT键,同时选中多个文件; 4)点击add,同时可以在comment栏为你添加的文件夹做一个简单备注; 5)点击OK。 3.3.2.2用拖动的方法添加文件/文件夹 1)打开VSS浏览器,调整其大小,使得Windows资源管理器能够显示出来; 2)打开Windows资源管理器,调整大小,使得两个浏览器可以同时显示; 3)从Windows资源管理器中选择你要添加的文件或文件夹; 4) 拖动你所选的文件或文件夹,放入VSS浏览器,文件被添加进项目,而添加的文件夹将作为项目的子项目。 3.3.3查看文件 1) 在文件列表中选中要查看的文件; 2) 在EDIT菜单中选中view,打开对话框; 3)选中view SourceSafe’s copy of this file; 4)点击OK。 3.3.4创建工作文件夹 在执行签入(check in)、签出(check out)、撤消签出(undo check out)、取出最新版本(get latest version)和文件合并(merge branches)等命令时都必须使用工作文件夹。工作文件夹可以随时设定或修改,VSS系统中可以通过两种方式设置工作文件夹。 3.3.4.1专门创建工作文件夹 1) 在VSS浏览器的文件或项目列表中选中要设置工作文件夹的文件/文件夹; 2) 在file菜单中选择set working folder,打开对话框; 3) 在资源管理列表中选择或新建文件夹; 4) 点击OK。 3.3.4.2利用check out操作设置工作文件夹 在对文件执行check out操作时,如果该文件还没有设置工作文件夹,系统会提示用户为文件创建或指定工作文件夹,用户可以根据系统的提示对文件进行工作文件夹的设置。 3.3.5修改和编辑文件 1) 在edit菜单中选中edit file,打开对话框; 2) 选择check out this file and edit it in your working folder; 3) 点击OK。 注:如果用户已经为文件设置了工作文件夹,VSS会将该文件的一个COPY放入你的工作文件夹并打开文件,让用户进行修改和编辑;如果用户还没有为文件设置工作文件夹,VSS系统会提醒用户设置工作文件夹,用户可根据系统提示,先设置工作文件夹,才可以对文件进行编辑。 3.3.6移动文件/文件夹 3.3.6.1移动文件 你只有一种方法移动文件:将文件共享(share)到项目中,再将其从原来的项目中delete或是destroy。移动文件后,历史信息仍然有效。但是你不能用move命令来移动单个的文件。 3.3.6.2移动文件夹(project) 注:要使用移动(move)命令,必须先请管理员为你设置对移动目的项目的添加(add)权限和对源项目中文件的破坏(destroy)权限。 使用移动命令你可以重新定位子文件夹,将其从一个文件夹移动到另一个文件夹中。这个命令重新定义了被移动文件夹的路径。 这个命令不可以重命名文件;你只能通过执行重命名命令来实现它。这个移动命令不会改变文件夹的内容或其中子文件夹的历史信息,它只会影响到新的和旧的上级文件夹的历史信息。 警告:当你移动一个文件夹之后,就不能再如实地重建其上级文件夹的早期版本。 移动文件夹的具体操作步骤如下: 1) 选中要移动的文件夹; 2) 在file菜单中选中move,打开对话框; 3) 在列表中选择目标文件夹; 4) 点击OK。 3.3.7共享文件/文件夹(share) 1) 在VSS浏览器中选择你要共享的目标项目。 2) 在SourceSafe菜单中选择share,打开共享对话框。 3) 在file to share列表中选择你要共享的文件,如果文件没有显示,可以旁边的项目列表中查找。 4) 点击share。 5) 点击close。 3.3.8拆分文件(branch) 3.3.8.1拆分被共享的文件 1) 在浏览器中选中你想要拆分的文件; 2) 在SourceSafe菜单中选择branch,打开拆分对话框; 3) 在comment中填写备注; 4) 点击OK。 3.3.8.2用一步操作完成文件的拆分与共享 1) 在VSS浏览器中选择你要branch/share的项目; 2) 在SourceSafe菜单中打开share对话框; 3) 在file to share列表中选择要共享的文件,如果你要的文件没有显示,在项目列表中 3.3.9删除/恢复文件或文件夹 如果想从VSS中移走某个文件,你必须首先确定是仅仅从项目中移走,还是从VSS数据库中移走。你还必须确定是要删除文件,但使其能够恢复,还是永久性地破坏它。 VSS中有以下三种途径可以实现从数据库中移走文件。 3.3.3.9.1删除(delete) 将文件从项目中移走。该文件仍然存在于你的VSS数据库和其它共享该文件的项目中,你可以恢复它。此命令同样适用于项目。 1) 选择文件或项目; 2) 选择file菜单中的delete命令; 3) 点击OK。 3.3.3.9.2破坏(destroy) 删除(delete)对话框中有永久性破坏(the Destroy Permanently)选项,你一旦选中它,文件或项目将从VSS数据库中被移走,你不能再恢复它。此外,当Destroy 和Destroy Permanently命令用于共享文件时,它只作用于当前文件夹,其它共享的文件夹仍然保留该文件,该文件依然保存在VSS数据库中。 1) 选择文件或项目; 2) 选择file菜单中的delete命令; 3) 选中 Destroy Permanently 选项; 4) 点击OK。 3.3.3.9.3清除(Purge) 这个命令将永久性地移走你已经删除的文件或项目,但没有破坏它。你可以使用这一命令清空你的文件或项目中的所有内容,但不能恢复它们。 1) 在VSS浏览器中选中项目; 2) 打开file菜单的properties对话框,按delete按纽; 3) 在列表中选择要清除的文件名; 4) 点击purge; 5) 如果要继续,在VSS给你的提示栏中点击yes。 3.3.10查看文件/文件夹的历史信息或早期版本 在历史信息中保存有每一个文件的详细信息。在history对话框中,你不仅可以浏览到文件的版本信息、备注、以及文件的相关历史记录,也能够获取文件的某个旧版本。 注:只有文件(file)可以从历史信息中check out,文件夹(project)不能从中check out。 你还可以从历史信息对话框中执行get、check out、diff、pin、unpin、roll back和reprot等操作。 要查看历史信息: 1) 在tool菜单选中show history,打开history options对话框; 2) 点击OK。 3.3.11获取文件的最新版本 1) 选择你要操作的文件,也可以是多个文件或某个项目; 2) 在SourceSafe菜单中选择get latest version; 3) 如果你事先没有设定工作文件夹,VSS会提示你是否设定一个工作文件夹,点击OK,设定一个工作文件夹; 4) 如果你已经确定了选项,VSS就会显示get latest version对话框,你就可以从当前的项目中获取文件的最新版本的备份,它放在你的工作文件夹中。 3.3.12获取文件的早期版本 1) 选中你要查看的文件; 2) 在tool菜单中选中show history,打开history option对话框; 3) 点击OK,打开history对话框; 4) 选中你要看的版本; 5) 点击get,打开get对话框; 6) 如果你事先没有设定工作文件夹,VSS会提示你是否设定一个工作文件夹,点击OK,设定一个工作文件夹; 7) 在取出对话框中点击OK,文件版本的备份就会从当前项目调入你的工作文件夹。 3.3.13修改用户密码 使用更改密码命令来设置或更改你的密码。要更改密码,必须首先知道当前的密码,如果你忘记了自己的密码,请与管理员联系。 登录的时候,VSS会提示你输入密码以确认你的身份。如果管理员为你设置的用户名与你的网络名是相同的,VSS将不会再提示你输入密码。 注:你的VSS的密码可以与你使用的操作系统的密码相同,也可以不同,它并不会替换你操作系统的密码。 如何更改密码: 1) 从tool菜单打开change password对话框; 2) 在旧密码框里键入你当前的密码; 3) 在新密码框里键入你的新密码; 注:密码可以设1到15个字符,它以*的形式显示; 4) 在确认框里再次键入新密码; 5) 点OK。 3.3.15打开/关闭数据库 如果你使用了VSS,你的文件和项目就会被存储在一个数据库中。它安全地保存你的信息并为你提供重要的历史信息和版本跟踪。要创建新的数据库,要与VSS管理员联系。 3.3.15.1打开现有的数据库 要运行你的VSS,你必须与存储你的文件的数据库连接。这一步通常由VSS自动完成,除非你要选择其他的数据库。如果数据库还没有安装,请与管理员联系。 1) 从file菜单,选择open SourceSafe database,打开对话框; 2) 从数据库列表中选择一个数据库; 3) 点击open,打开数据库。 3.3.15.2关闭数据库 你只能在一个数据库中进行工作。因此,如果要关闭一个数据库,只需打开另一个数据库即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值