标题：Visual Source Safe
释义
【Microsoft Visual SourceSafe】　Microsoft Visual SourceSafe是美国微软公司出品的版本控制系统，简称VSS。
简介
VSS的简单工作原理Microsoft的VSS 6.0解决了软件开发小组长期所面临的版本管理问题，它可能有效地帮助项目开发组的负责人对项目程序进行管理，将所有的项目源文件（包括各种文件类型）以特有的方式存入数据库。开发组的成员不能对该数据库中的文件进行直接的修改，而是由该版本管理器将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改，然后将修改后的项目文件作Checkin提交给VSS，由它进行综合更新。VSS也支持多个项目之间文件的快速高效的共享。当某个成员向VSS中添加文件时，该文件将会被备份到数据库中，以便所有的成员都能共享该文件。而且每个成员对所有的项目文件所作的修改都将被记录到数据库中，从而使得修改的恢复和撤销在任何时刻，任何位置都成为可能。小组的成员可能得到该项目的最新版本，对它进行修改，并保存一个新的版本。　VSS的项目组织管理使得开发小组的协调变得简单容易且很直观，当一个和一组文件发放给另一个成员，小组，Web站点或是任何其他的地址，VSS确保他们之间的真正共享及所选的一组文件的不同版本的安全性。现在，越来越多的开发者可以通过他们的开发环境来访问VSS的功能。而且VSS可以很容易地于Microsoft Access、 Visual Basic、 Visual C++、Visual FoxPro和其他的开发工具集成在一起，一旦VSS集成到开发环境中，就可以象控件一样使用，能够很好地体现出VSS的易用性和强大功能。
VSS中的几个重要概念1） 项目（project），所谓的项目是一组存在VSS中的文件（任何类型），可以在项目中或是项目之间进行文件的添加、删除、编辑和共享。一个项目与操作系统的文件夹有很多的相似之处，但它更好地支持文件合并、历史和版本控制。所有的文件存在VSS数据库的项目中，开发组成员不能在VSS中的服务器主备份文件上工作（除了检查和版本比对等特殊情况外）而是VSS为每个成员在各自的工作目录（workfolder）下提供一个拷贝以供工作。尽管在没有工作目录的情况下也可以查看某个文件，但如要真正在VSS管理下工作，就必须要创建一个工作目录。
2） 工作目录（workfolder）是用户真正对项目文件进行调试修改的地方，当用户checkout文件时，VSS将就将文件拷贝到用户的工作目录下，当用户修改了该文件并将其checkin时，VSS再将它从用户的工作目录拷回到VSS 的数据库中。在用户作checkout时，VSS将会自动管理他的工作目录，诸如创建必要的子目录。而且工作目录可以随时创建或修改。 
3） 版本跟踪。VSS提供版本控制和历史服务，而且老版本程序和文档能够被重新得到以便进行bug跟踪或其他目的。VSS用日期/时间戳来记录文件是何时被checkout或是何时被修改的，它主要有三种方法来跟踪文件和项目的版本： 
版本号：这是由VSS维护的内部数码，用户对它没有控制权。每个文件和项目的每个版本都有一个版本号，这些版本号总是一个整数且是递增的。 
标签（label）：这些是用户赋给某个项目或文件的某个版本的一个字符串，可以是任何格式的长度不超过31字符的字符串。推荐使用。 
日期/时间戳：它给出了一个文件何时最后被修改的信息，或者是一个文件何时被checkin。VSS同时支持 12小时和24小时的时间格式。
概况
软件支持Windows系统所支持的所有文件格式，兼容Check out-Modify-Check in（独占工作模式）与Copy-Modify-Merge（并行工作模式）。VSS通常与微软公司的Visual Studio产品同时发布，并且高度集成。VSS（6.0d及较早版本）最广受垢弊的缺点是需要快速大量的信息交换，因此仅适用于快速本地网络，而无法实现基于Web的快速操作，尽管一个妥协的办法是可以通过慢速的VPN。VSS2005 拥有Web访问功能，不再与Visual Studio同时发布。在Visual Studio 2008 Team System 中集成了另外一个叫做Team Foundation Server的项目生命期管理工具。VSS未来将面向独立开发者和小型开发团队。
VSS - 运行环境
Windows平台下使用VSS开发的典型环境是基于C/S架构的，即开发小组的每个开发者在各自的Windows平台下利用开发工具（比如VC）开发项目中的各个模块，而配有专门的服务器集中控制开发过程中的文档和代码。服务器和开发人员的客户机分别装有VSS的服务器和客户端程序。
VSS - 安装vss6.0服务器安装
第一步，将Visual Studio6.0的CD1放入CD-ROM，自动进入安装程序，选择第二项“Server Applications and Tools(Add Only)”； 
第二步，然后在“Server Setups”的“Server Components”中选择“Visua l Source Safe Server”,按“Install”按钮后，根据提示放入CD2； 
第三步，根据Installation Wizard的提示，继续安装过程，选择安装路径，直至提示你重启以使新安装的程序生效，重启计算机。[1]
VSS6.0客户端的安装在VSS6.0服务器安装完毕后，就可以在VSS管理员的指导下安装客户端的软件。由于我们是在一个Windows环境的子网内，每台PC客户机均可通过网上邻居来访问VSS服务器。在VSS管理员为用户指明VSS客户端软件的安装程序“Netsetup.exe”的位置（VSS服务器安装目录内）后，用户可以直接通过资源管理器“Explorer”在网上邻居中找到该程序，并双击以运行它。 Netsetup.exe被启动后进入VSS客户端的安装，在提示框中输入用户名和工作组名，选择VSS的安装路径后，点击安装图标，进入实际安装步骤，以后的工作将由系统自动完成。
VSS - 使用说明
VSS使用过程中要遵循的是lock-modify-unlock流程而不是 copy-modify-merge流程（比如CVS），即开发人员首先将自己要修改源代码和文档从VSS服务器主备份文件上checkout到本地同时锁定服务器上的源代码和文档（multi - checkout情况除外），修改完成后checkout到服务器上同时解除服务器上文件的锁定。服务器集中控制所有的源程序和文档。
VSS6.0服务器的配置和管理
在VSS6.0服务器安装完毕后，就可以针对开发项目进行VSS服务器的配置和管理，这些工作均需由VSS管理员来完成。 
第一步，为整个项目创建一个VSS数据库（在VSS服务器安装时，系统已经创建了一个缺省数据库Common），启动Visual SourceSafe6.0 Admin（Start/Programs/Microsoft Visual Studio6.0/Microsoft Visual SourceSafe/Visual Sou rceSafe6.0 Admin），跳出对话窗口，点击下拉菜单Tools中的Create Database ...菜单项，将出现对话窗口，选择新数据库的路径，例如创建MyApp数据库，然后点击OK按钮，系统将完成创建工作。 
第二步，为新创建的数据库（例如MyApp）建立用户，首先需要打开该数据库，点击下拉菜单Users/Open SourceSafe Database...，然后选择数据库MyApp并打开。再选择菜单项Add User...，输入用户名和口令。然后依次创建其他的用户。可以为不同的用户设置针对不同项目文件夹的不同存取权限，存在两种方法：1）使用VSS提供的功能。选中Tools/Options…对话框中projectSecurity属性页的Enable Project Security复选框并选择Tools/Rights by Project…或者Tools/Rights Assignments for User…进行设置；2）使用windows操作系统的cacls命令。 
第三步，在该新建的数据库中创建项目Project。启动Microsoft Visual SourceSafe6.0（Start/Programs/Microsoft Visual Studio6.0/Microsoft Visual SourceSafe/Microsoft Visual SourceSafe6.0），出现对话窗口，点击下拉菜单File中Open SourceSafe Database...，跳出对话框，选择一个数据库（例如MyApp），双击它或按Open按钮打开该数据库；一个项目Project是一组相关的文档或者是一个文件的集合，VSS允许你以任何的层次结构来存贮和组织你的项目。在VSS数据库中，你可以创建一个或者多个项目。点击菜单File中的命令Create Project...，创建一个项目，例如MyProject；创建完项目MyProject后，需要向MyProject中添加文件，点击File中Add Files命令，将跳出对话框，选择相应文件或目录，点击Add按钮，将它们添加到MyProject中去。 
至此VSS服务器的配置到此基本上已经完成了，创建了数据库和项目，并为它们建立了相应的用户，这样用户在客户端就可以直接登录到VSS服务器上，进行在VSS控制管理下的开发工作。 
注意：关于服务器主备份文件的目录结构应该在项目开发前确定并征得全体开发人员得同意。实际使用过程中，如果发生服务器主备份文件目录结构不合理或者需要临时增加删除一些文件的情况，VSS管理员有责任集中进行处理。
VSS6.0客户端的使用
下面以实验室数据仓库项目具体实例说明VSS客户端使用步骤。 
第一步，登录到VSS服务器。启动Microsoft Visual SourceSafe6.0客户端（Start/Programs/Microsoft Visual Studio6.0/Microsoft Visual SourceSafe/Microsoft Visual SourceSafe6.0），出现如下登录窗口； 
点击Browse…按钮，出现下面对话框； 
再点击Browse…按钮，选择下图所示的目录（DBGROUP服务器上的共享目录，如提示输入DBGROUP服务器帐号密码则分别填写vss/vss）； 
单击打开按钮并在随后出现的两个对话框上单击OK和Open； 
重新回到登录对话框； 
输入管理员指定的用户名和密码，即登录到了VSS服务器上。 
注意：不同得用户和密码设置对不同目录（project）有不同的访问权限。 
第二步，如果是第一次登录到VSS服务器，还需要先设定工作目录，否则无法进行checkout操作。 
工作目录的设定如下图所示，选中自己相关模块的文件夹，单击右键，选择Set Working Folder…； 
在弹出的对话框中选择自己所设定的工作目录并单击OK； 注意：工作目录设定完成后，服务器上的文件checkout后均放到该工作目录中，所以本地机器上的工作目录应收到保护不能随意删除移动。 
第三步，checkout文件到本地工作目录中。选中相关的文件夹，单击右键并选择Check Out…； 
系统弹出checkout对话框如下，单击OK后该目录下所有文件和子文件夹即checkout到了本地工作目录同时服务器上的文件被锁定呈红色，其他用户不可以再checkout该文件夹（服务器设置为不允许multicheckout）。 
注意：一定要选中Recursive复选框以保证所有子文件夹被checkout。 
第四步，对本地工作目录当中的文件进行修改调试。 
第五步，将工作目录中的文件checkin。如果不将修改后的文件checkin则第四步中对文件的修改无法反映到服务器上项目文件的主备份中，而且极有可能导致下次checkout后本地文件被旧版本文件覆盖的情况。在VSS客户端窗口中选中要checkin的文件夹单击右键选择Check in…，弹出checkin对话框，单击OK则本地工作目录中的文件checkin到了服务器上同时服务器上的文件解除锁定（变黑）。 
注意：一定要选中Recursive复选框以保证所有子文件夹被checkin。
评析及建议
VSS虽然是微软公司的产品，但微软内部却很少使用它。微软内部使用一个名为SLM的版本控制系统，直至1999年。之后，微软内部改以使用修改自Perforce的SourceDepot。
建议1
在实际使用过程中，开发人员或者管理员有责任对服务器上的源程序和文档定期或不定期的做相应Label，以方便源程序和文档历史版本的管理。VSS可以方便的根据Label获取各个历史版本（有其他获取历史版本的方式，本文推荐使用Label方法）。 
添加Label。选中要添加Label的目录（project）单击右键选中Label…； 
设置Label对话框中填入Label名称和相关Comment，如下图所示； 
如果要获取某一历史版本，选中相应的目录（project）并选择Show History…，如下图所示选择相应复选框并单击OK； 
VSS弹出下面对话框，其中列出了所有管理员所作的Label，选中相应的Label，然后单击Get按钮则做Label的相应版本就会checkout到本地工作目录中。其他按钮的使用参见帮助；建议2 
开发人员请不要随意变更VSS服务器上的目录（project）结构，不要在目录（project）中随便增加删除文件，不要随便访问他人目录（project）及文件。如服务器上目录（project）结构确实需要变化请与管理员联系。
建议2
严格遵守VSS的使用规程，防止因误操作导致程序或者文档的丢失。如遇两人需同时修改统一目录（project）或文件的情况，请串行处理而非multicheckout方式处理以减少出错几率。VSS概述VSS概述 
版本控制是工作组软件开发中的重要方面，它能防止意外的文件丢失、允许反追踪到早期版本、并能 
对版本进[1][2]行分支、合并和管理。在软件开发和您需要比较两种版本的文件或找回早期版本的文件时，源代 
码的控制是非常有用的。 
Visual SourceSafe 是一种源代码控制系统，它提供了完善的版本和配置管理功能，以及安全保护和跟踪
检查功能。VSS通过将有关项目文档（包括文本文件、图象文件、二进制文件、声音文件、视屏文件）存 
入数据库进行项目研发管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS， 
它的每次改动都会被记录下来，用户可以恢复文件的早期版本，项目组的其他成员也可以看到有关文档的 
最新版本，并对它们进行修改，VSS也同样会将新的改动记录下来。你还会发现，用 VSS来组织管理项目, 
使得项目组间的沟通与合作更简易而且直观。