VSS使用步骤

在软件工程的领域里,有一块叫做 SCM(Software Configuration Management),有人管它叫「软件建构管理」。SCM 的传统定义是原始码的版本管理,后来则逐渐演进扩大,还包含了软件开发的一些标准和程序的制定与应用 [Summerville 2000]。版本管理工具对目前的软件开发开环境来说相当重要,因为不管是软硬件环境的改变、需求改变、软件本身的 bug...等等,都会令软件不断地演进,我们必须记录各个版本,以便随时比对版本之间的差异,或者回到(rollback to)过去的某个版本;此外,当项目小组成员众多时,工作交接、多人修改同一个档案等情况,都有可能造成档案的版本混乱。例如一支程序本来由张三撰写,可是因为某些原因(请假、临时支持其它项目、请别人 debug....)暂时由李四修改,后来又交回给张三。如果用传统的档案共享机制,每次有这种情形就要互相通知:我改好啰,请把档案从档案服务器搬回你家,万一有人忘了,可能就会造成档案版本错乱,而东西交到客户手上才发现 bug 依然存在。
因此,如果你曾碰过下列情形,而且深感困扰,你可能就需要版本管理工具的协助:
  • 档案不见了(用鼠标拖放档案时误动作,不知道拖去哪儿放了);
  • 档案被别人覆盖;
  • 想要比对各版本之间有何差异;
  • 想要回到之前修改的版本(客户反复无常,设计改来改去....);
  • 多人同时修改造成的版本混乱;
  • 想要知道谁动过的我的程序代码;
  • 跨项目共享组件或模块散落在各处。
目前市场上的版本管理工具已经有很多,环肥燕瘦任君挑选,以下几个可能是大家比较熟悉的:
  • Rational Clear Case
  • Borland StarTeam
  • Merant PVCS Version Manager
  • Microsoft Visual SourceSafe(VSS)
  • Concurrent Versions System(CVS)
CVS 虽然免费,也有窗口接口,但是入门门坎还是偏高,不易入手,以 unix/linux 社群用得较多;StarTeam 和 ClearCase 功能较强大,价格当然也较贵;PVCS 个人也没使用过,无法提供意见;而 Visual SourceSafe(VSS)功能虽然比较阳春,但是笔者试用之后,觉得如果只需要管理多人开发时的文件和原始码版本,其实还挺好用的,也很容易上手。VSS 在 Visual Studio .NET 光盘中就有附了,价格算是相当实惠。以下是使用 VSS 管理原始码的好处(有些不是 VSS 特有的):
  • 建构人员可以实施每周的里程碑版本建立,统一编译所有程序代码,确保交给客户的版本一定是最新的,不会因为某个开发人员忘了把自家 local 的档案复制到 server 的共享目录而遗漏掉。
  • leader 不用一天到晚打电话或发 mail 去追谁还没有把新的档案放上 file server。
  • 共享单元的更新更简便、确实。
  • 提供独立且细微的 user 权限控管,没有 Windows 档案分享时的账户权限检查困扰。
  • 同一个档案多人同时修改可自动 merge 最后的修改成果。
  • 可将历史版本叫出来比对,显示差异处,以进行合并或修正。
  • 提供 Web 应用程序的档案布署功能。
  • 可以和多种开发工具整合,例如:Visual Basic、Visual Studio .NET、FrontPage 200x。
