版本管理工具-SourceSafe
一、什么是SourceSafe
SourceSafe是Micrsoft公司推出的一款支持团队协同开发的配置管理工具,是Visual Studio的套件之一。因为其短小精悍,又继承了微软集成销售的一贯作风用户可以相对于免费的价格得到,用户量绝对是第一位。
SourceSafe简单易用人们在使用配置管理工具时候,80%的时间只是用Add,Check in,Check out等区区几个功能。
SourceSafe 的主要局限性:只支持WINDOWS不支持异构环境下的配置管理;对INTERNET支持不够完善。
二、它的运行机制
SourceSafe是使用服务器、本地机的概念来进行操作的,它认为所有需要操作的文件都存在服务器版本文件和本地机版本文件,无论您的SourceSafe的架构是服务器客户机形式还是个人单机版形式,它的机制都是这样。用户所用的修改都是在本地机上完成的,修改完成后再上传服务器。单机版也是这样操作。我们一定要明确两个版本后再来分析。
服务器版本文件是一个绝对受配置管理软件限制的文件,用户只能通过 SourceSafe的规定的权限和操作方法修改它,因为它并不是您一个人的,它是大家的。本地文件是一个基本不受限制的文件,您可以象操作本地文件一样操作它。
SourceSafe由Visual SourceSafe 6.0 Admin、Microsoft Visual SourceSafe 6.0、Analyze VSS DB、Analyze & Fix VSS DB四部分组成。Analyze VSS DB、Analyze & Fix VSS DB两个工具不是很常用,前者用于检查SourceSafe数据库文件的完整性,后者主要是修正SourceSafe数据库文件存在的错误。
Visual SourceSafe 6.0 Admin的功能类似于win2k的用户管理器,软件配置管理人员用它来分配用户和设定相应的权限。
管理员的管理操作一般都集中在 Visual SourceSafe 6.0 Admin中,系统中只有一个系统管理员Admin可以登陆到此程序中进行管理工作,一般刚刚安装的系统中此用户的密码缺省为空。而且系统为Admin这个用户保留的一切权力,不可更改。
数据库的创建这个操作必须在服务器上执行,因为通过客户端创建数据库的操作,只是在客户端的机器上创建的数据库,这个数据库往往只能单机使用。同时要必须注意,由于 VSS是通过WINDOWS的网络共享来完成服务器端受控版本文件的共享,因此VSS服务端的数据库必须建立在服务器的一个完全共享的目录之中。否则,客户端将无法获得数据库中的文件。
数据库的备份与恢复,备份数据库或者其中的一个项目,点击 tools-archive projects…菜单弹出对话框,根据提示一步步进行备份,最后会形成一个扩展名为*.ssa的备份档案文件。
如果要从档案文件中恢复 VSS数据库中的文件数据,点击tools-restore projects菜单根据提示一步步完成数据恢复工作。其中,在恢复过程中,可以选择恢复为原有工程,也可改变恢复成其他工程目录。
三、 VSS使用
Microsoft Visual SourceSafe 6.0是SourceSafe的主要使用平台,样子象Windows的文件管理器,它所显示的路经是以‘$'符号为根节点的相对路径,在这里介绍一下此平台的主要使用方法。
( 1)添加项目
您可以在根节点下添加项目,方法是: File—Add File出现Add File对话框后选中相关文件,按Add即可。
你可以继续通过 File-Create Project在根目录下创建一个项目后在此项目节点下添加文件。
添加完文件后,您所添加源文件的属性自动变为只读,并在所添加文件的文件夹下生成一个 vssver文件 ,以后对文件的操作基本与原文件没有关系了。
( 2)浏览Source Safe Server中的文件
在 Visual SourceSafe Explore中双击要打开的文件,会弹出一个对话框,您直接点击OK即可。这时SourceSafe Explore会将文件拷贝一份到本地机的临时文件夹中(临时文件夹路径在tools-options-general下设置),因原文件前面提到已经变了只读,所以临时文件也是只读属性,而且文件名会通过系统自动更改。
( 3)设置工作文件夹
SourceSafe 的文件夹需要在本地计算机上指定一个“working folder”。当“check out”时,相应文件会下载到这个本地工作文件夹中。我们在本地的文件中修改文件,然后把修改后的文件“check in”回服务器的source safe中。
我们可以利用“ set working folder”这条命令来建立source safe的文件夹和本地“working folder”的对应关系。方法在source safe的文件目录树中选中要建立对应关系的文件夹-右单击-选择“set working folder”即可。
( 4)、下载最新版本文件到本地机
“ get latest version”命令可以将一个文件、一组文件或整个文件夹的最新版本从source safe中拷贝到本地的计算机中,并用只读的形式保存起来。方法如下:
在左侧的文件树中选择相应的文件夹右单击后,选择“ get latest version”
这时会弹出一个对话框,它包括三个复选框:三个复选框全空时,只将 source safe文件夹根目录下的文件拷贝到本地计算机,如同DOS中的COPY命令;recursive选项选中时,会将source safe文件夹下的所有文件夹及文件都拷贝到本地计算机,如同DOS中的DISKCOPY,make writable选中,拷贝到本地的文件是可写的。
如果我们单击“advance”按钮,就会出现更多的选择项。在“set file”中的四个选项第一如下:current为拷贝操作发生时的当前时间;Modification为文件最近一次修改的时间;check in为文件最后一次check in是的时间;default同current.
在replace writable中的四个选项作用是,当本地机有一个和要下载的文件同名时,且本地机的文件是可写的同名文件时,设置系统如何执行拷贝:ask系统提示是否覆盖本地的同名文件;replace自动覆盖本地的同名文件;skip不覆盖本地的同名文件;merge将两个文件合并。
一定要养成先Get Latest Version的习惯,否则如果别人更新了代码,VC会提示你存在版本差异并问您是否覆盖、整合、保留等,如果选错了就会把别人的代码Cancel掉,所以一定小心。
(5)下载文件到本地操作
当我们要修改一个文件时,首先要把文件从source safe中复制到“working folder”中,并且以可写的形式保存,这一系列动作的命令就是check out。具体使用方法如下:选择要下载到本地机的文件,右单击后选择check out,这时会弹出一个对话框。缺省的状态下“don't get local copy”这个选项是不选的,他的意义是这样的:如果不选保持缺省状态,当本地的同名文件是只读时,则系统首先用source safe的文件更新本地的文件,本地的文件变为可写。当本地的文件是可写时,则会出现另一提示框其中的选项leave this file:本地文件保留当前状态,source safe中的文件也保留当前状态,这样有可能两个文件不一致。选项Replace your local file with this version from source safe:用source safe中的文件更新本地的文件。如果您选择don't get local copy选项:则不把source safe的文件拷贝到本地。
文件check成功后,您可以看到文件上有红色标记,这时您的本地文件是可写的,您就可以修改文件了。上面的选项也许让您心乱,为了操作更简便,我们推荐一种check out 方法:
当本地的文件比source safe中的文件内容新时,选择don't get local copy选项。然后check in使本地机与服务器内容同步;
当source safe中的文件比本地机的文件内容新时,则在source safe中选择此文件,然后get latest version命令,然后按照默认选项进行check out;
当两者内容相同时,按照默认选项操作。
注意:source safe中使用了文件锁的概念当一个文件被别人check out时,其他人不能check out 此文件;如果文件锁是无效的,您可以查看Visual SourceSafe 6.0 Admin-tools-general-allow multiple chechouts选项是否被选中。只有当check out 修改文件完毕后,一定要check in,来保证source safe中的文件最新。
谨记check out时将是使得代码对自己可写,对别人只读,请仅仅Check Out自己需要修改的部分,不然你工作的时候同组成员只能休息了。
(6)上传文件到服务器操作
我们必须利用 check in命令保证source safe本地的文件同步,check in与check out 成对出现,它的作用是用本地的文件更新source safe中被check out 的文件。
具体操作在 source safe选中处于check out状态的文件,右单击选择check in即会出现一个对话框:默认状态下它的两个复选框处于非选状态,Keep checked out选项,可以在check in 后自动的再次check out,等于是省略了下一步check out操作;remove local copy选项,可以在check in的同时,删除本地机上working folder中的同名文件。
一般按照缺省选项就可以了。 Check in成功后,source safe和本地的文件是完全相同的,本地的文件变成了只读文件。要再次修改文件时,再执行check out操作,此时本地机的文件属性自动变为可写状态。一定记住check out 后要check in,不然导致的后果就如同写完了文件不保存差不多。
一定要保证你的文档正确、可编译后再 Check In不然会使得其他人也无法通过编译,整个工程没法调试了。
( 7)undo check out 操作
当一个文件被 check out 后,您如果想要撤销这项操作,可以使用undo check out命令,操作步骤:选中处于check out 状态的文件,右单击后选择undo check out.
当source safe中的文件和本地的文件完全相同时,则不出现提示信息,文件恢复为普通状态。
当source safe中的文件和本地的这个文件不完全相同时,则出现提示窗口,对话框local copy中包括三个选项:
replace选项选中后会出现,系统询问是否覆盖的信息,如果单击yes则是用source safe上的文件最后一个版本覆盖本地机上的文件,如果选择no保留本地计算机上文件的内容,source safe上的文件是上次check in后的内容。此时,两个文件可能出现不同;
leave选项保留当前计算机上的内容,source safe上的文件是上次check in后的内容,两个文件可能出现不同;
delete 选项删除本地计算机上的这个文件。
选择一个选项后,单击 OK后,文件回到普通状态。
( 8)edit操作
edit命令是一个组合命令,是先check out再修改的命令的组合。应当注意的是,执行edit命令后,我们修改了文件,但是source safe中的文件并没有同步的修改,我们还是要check in完成本地文件与source safe上文件的同步。
( 9)查看文件的历史内容
方法选中此文件,右单击选择 show history,出现一对话框后,经选择OK后弹出一窗体,我们可以看到这个文件的所有版本,要查看某个版本可以选中VIEW按钮。如果想下载某个先前的版本可以点击get按钮。
( 10)关于source safe的权限
缺省状况下,项目安全管理是以简单模式来运行,即用户对工程的操作的权限只有两种,一种只读权限,一种读写权限。要启用高级模式,可以在 Visual SourceSafe 6.0 Admin-tools-project security-enable project security将此选项选选中。
source safe的权限分为5级:
无权限级:看不到文件
read级:自能浏览文件,可以使用get latest version命令
check in/check out级:可以更新文件,但不能对文件进行删除
delete级:可以删除文件,但通过某些命令这些文件还能恢复。
Destroy级:可以彻底的删除文件,删除之后无法恢复。
为用户设定权限的工作一般由软件配置管理员在 Visual SourceSafe 6.0 Admin中完成。
权限管理就是管理用户和工程目录之间的操作权限的关系。因此,有两种管理方式。一种就是以工程目录为主线来管理权限,一种是以用户为主线来管理权限。
以目录为主线管理用户权限则点击 tools-right by project…菜单,弹出对话框来管理项目的用户访问权限。
如果以用户为主线来用户权限,则应先在主界面的下方的用户列表中选中一个用户,再点击 rights assignments for user…菜单,弹出对话框,对话框下方列出了该用户对数据库各项目目录的访问权限,如果访问某个项目在列表上没有列出,则说明该项目的权限是继承上级目录的访问权限。只要您点选一个目录,就可以编辑该用户对该项目目录的访问权限。
权限复制就是将一个用户的权限直接复制给另外一个用户,管理员可以通过 copy user right…菜单来实现。
( 11)关于password的更改
password一般是由软件配置管理员分配的,如果我们需要修改密码,可以在tools-change password 下修改。 需要说明的一点是当你的 source safe密码和windows密码相同时,启动source safe,不会出现提示您输入密码的对话框。这是微软的的一贯作风,在SQL server数据库管理系统下也能找到这个影子,因为微软认为windows的密码应该比其他软件的密码级别要高,既然您能用相同的用户名和密码进入windows那么您也有权使用相同的用户名进入其他的软件。
版本管理工具-SourceSafe的更多相关文章
- 版本管理工具git与svn简介
版本管理工具 版本管理工具简介 常见版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 git 流行 ...
- linux系统下使用流行的版本管理工具 Git
前几天被版本管理困扰了好久,主要是因为 没法回到之前的版本,新版本又出了问题真的很尴尬. 终于决定使用目前网上很火的版本管理工具-------Git 历史啥的就不说了,说些有用的. 我用的是oschi ...
- GIT版本管理工具
原文:http://blog.csdn.net/ithomer/article/details/7527877 Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介 ...
- Studio之版本管理工具Git (图文教程)
目前业界主流的版本管理工具主要是 svn/git.svn是1种集中式的代码管理工具,而git是1种散布式的代码管理工具,广受极客的爱好.而基于git的github更是全宇宙码农的提高逼格,深究技术的必 ...
- 版本管理工具介绍—Git篇
前篇 如题,提起版本管理工具相信做C#开发 还是对Git比较陌生 我们可能更熟悉vss.svn 记录此文的目的 更是为以后的前段学习做基础 现在的技术比如nodeJs angularJs ==都 ...
- nodejs版本管理工具NVM(Node Version Mene)
最近打算用心学习nodejs,所以在学习中了解到NVM-nodejs的版本管理工具,下面我就记录下我学习并且安装的详细过程,请大神们放过~~第一步.你要先把你本机上安装的nodejs以及npm相关的东 ...
- 可视化Git版本管理工具SourceTree的使用
最近去了新公司,发现公司使用的团队版本管理工具是SourceTree,本人一直是SVN的热衷粉,很少使用git,所以从头学习git及可视化客户端SourceTree的使用,本贴只针对新手,大牛可以无视 ...
- 版本管理工具Git(1)带你认识git
简介 本篇将带领大家认识,git.github,让大家对git有基本的认识:下面将持续更新几篇文章来介绍git,见git导航: 下一篇中将讲解git的安装及使用: Git系列导航 版本管理工具Git( ...
- 版本管理工具Git(2)git的安装及使用
下载安装git 官方下载地址:https://git-scm.com/download/win 这里以windows为例,选择正确的版本: 验证是否安装成功,右键菜单中会出现如下菜单: Git工作流程 ...
随机推荐
- 求第 i 个素数 Meissel Lehmer Algorithm + 二分 【模板】
1473: L先生与质数V3 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1348 Solved: 147 [Submit][Status][Web ...
- 译——meta viewport
此文翻译PPK大神的——meta viewport. 主要讲到了第三种viewport——ideal viewport,以及使用meta viewport 设置移动浏览器的视口. the meta v ...
- 消息中间件 | 消息协议 | STOPM -- 《分布式 消息中间件实践》笔记
12年,STOMP1.2规范发布 简单的文本消息传输协议,提供一种可互相操作的连接格式,允许客户端与任意消息服务器进行交互 主要的概念 STOMP包含客户端和服务器,其中客户端指生产者或消费 ...
- nagios部署配置流程
nagios部署配置流程 nagios服务端:1.部署nagios服务端(参考nagios官方部署文档).nagios-plugin.php.apache2 2.需要在服务端添/etc/hosts中添 ...
- Vue 4 -- 获取原生的DOM的方式、DIY脚手架、vue-cli的使用
一.获取原生的DOM的方式 在js中,我们可以通过id.class或者标签获取DOM元素,vue中也为我们提供了获取原生DOM的方法,就是给标签或者组件添加ref属性,通过this.$refs获取,如 ...
- Linux--1 初识
一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...
- HBase基础讲解
HBase定义 HBase 是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群. HBase 是 ...
- static修饰的类属性
我看书上说:static成员总是唯一存在的,并且在多个对象之间互享. 因此想到,如果我在a.php中实例化了Person.class.php这个类,并给static $name赋值,那么在b.php中 ...
- Git远程推送文件太大的error解决
error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errfno 10054 方法1: 改成ssh推送 方法2: 把推送的缓 ...
- 前端-页面性能调试:Hiper
前端-页面性能调试:Hiper 我们写单页面应用,想看页面修改后性能变更其实挺繁琐的.有时想知道是「正优化」还是「负优化」只能靠手动刷新查看network.而Hiper很好解决了这一痛点(其实Hi ...