注:撰写此文件时,使用的是 VSS 版本是 Visual Studio .NET 1.0 附的 Visual SourceSafe 6.0c。
1.1 基本概念
想象一下没有工具协助的情况下,当多人同时修改一份文件时,要如何确保文件的版本一致?
也许你可以指派一位专人负责管理文件的进出,这个人姑且就叫他 Manager 好了,Manager 待在一间小小的办公室里,负责文件库的维护和文件的进出。当小组成员 Eric 要修改文件时,就拿磁盘到这个窗口请 Manager 复制一份给他,Manager 在复制的同时会记下来:这份文件正由 Eric 修改;而 Eric 则会把磁盘拿到他自己的机器上,把档案复制到他的工作目录(working folder),然后进行修改。等到 Eric 修改完毕,再从工作目录中把档案复制到磁盘上交给 Manager,最后文件就被更新到文件库中(这动作叫做 check in),至此整个文件的修改与更新的程序就完成了。如果在 Eric 修改期间,Vivid 也拿着磁盘向 Manager 要求修改同一份文件,这时 Manager 会告诉 Vivid:这份文件目前已经由 Eric 领出(check out),且还在修改当中,你得等他改完才行喔。
以目前的作业环境来看,使用磁盘来传递档案似乎是原始人的行径,我们当然可以透过网络来传递档案,但是透过网络传递档案却无法提供上面的例子所要表达的重点:档案的锁定。而锁定机制就是 VSS(或其它版本管理工具)提供的基本功能之一,它确保了多人修改文件时,版本的一致性。上面这个例子当中的文件库,就相当于 VSS 的数据库,而 VSS 的客户端工具(称为 VSS Explorer)则扮演了 Manager 的角色。
当然 VSS 提供的功能更多,它也允许多人同时取出(check out)同一个档案进行修改,并且在将档案送回(check in)数据库时,自动进行合并(merge),这属于比较进阶的功能,稍后亦会提到。
现在你应该已经大概知道什么是 VSS 数据库、什么是 check in、check out,以及文件修改的流程了,接下来就把一些常见的 VSS 术语列出来,在阅读本文时,如果碰到不了解的术语,也可以随时回头查看。
以下是使用 VSS 时常见的术语:
术语
说明
VSS 数据库
VSS 会使用一个数据库来储存各项目的程序代码版本(包括历史版本和最新版本的档案)。
Project
VSS 项目,是一个项目档案的逻辑结构,跟操作系统的目录类似(注意不是指特殊开发工具的项目,例如:VB 专案)。
Working Folder
客户端的项目工作目录。每次从 VSS 数据库取出档案时,就会将档案复制客户端机器的这个目录下。
Master Copy
储存在 VSS 数据库中的最新版的档案。
Local Copy
储存在本机的 Working Folder 的版本。
Check Out
把要修改的档案从 Master Copy 复制一份到本机的 Working Folder 下,以便修改。
Check In
本机的档案修改完后,把档案送回 VSS 数据库。
Get
只从 VSS 数据库取得 Master Copy 的档案,但是不做修改。当你要取得档案的最新版,并且只对它读取时,可使用此功能。
Multiple Checkouts
一个档案同时被多人取出修改。
Merge
合并 Multiple Checkouts 的修改结果。
Shadow Folder
影子目录,它是一个硬盘上的实体目录,每当开发人员 check in 档案时,VSS 就会同时将档案复制一份到这个影子目录里面。
2. 安装与使用范例
本节分别介绍 server 端与 client 的安装及使用。
2.1 服务器端
服务器端包含了管理工具和客户端工具的安装,相关的管理及设定工作有下列几项:
1.       安装 VSS。
2.       建立数据库(使用 Admin 管理工具)。
3.       建立 user 账户(使用 Admin 管理工具)。
4.       设定其它选项。
5.       设定网络的共享目录。
以下是各项工作的施行细节,我们会在 D:\VSS_DB 目录下建立一个新的 VSS 数据库,如果你不想要建立数据库,也可以使用预设的数据库。
2.1.1 安装 VSS
直接执行安装程序,安装过程中会有一个安装选项画面,其中有三个选项,分别为 SHARED DATABASE SERVER、CUSTOM、与 STAND-ALONE。请选择 SHARED DATABASE SERVER。
安装完成后,在〔开始\程序集〕里面会有一个 Microsoft Visual SourceSafe 数据夹,里面有四个程序快捷方式:
  • Analyse & Fix VSS DB
  • Analyse VSS DB
  • Microsoft Visual SourceSafe 6.0 
  • Visual SourceSafe 6.0 Admin
2.1.2 建立数据库
开启 Visual SourceSafe 6.0 Admin,如果是第一次执行,程序会提示你要设定 Admin 账号的密码,若此时不设定,以后也可以在〔Users\Change Password〕里面变更 Admin 账号的密码。
进入 VSS Admin 之后,先点选〔Tools\Create Database〕建立一个自己的数据库,建立数据库时会同时建立一个预设的管理员账户 'Admin',此账户无法删除。
一个数据库里面可以包含多个项目,当然你可以视需要建立多个数据库,只是一次只能使用一个数据库。
假设你将数据库建立在 D:\VSS_DB 目录。
2.1.3 建立使用者账户
数据库建立好之后,必须先开启数据库,然后就可以为这个数据库建立 user 账号,以便日后为各个 user 赋予适当的档案存取权限。这些 user 就是开发小组的成员。
欲开启数据库,请点选〔 Users\Open SourceSafe Database〕或者按 Ctrl+O,然后选择上一个步骤建立的数据库,如下图:
e00b98319b8b75e55fdf0e03.jpg
如果之前建立的数据库没有显示在清单里面,请按右边的 Browse 钮找到该目录(此动作只需一次),然后按 Open 钮,即可开启数据库。
数据库开启后,点选〔Users\Add User〕或按 Ctrl+A 即可新增一名使用者。
2.1.4 设定其它选项
在 VSS Admin 中点选〔Tools\Options〕即可开启选项设定窗口,其中有些设定在客户端(VSS Explorer)里面也有,而这里的设定是全域的,也就是如果客户端没有修改自己的设定,就会取用这里的设定。
建议的设定值(True/False 表示勾选/不勾选):
页夹
项目名称
设定值
General
Use network name for automatic user log in
True
Project Rights
Enable Rights and Assignments commands
True
2.1.5 设定共享目录
你至少要把 server 端的两个目录分享出来给其它网络使用者存取:
1.       分享 VSS 的应用程序目录,以便客户端可以在网络上直接执行其中的 NetSetup.exe 进行安装。
2.       分享数据库所在的目录,如前面范例中的 D:\VSS_DB。
注意:
如果你在分享 VSS 的应用程序目录时,把目录权限设为「只读」的话,客户端安装完后将无法自动执行 VSS(但仍可手动执行);若目录权限为「完全控制」则不会有这个现象。
2.2 客户端
2.2.1 安装客户端
安装客户端程序的方法有两种:
1.       向管理员询问服务器端的 VSS 应用程序分享目录,然后直接执行该目录下的 NetSetup.exe`.
2.       利用光盘安装,安装型态选择 "Custom",然后选择 "Client Programs"。
2.2.2 开启数据库
安装完成后,执行 VSS Explorer(在「程序集」中的名称是 "Microsoft Visual SourceSafe 6.0"),第一次执行时会出现登入窗口,输入要登入的数据库名称(浏览网络上的芳邻,找到 2.1.5 节所分享出来的数据库目录),然后输入使用者名称和密码,即可登入数据库。参考下图:
254e10a89734ccfcca130c03.jpg
VSS Admin 提供一个选项,可以在登入时自动以目前登入 Widnows 的使用者名称来登入数据库,前提是 VSS 的使用者名称要和 Windows 的使者名称相同。方法是将 VSS Admin 的〔Tools\Options〕的 "General" 页夹中的 "Use network name for automatic user login" 项目打勾。以后再次执行 VSS Explorer 时,就会自动以该使用者名称登入,而不会出现登入画面。
2.2.3 建立项目
登入数据库之后,由于是第一次执行,所以没有建立任何项目,看到的画面会像下面这张图:
b23d6d54c4c89c19574e0003.jpg
左边是以树状显示的项目面板,"$/" 是 VSS 的 root project,所有的项目都是建立在此节点之下;右边会显示目前的项目的档案清单;下方状态列中则显示提示讯息、目前登入的使用者名称、档案的排序方式、以及档案数量。
以下步骤示范如何建立一个项目,该项目的档案目录已经事先建立好,位置是 "D:\Projects\Demo1\",而且该目录下已经存在所有文件和程序代码档案。
1.       在项目面板中的 $/ 节点上面点一下右键,然后点选〔Create Project...〕。在接下来开启的窗口中输入项目名称 "Demo1",再按 Ok 钮即可建立项目。
2.       接着将档案加入此项目节点。做法是在项目面板中的 "Demo1" 节点点一下,然后点选〔File\Add Files...〕或按 Ctrl+A。
3.       接着将项目 Demo1 目录下,要加入版本管理的子目录加进来,例如:若要加入 Src 目录,则照下图方式操作:

700df95499a5d315d0090603.jpg

注意必须双击欲加入的数据夹,使其图标变成开启的样子,才是加入该数据夹。确定之后按 "Add" 钮即可加入,加入数据夹的窗口左下角的 "Recursive" 项目通常会打勾,也就是该数据夹底下的子目录也要一并加入。

Tip: 你也可以用鼠标拖曳的方式加入档案或资料夹。
Tip: 当你在加入档案时,如果临时要取消,可以按画面方状态列最左边的〔Cancel〕钮。事实上,只要是比较花时间的工作,都会出现〔Cancel〕钮让你有机会取消工作。
4.       数据夹加入之后,程序会询问你是否要将此数据夹设定为工作目录(working folder),回答 "Yes" 即可。参考下列画面:

2f60b65800e2f2939d820403.jpg

此对话盒关闭后即会回加入数据夹的窗口,若不需要加入其它目录,就按 "Close" 钮关闭此窗口。
5.       此时画面应会显示如下图:

e5acf55819542dcc810a1803.jpg

注意项目面板中的节点必须设定成工作目录(working folder)才能够对该目录执行 check in/check out 动作,例如此范例中的 Demo1 节点,它是我们自行建立的逻辑项目,并未设定其工作目录(也就是没有对应到实体的目录),因此当你点选 Demo1 节点时,右边面板上方的状态会显示 "No Working Folder"。

如果你需要将 Demo1 目录底下的所有目录都纳入 VSS 管理,也可以省略步骤 1,而在步骤 2 加入档案时,直接开启 "D:\Projects\Demo1" 数据夹,这样就会连同 Demo1 这个目录一并加入,且同时为它设定工作目录。
2.2.4 设定工作目录
建立项目之后,接着就是要设定工作目录。首先,在 VSS Explorer 的项目面板里面找到你的项目,在该项目上点一下鼠标右键,再点选〔Set Working Folder...〕,把目录指向你的本机硬盘的项目目录即可。只要父层的节点有设定工作目录,其下的子节点就不用再指定工作目录了。
设定好工作目录之后,就可以利用 VSS 执行 Check Out 或 Get 动作。如果你希望把整个项目的目录和档案都先从从服务器取回来,并且复制到你的工作目录下,你可以使用 Get;方法是在项目名称上点一下鼠标右键,再点选〔Get Latest Version...〕,此时会开启一个对话窗口,如下图所示:
b591488157e15895bd3e1e03.jpg
注意左下角的 "Recursive" 项目,通常我们会希望连子目录一并取回,所以要将此项目打勾。确定之后按〔OK〕钮即可,遇到不存在的目录,VSS 会问你要不要建立,选 "Yes All" 即可,完成之后,你可以开启档案总管,看一下工作目录中的文件目录结构,如果执行的步骤正确,你需要的项目档案和目录 VSS 应该都已经帮你从服务器复制过来了。此动作并非必要,你可以等到你要读取或修改某个档案时,再去 Get 或 Check Out 该档案,到时候 VSS 一样会帮你建立必要的目录。
如果你希望每次取得(get)或 check out 档案时,"Recursive" 项目都要自动勾选,你可以在〔Tools\Options〕的 "General" 页夹更改这个预设设定,参考下图:
f9243dd865d5f07832fa1c03.jpg
项目完成时,或者需要对现有版本进行建置与发行时,可以在服务器的计算机上开启 VSS Explorer,利用〔Get Lastest Version〕取得最新版本,你便可以在服务器端进行建置或者备份项目的工作;或者,你也可以透过影子目录(shadow folder)的功能,来达到相同的目的(参考 3.4 节)。
3. 其它功能
本节将介绍 VSS 的其它功能,包括:
  • 多重 checkouts
  • 档案的共享(Share)与分枝(Branch)
  • 影子目录(Shadow Folder)
3.1 多重 checkouts
VSS 预设不允许多重 checkouts,也就是当一个档案或目录被一个使用者 check out 之后,其它使用者就不能再 check out 该档案目录。当你的小组可能为多人同时修改一个档案,或多人同时修改一个目录里面的各个档案时,可以将多重 checkouts 的功能开启。设定方法是在 VSS Admin 管理工具里面,将〔Tools\Options〕的 "General" 页夹里的 "Allow multiple checkouts" 项目打勾。
使用多重 checkouts 时,有些值得特别注意的地方,例如:一个档案由多人同修改时,VSS 将如何处理?以下将说明相关的注意事项。
文字文件 v.s. 进位档
当你开启多重 checkouts 选项时,表示有可能一个档案同时由多人修改,而 VSS 能够将这些人对同一个档案的修改结果合并(merge)起来,每当一个使用者 check in 档案时,VSS 就会自动进行 merge。也由于 VSS 提供了这项功能,因此限定只有文字文件(text files)才能够多重 checkouts,二进制档案(binary files)仍然是禁止的。VSS 会自动判断档案是属于文字文件还是二进制文件(藉由搜寻二进制的 \0x0 字符),你也可以预先指定好哪些档案类型是二进制文件,省得 VSS 还要花时间判断;方法是:开启 VSS Admin 的〔Tools\Options〕,切到 "File Types" 页夹,把二进制档案的附文件名加入 "Binary files" 字段里。参考下图:
c5109535e811c3c6a71e1203.jpg
注:所谓的文字文件,通常是指可以用记事本开启的纯文本文件,因此 WORD 文件(.DOC)档案应该归类为二进制档案。
图中的 File groups 清单里面,笔者自行加入了 Delphi 项目会用到的档案类型,这项设定是用在当你加入档案时,显示在档案类型下拉盒中,方便你挑选档案而已,如下图:
4ad4a68b7bf5e99efc1f1003.jpg
其实大部分的情况下,用预设的 "*.*" 就行了。
合并机制
当一个档案被多人 check out 时,每当有人将该档案 check in,VSS 就会自动比对档案的差异,并且合并有差异的部分。考虑下面的场景:
1.       张三与李四都 check out 了 foo.txt 这个档案。
2.       张三修改了 foo.txt 的第 100 行,并且 check in。
3.       李四修改了 foo.txt 的第 200 行,并且在 210 行的地方加入了 5 行程序代码。
4.       李四改完了,并且 check in。
上面的例子对 VSS 来说毫无困难,它会安静地自动合并张三和李四所做的修改。但不是所有情况都这么完美,万一两个人都修改了同一行程序代码,此时 VSS 就无法替你做决定,必须由你自己决定怎样合并档案。考虑下面的场景:
1.       Carol 与 Michael 都把 test.txt 取出来修改。
2.       Carol 修改了第 1 行,然后 check in。
3.       Michael 也修改了第 1 行,然后 check in。
这时候 VSS 无法判定到底要怎么合并,于是开启窗口显示两个版本的差异,让后面 check in 的人(Michael)决定怎么合并,参考下图:
df308cd322f40079960a1603.jpg
图中分为三个面板,左上角的面板是目前服务器上的版本(上一个人 check out 的版本),右上角是本地端的版本,下方面板则是合并后的版本;此时 Michael 就可以从两个版本中观察差异的部分,决定好怎么修改后,在左边或右边面板中点鼠标右键,选择〔Apply Change〕来把要改变的内容套用到下方面板。你也可以修改下方面板的文字内容,改好后按工具列的储存钮(磁盘的图标)即可。
附带一提,你可以从 VSS Explorer 显示的画面看出一个档案是否被多人取出修改。如下图的 test.txt,在文件名称的左边有两个勾勾的图示,而 User 栏则显示最后一次 check out 的使用者名称,后面加上 "..."。
8431653476e17103241f1403.jpg
值得采用吗?
万一 VSS 无法自动合并,手动合并似乎有点麻烦,这样做值得吗?还是干脆不允许多重 checkouts?
笔者的建议是,只有当你真正碰到的时候,才把这个功能打开。举例来说,在一个项目里面,可能会有一些共享的程序代码,这些共享的程序代码平时可能由一个人维护,例如:AppUtils.cpp;但是也有可能别的程序设计师写了一些共享的函式,为了避免共享的程序代码散乱在太多档案里面,于是他希望把自己写的共享函式也放到 AppUtils.cpp 里面,于是便形成了多人要维护同一个档案的情形,此时就很适合使用多重 checkouts 了,因为虽然改的是同一个档案,各人要改的部分会彼此冲突的情况不多,此时 VSS 将可以自动处理 90% 以上的合并。
3.2 档案的共享( Share )与分枝( Branch
你可以指定一个档案让多个项目共享,方法是在 VSS Explorer 的项目面板中,挑选要共享的目录,注意不是分享出去的目录,而是指你现在想要使用别人的共享档案的那个项目目录,在该目录上点右键,再点选〔Share〕,这时候出现的窗口才是要挑选来源的共享档案,在窗口中选好要共享的档案,然后按〔Share〕即可。参考下图:
ee24144ec6f4d487d0c86a03.jpg
档案4.设定成共享之后,当你对共享档案 check out,不管是提供共享档案的来源项目,还是使用这些共享档案的项目,其目录下都会有一份共享档案的拷贝,但是 VSS 保证这些档案内容都会一致,VSS 透过 Share 的设定来维护各项目间共享档案的连结,让共享档案维持一个版本。
你也可以透过分枝(Branch)的功能来切断共享档案的连结,这意味着你不要再跟别人共享这个档案了,而希望保有独立发展的版本。做法是在 VSS Explorer 的右边面板中,点选要切断共享关系的档案,然后点选〔SourceSafe\Branch...〕,接着会出现窗口请你确认,按〔OK〕钮即可。切断共享关系之后,其它项目的共享关系依然存在,只有自己跟别人脱离关系而已。
3.3 影子目录( Shadow Folder
由于所有的修改记录和最新版本的档案都存在 VSS 数据库中,如果其它人(例如:项目经理、系统分析师、建构师)经常需要读取最新版的档案,但是又不想要安装 VSS,就可以使用 Shadow Folder 功能,让这些人可以透过档案总管的方式读取档案(只能读取,不能修改)。设定 Shadow Folder 的方法是在 VSS Admin 工具中点选〔Tools\Options〕,然后切到 "Shadow Folders" 页夹,先输入要设定 shadow folder 的项目,你也可以点旁边的〔Browse〕钮,用鼠标来选择项目;接着输入影子目录的实体路径名称,设定完之后按〔确定〕钮即可。如果你要一次设定多个项目的影子目录,可以在每一个项目设定完后按〔Set Another〕钮。参考下图:
5c31b1ca3423e6cbc8176803.jpg
如果要取消影子目录,只要先输入项目名称,然后把 "Set shadow folder to" 这个字段清除就行了。
注意:
  • 影子目录通常是服务器上的目录,建议使用 UNC 路径名称,若使用像 "C:\Projects" 之类的本机磁盘驱动器名称,则每个使用者的机器上都会维护一份 Shadow Folder 档案。
  • 你必须确定每个开发人员都有权限存取影子目录,否则当他们 check in 档案时,就会出现错误。
4. 结语
最后,笔者整理出几个使用 VSS 时的重点步骤及快速键(假设数据库和使用者账户都已经建立好了):
1.       登入 VSS 数据库,开启 VSS Explorer 时就会要求登入,也可以点选〔Files\Open SourceSafe Database...〕或按 Ctrl+P 来登入别的数据库。
2.       建立项目,〔File\Create Project...〕。
3.       设定工作目录,〔File\Set Working Folder...〕或按 Ctrl+D。
4.       加入档案,〔File\Add Files...〕或按 Ctrl+A。
5.       取出档案并修改,〔SourceSafe\Check Out〕或按 Ctrl+K。
6.       修改完后送回服务器,〔SourceSafe\Check In〕或按 Ctrl+U。
其中只有最后两个步骤是开发人员经常执行的动作。
VSS 主要是依靠将档案属性设定成只读来提供档案锁定的机制,而其档案传递的途径则是透过传统的 NetBIOS 和档案共享机制,这使得 VSS 的应用范围只能限制在局域网络内,如果能透过 TCP/IP 的方式传输档案,适用的范围会更广,也会更方便 [ 注1]。
透过本文的介绍,笔者希望能让你对 VSS 有一个初步的了解,并且能很快地学习如何使用它,当你真正开始使用它,就会逐渐发现一些新的或者一些比较细节的东西,此时再到网络上寻找解答,这样可能会比读完很多份文件以后才开始安装使用要来得快一些。如果你要更深入了解 VSS,可以参考文后列出来的参考资料,微软网站上亦提供了相当丰富的文件,从这个网址进入: http://msdn.microsoft.com/ssafe/ ,里面有 VSS 的最新消息和大量的技术文章、教学文件,你可以从这些文件里获得对 VSS 更完整的认识,并且学习一些进阶的管理议题,例如:VSS 数据库的保全、分析、修复、与备份;VSS 的自动化(automation);与其它 IDE 工具的整合等等。在学习使用的过程中如果碰到问题,可以利用网络论坛来寻求解答,这里列出几个供读者参考:

原文:http://hi.baidu.com/x278384/blog/item/598a6223c119715a9922ed42.html

http://blog.163.com/haohaizi_2010@126/blog/static/786635342008101110523989/ 另一种说明

posted on 2011-04-05 17:43  Jack.leung 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/jack-liang/archive/2011/04/05/2005982.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VSS概述 Microsoft Visual SourceSafe是美国微软公司出品的版本控制系统,简称VSS。它提供了还原点和并行协作功能,从而使应用程序开发组织能够同时处理软件的多个版本。该版本控制系统引入了签入和签出模型,按照该模型,单个开发人员可以签出文件,进行修改,然后重新签入该文件。当文件被签出后,其他开发人员通常无法对该文件进行更改。通过源代码管理系统,开发人员还能够回滚或撤消任何随后产生问题的更改。 作为一种版本控制系统,Visual SourceSafe 能够: • 防止用户无意中丢失文件。 • 允许回溯到以前版本的文件。 • 允许分支、共享、合并和管理文件版本。 • 跟踪整个项目的版本。 • 跟踪模块化代码(一个由多个项目重用或共享的文件)。 独立开发人员和小型开发团队已经发现,版本控制能够使他们保持内心的宁静并提高工作效率,从而使他们受益。Visual SourceSafe 是一种版本控制产品,主要致力于维护文件更改历史记录、审核跟踪日志以及对源代码文件进行灾难恢复。它在以下场合下最为有效:团队的规模较小,各个成员之间的地理距离比较近,通常在高度可靠的环境中通过高速、低延迟的局域网 (LAN) 工作,并且共享的开发资产不大可能超过 4 GB。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在同样的项目上工作,对于每一个项目她又有自己的工作文件夹。 当你为某个项目设置了工作文件夹,你可以用它来放置你该项目中包括子项目再内的所 VSS服务器端安装 Visual SourceSafe 管理员通常将 Visual SourceSafe 安装到网络服务器上,然后将您的名称添加到数据库用户列表中。只需运行安装程序,然后选择某个选项以安装 Visual SourceSafe。 1 有三个 Visual SourceSafe 安装选项: 1)数据库服务器 将数据库和所需的软件安装到网络服务器上(系统管理员使用该选项)。然后,各个用户使用 Netsetup 从网络服务器安装 Visual SourceSafe 客户程序。 2)自定义 允许您选择要安装的组件。 3)独立 安装创建和访问您的计算机上专用数据库所需的组件。另外,还可以连接到网络服务器上的现有数据库中。 2 指派用户权限 在可以访问数据库之前,必须指派相应的权限。另外,还可以将用户权限指派给其他要共享您的数据库中文件的小组成员。请 Visual SourceSafe 系统管理员添加、更改或删除数据库的用户权限和密码。 3 连接到 Visual SourceSafe 数据库 从 Visual SourceSafe 应用程序连接到 Visual SourceSafe 数据库,启动 Visual SourceSafe 应用程序。 从“文件”菜单中,单击“打开 SourceSafe 数据库”,然后在列表框中选择一个数据库。 可以使用此命令从其他人已经创建的 Visual SourceSafe 项目中选择一个现有的数据库。这样您就可以使用由他人建立的多开发人员项目了。 2 VSS的客户端安装 从网络安装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、付费专栏及课程。

余额充值