VSS(Visual SourceSafe)使用入门

Visual Source Safe 安装与使用教程 用户成员不能对该数据库中的文件进行直接的修改,而是由版本管理器将该项目的远程序或是子项目的程序拷贝到各个用户成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作check 提交给 vss 来进行更新用户可以根据需要随时快速有效地共享文件,文件一旦被添加进vss,每次改动都会被记录下来,用户可以恢复文件的早期的版本源码文件,用户组也可看到其他成员的有关文档的最新版本,并对其进行修改,vss也同样会将新的改动记录下来。该模式下,只有你可以合法的编辑这文件,对这文件有最终的版本控制权。 阅读详情

VSS(Visual SourceSafe)使用入门

张博 2005.6

节 1.01      前言... 2

节 1.02      安装... 2

节 1.03      数据库管理... 3

(a)       介绍... 3

(b)      Visual SourceSafe 6.0 Admin程序... 3

(c)      打开指定的数据库... 4

(d)      创建新数据库... 5

(e)       用户管理... 5

(f)       使用项目权限Project Rights. 5

节 1.04      使用VSS浏览器... 7

(a)       借助VSS开发项目... 7

(b)      VSS浏览器... 8

节 1.05      项目操作... 9

(a)       添加项目和文件... 9

(b)      设置项目工作路径... 9

(c)      取得项目最新版本... 10

(d)      签出项目Check Out10

(e)       签入项目Check In. 10

(f)       撤销签出Undo Check Out11

(g)      显示历史记录Show History. 11

(h)      显示差异Show Differences. 13

(i)    设置版本标签Label14

(j)    取得历史版本... 14

节 1.06      文件操作... 14

(a)       取得最新版本... 14

(b)      签出... 14

(c)      签入... 14

(d)      撤销签出... 14

(e)       查看和编辑(View,Edit)... 15

(f)       显示文件历史Show History. 15

(g)      文件比较Show Differences. 16

(h)      文件属性... 17

节 1.07      与开发工具整合... 18

节 1.08      已知的问题... 18

(a)       UNICODE、UTF-8的问题... 18

(b)      InterDev开发Web应用的问题... 19

(c)      文件比较的问题... 19

(d)      签入无效的问题(与CuteFTP有关的)... 19

节 1.09      Tip. 19

       本文件是作者本人使用VSS产生的一些心得、经验之类的记录,并非严肃的操作手册。就我个人体会而言,严谨详细的操作手册通常让人产生畏惧感并由此排斥这个软件。如果只通过简单的几步引导就能获得常用的结果则会让人产生很大的满足感并对这个软件产生很高的评价(我试图接近这个目标)。很幸运,微软的产品总是比较容易入门(并因此招致竞争对手的嫉妒和指责)。微软公司的大多数项目并非用VSS管理(他们使用更强大的版本控制系统),然而很多管理严格的公司(真正的CMM3)却也在使用VSS进行管理,他们的VSS数据可以累积到好几个G。这些公司并非仅仅使用VSS管理源代码,他们用VSS管理所有受控的文件,包括组织级文件、项目文档、会议记录、评审报告等等,总之一句话,所有重要的东西和他们的历史都可以在VSS中获得。很多程序员在体会了版本控制系统的好处以后开始用版本控制系统管理自己的所有文件,从此不用担心自己遗忘什么或者因为偶然的失误失去什么重要的东西,这是一种幸福的感觉。
Visual SourceSafe 是一个源代码控制系统,可以保存文件的不同版本,可以比较文件的差别,可以控制不同的人对同一文件的修改。就功能而言是同类产品中比较弱的,但满足了基本的需要并且非常容易使用,因此获得了非常广泛的使用。VSS目前的最高版本是6.0D(6.0+SP6= 6.0C),微软公司似乎没有开发VSS.net的计划,因此我们不得不继续忍受Visual Studio 98风格的界面。
所谓VSS服务器指的是存放VSS数据库的计算机,客户端是访问VSS数据库的计算机,而VSS数据库是一个共享的目录,仅此而已(因此并不存在服务器程序)。
微软产品的安装一向简单,只有少数选项需要说明一下。安装类型包括“SHARED DATABASE SERVER”、“CUSTOM”和“STAND-ALONE”三种,第一种共享数据库服务器是完全安装,第二种定制安装的默认值也是完全安装,因为这个软件本来就很小,所以选前两种就行了,第三种单机安装就是单机版。
此软件的安装与标准的Windows程序略有不同,安装过程中检查已经安装的旧产品的方式是搜索整个文件系统,因此可能将同一电脑上的其他操作系统上安装的VSS检查出来,此时不必理睬安装程序的警告,将安装位置改到合适的地方继续安装就行了。安装过程可能还会提示数据库版本的问题,新的V6数据库V5软件不能访问,一般来说总是应该使用更新版本的数据库,再说升级VSS客户端软件是很容易的。
安装完成以后得到一个VSS目录,这个目录包含了一切:程序文件、配置文件、默认数据库、用于网络安装的客户端安装程序。如果这个默认数据库需要在网络上共享(一般总是需要的)则将这个VSS目录共享,并给相关人员设置完全访问的权限(即使这个用户只是VSS数据库的只读用户)。注意,目录的安全属性与共享权限不同,“Program Files”目录下子目录和文件的访问权限可能是受限制的,所有VSS用户在VSS目录的安全属性也必须是完全访问的。
这样修改安全属性:在VSS目录上点右键,选择“属性”,切换到“安全”属性页,设置权限,然后点下面的“高级”按钮,选中高级里面最下面的“重置所有子对象的权限并允许传播可继承权限”选择框,点“确定”退出高级,再点确定使修改生效。
安全提示:因为VSS数据库要在网络上完全共享,所以网络要安全,如果有删除所有文件的病毒就会出大麻烦,一般的感染特定文件类型的病毒危害小一些,无论如何,安全最重要。
VSS的数据库是一个目录,目录下包含若干个文件和目录,“srcsafe.ini”是关键文件,此文件用来标识一个VSS数据库。VSS客户端打开一个数据库的方式就是找到这个文件,所以共享数据库的方式就是简单地共享包含这个文件的目录。另外一个文件“users.txt”记录用户信息。还有三个目录:“data”、“temp”和“users”,分别存放数据库的内容、临时的信息和用户的相关数据。安装VSS软件的目录除了上面所说的VSS数据库的文件外还包含几个目录存放VSS程序,根据安装类型不同可能还包括网络客户端安装程序。
VSS不存在服务程序,一切都通过文件操作进行。最简单的备份方式、也是最可靠、绝不会出错的方式就是备份整个目录。另一个方式是定期取得数据库里所有文件的最新版本,只对最新版本进行备份。为了避免保存大量不必要的版本,可以对每个项目建立一个VSS数据库,这个数据库保存所有的变更(包括开发过程中的大量尝试性的变更),而公司级的受控库只保存正规的版本。
安装VSS软件的时候可能已经安装了一个数据库,那么这个数据库就是默认的数据库,数据库都用位置命名,目录名字或者网络位置的名字(名字其实是无关紧要的,数据库的实际位置才是关键)。
VSS软件在程序菜单中包含四个程序,其中两个——分析并修复数据库、分析数据库——都是很少用的,另外两个VSS Admin程序(Visual SourceSafe 6.0 Admin)和VSS 浏览器(Microsoft Visual SourceSafe 6.0)是最常用的。另外还有一些其他程序并未出现在程序菜单,需要阅读帮助文件挖掘,VSS支持命令行方式,有编程接口(不然开发工具是如何与VSS整合的)。
每个数据库初始拥有两个用户:“Admin”和“Guest”,都拥有全部权限并且没有口令(因为Admin没有口令是不安全的,所以初次打开Admin程序会得到一个安全警告)。Admin用户是超级用户并且无法被删除也不能修改权限。Admin口令是最重要的,因为默认情况下VSS程序会用上一次的用户名和口令登录VSS,所以一般用户忘记口令是很常见的,这时候就需要Admin用户使用Admin程序重新设定用户的口令了。
VSS以树形目录的方式组织内容,每个目录称之为一个项目(Project,这是一个重要概念),每个子目录也同样是一个项目,如果使用了递归选项则对一个项目的操作会包含下面的所有子项目,对一个项目的设定会影响子项目,子项目的设定会覆盖继承自父项目的设定(但具体每个操作的效果要看具体的操作,并非没有特例)。简单地说,项目就是虚拟目录(并且和外部实际目录对应)。
打开Admin程序要求输入口令,但并不总是这样,VSS会保存上次使用的数据库和用户名、口令,这样下一次使用VSS就不需要输入口令,进入VSS的Admin或浏览器程序以后可以再改变数据库。Admin程序的界面如下:
       基本上这是个相当简单的界面,功能都通过菜单实现。界面的主要部分用来显示当前的用户列表、权限和登录状态,不支持右键,仅支持双击,双击可以修改用户的名字和权限。权限很简单,默认为“Read-Write”,可以修改为“Read-Only”,显然这不会使我们满足,我们需要的是“Project Rights”,对每个目录给每个用户特定的权限,这些权限包括只读、写入、添加删除重命名、销毁,除了不能控制到文件,这基本上满足了我们的要求。具体操作后面会介绍,相当简单。
当前打开的数据库也许并不是需要的,菜单“Users”下的第一个菜单“Open SourceSafe Database”用来打开一个不同的数据库,打开新数据库会关闭原来的数据库。

图中的“Open”按钮不可用是因为temp数据库正是现在打开的,选择一个不同的数据库,可以用“Open”按钮打开它。“Browse”按钮用来在系统中寻找一个数据库,寻找的目标就是srcsafe.ini文件,寻找的位置范围就是一般Windows查找文件的范围,从桌面开始,包括了“我的电脑”和“网上邻居”。“Remove”用来从列表中删除一个数据库信息,并非删除数据库。下面的“Username”不可编辑是因为Admin程序只允许Admin用户使用,如果是在VSS浏览器下执行这个功能则可以编辑。
很多时候我们并不喜欢默认的数据库,可能是因为它的安装位置太深了。我们也可能为了不同的目的创建几个不同的数据库。创建数据库使用菜单“Tools”下的“Create Database”,仅仅需要选择一个存放数据库的目录即可(不会在这个目录下创建“VSS”目录,所有文件和目录直接放在选择的目录下,因此这个目录应该是新建的专门用来放VSS数据库的)。新创建的数据库的目录里面只有数据库,不包含VSS程序。
用户管理无非是添加、删除、编辑、修改口令,都在“Users”菜单下,一目了然。所有能设定的不过是用户名、口令和是否只有只读权限而已。最重要的功能是“Project Rights”,下面介绍。
项目权限是针对每个项目的用户权力。使用项目权限首先要启用项目权限,在菜单“Tools”下的“Options”里面的“Project Rights”选项卡上,选中最上面的“Enable Rights and Assignments Commands”选择框即可。
新用户的默认权限建议只给一个“Read”就行了。然后确定。这时“Tools”下面原来不可以使用的菜单全部可以使用了。
现在可以给项目设定权限了。打开菜单“Tools”下面的“Project Rights”,显示如下窗口:
在左边选择项目,右边上面选择一个用户,右边下面设定用户的权限,如果只有“Read”权限可以选择的话说明这个用户是“Read-Only”,在编辑用户那里去掉只读就可以了。因为可以对每一级每个目录单独设定权限,因此很容易疏忽。设定完权限后最好再逐级检查一遍看有没有发生错误,有可能发生这样的情形:试图通过对级别较高的项目的权限的禁止阻止用户访问整个项目,然而对子项目用户有单独设定的访问许可,因此对子项目实际上并未禁止访问。
四种访问权限含义如下:
“Read”,读
“Check Out/Check In”,签入/签出,也就是写
“Add/Rename/Delete”,添加/重命名/删除,删除的文件仍然存储在数据库中,可以被恢复,直到被销毁
“Destory”,销毁,销毁的文件就再也找不回来了,这个是会造成无法挽回的后果的权力,通常不应该赋予任何一个一般用户,仅保留给管理员。
这四种权力逐个包含,选中下面一个上面所有的会被自动选中,取消上面一个下面所有都回被自动取消。
如果一个用户在当前选择的项目上什么权力都没有就不会显示在用户列表中,必须用“Add User”添加进来,“Delete User”则删除用户在当前项目的所有权力并把用户从列表中清除。
菜单“Tools”下的“Rights Assignments for User”则提供了对单一用户的项目权力指派。功能相同,视图不同。
在程序菜单VSS的浏览器叫做“Microsoft Visual SourceSafe 6.0”,用来操作VSS。很多开发工具可以直接操作VSS,因此不需要使用这个工具。另外有些开发工具不支持和VSS浏览器混用(比如MS Visual Studio 里面的InterDev),如果混用,开发工具可能不能正确地处理文件,因此如果项目在使用开发工具整合的VSS功能,建议不要跳过开发工具直接使用VSS浏览器。
如果项目采用VSS作为版本管理,那么被认可的代码(以及其它文档)就应当是VSS数据库里面的最新版本(而不是某个人的版本)。每天早上,每个人都从VSS中取得(叫做Get)最新版本放在自己的工作目录下(这保证每个人用的都是最新的,并同时在每个人的电脑上做了备份),然后获得特定文件的修改权(叫做Check Out,签出),然后开始编辑,编辑完成之后放回并放弃修改权(叫做Check In,签入),签入以后其他人再去取得新版本的时候就会取得这个签入的版本了。
VSS可以记录每个变化,每个文件的每次签入都产生一个新版本,可以单独取得旧版本。VSS可以给整个项目贴上版本标签(Label Version),比如“beta 2”,这个版本是用户定义的版本(与VSS自身对每次签入的自动编号不同),可以针对版本标签取得版本,一个标签标识的是做标签之前签入的最新版本。
VSS可以方便地比较目录或文件,可以是VSS里的不同版本或不同项目互相比较,也可以是VSS和VSS之外的目录或文件比较,也可以是与VSS无关的外部文件或目录的相互比较,比较的结果包括相同的、不同的、增加的、删除的,对于文本文件可以直接可视化地显示差异。
除非Admin用户专门将数据库配置为允许多人签出,否则不会有两个人同时修改一个文件的情况发生(如果多人签出,签入时会要求首先合并,确认合并完成才能签入)。尽管提供了多人签出、分支开发、版本合并的功能,然而实际的合并操作仍然完全依靠脑力进行,因为工具只能指出两个版本有这些差异,但是这些差异如何合并却完全依赖脑力判断,绝非简单地合并为一个文件那么容易。因此很多人总是尽可能地避免多人签出或分支开发。
VSS浏览器拥有如下界面,工具栏和右键菜单很完善,使用起来非常方便。
界面下边用来输出一些没用的信息,不必管它。左边是项目列表,看起来就是一个目录树,根用“$/”表示,可以手工添加项目,然后往项目里面添加文件,也可以一次把一个目录(可以递归包含子目录)添加进来成为一个项目。右边是项目下的文件,不包括子项目,显示的信息包括签出的用户的名字和最后一个版本的时间以及签出位置。右边上面两个文本是当前的项目名称和项目的工作路径(工作路径是项目默认的本地目录)
对项目可做的操作主要包括:创建项目、删除项目、添加项目或文件、设置项目工作路径、设置版本标签、取得最新(最后)版本、签出、签入、撤销签出、查看历史、比较差异、查看属性(没什么属性,关键是这里可以恢复删除的文件)。
对文件可做的操作主要包括:查看、编辑、签出、签入、撤销签出、取得最新(最后)版本、查看历史、比较差异、删除、重命名、查看属性(文件类型很重要,二进制文件无法比较细节,只能比较相同或不同,文本文件则可以按行比较,有时VSS不能正确识别文件类型,需要手工修改)。
选中项目树的节点,然后点右键选择“Create Project”或者工具栏上的第一个(也许你的版本不是第一个)按钮“Create Project”或者菜单“File”下的“Create Project”可以在选中的节点下创建一个新项目(看起来就是创建一个子目录,事实上也没什么差别),需要输入的是项目的名字,支持中文,有兴趣的话顺便把注释也填上,省得以后忘了这个项目是干什么的。
很多时候可以通过添加一个目录以及目录下的所有内容来创建项目。选择“Add Files”命令可以添加项目或文件。这个命令的名字实际上并不准确,它既可以添加文件又可以添加项目。
选择左边的文件然后点“Add”按钮会把这个文件添加到当前项目,选择右边的目录点“Add”按钮则会把目录添加到项目(也就是成为一个子项目,存在一个选项让你把整个目录全部添加进来)。有时候你会注意到左边不会显示任何文件或者只显示了一小部分文件,这是因为同名文件已经在项目中存在,不可能添加同名文件进来的缘故。如果选择的是项目,弹出的“Add”对话框不仅提供输入注释的地方,还在下面提供了一个选项:递归 “Recursive”,这个选项在很多地方都有,用起来很方便。选择这个选项就不只是把当前目录和下面的文件全部添加进来,而且把子目录及子目录下的内容也全部添加进来。曾经有人向作者抱怨VSS不好用,每个子目录都需要一个一个创建,很麻烦,嘿嘿,他只是英文不太好又不愿意查字典而已。
为项目设置一个对应的本地目录,用来取得版本进行编辑。只需要为项目(工程意义的项目,而不是VSS的项目)的总入口的VSS项目设置一个工作目录既可,获得版本时下面的所有VSS子项目自动作为一个子目录得到。如果子项目设置了独立的工作路径,那么这个工作路径仅当对在这个子项目上执行操作的时候才会有用。
这个命令通常从项目的右键菜单获得,名为“Get Last Version”。
目标位置默认是项目的工作路径,但可以更改。“Recursive”递归,若选中可以得到整个项目树,否则只得到项目下的文件而不包含子项目。“Make writeable”,默认取得的文件是只读的(Check Out才是获得可编辑的版本的合理方式),若选中则不设置只读属性。
一次性签出项目下的所有文件,适合一个项目(子项目)下所有文件都归一个开发人员负责的情况。
若选择递归则连子目录下的东西一起签出。“Don`t get local copy”,不取得本地版本,这样不会覆盖本地已有的版本(也许本地版本包含着你一个通宵的勤苦工作,当然不能随便覆盖)。
签出的文件没有只读属性,可以修改。过程上应该首先签出才有权修改文件,签入以后修改才会被其他人认可。如果文件已经被签出,就应该等待或者去跟签出者协商,绝不应该在没有签出的情况下擅自修改本地文件。任何人都应该服从这一点,否则项目版本将仍然陷入混乱。
一次性签入一批文件。不签入别人看不到你的修改。
       有递归选项,可以连子目录一起签入。“Keep checked out”,保持签出状态,在频繁修改代码时经常会这样做,保存一个中间版本然后立即继续修改。“Remove local copy”,删除本地版本,这个主意不好,万一VSS服务器硬盘坏了不就完蛋了,不过你也许有别的方面的考虑。
如果后悔了,不想修改文件,可以撤销签出。
      
       有递归选项。还要选择本地版本的处理方式,可以用VSS里面的版本覆盖,也可以留着不管它,还可以删除,要仔细斟酌。
查看项目的所有历史,包括增加文件、删除文件、签入文件(文件有更改)。
      
可选项包括递归(包括子目录的历史)、包括文件的历史、包括版本标签、只包含标签(会禁止文件历史)、从什么时候开始、到什么时候(时间格式大概按照操作系统来的,至少YYYY-MM-DD是合法的时间格式)、哪个用户。默认没有递归选项,多数时候需要加上这个选项,其余选项不常用。显示的历史记录如下图所示:
按照时间顺序列出了所有历史,可以注意到文件file1.cpp在“Added”之后有两次签入,这两次签入之间有一个Label“Labeled‘v1’”,Label对应项目下的所有文件,除非子项目用一个同名的Label覆盖(这种情形应当避免)。这个窗口提供了很重要的项目管理功能。
“View”,查看选中的文件的内容,就是查看以前版本的内容。
“Details”,查看历史记录的详细信息,有一些内容是可以编辑的。清除Label的内容将导致Label被删除,没有独立的删除Label命令,这就是删除Label的方法。
“Get”,取得选中的文件的历史版本或者取得选中的Label版本(label之前的最新版),会提示取得版本放到哪里去,对项目也有递归选项。能够取得任何时候的历史版本,这个功能才是版本控制系统存在的价值。
“Check Out”,签出文件或项目。
“Share”,共享。两个项目可以共享一个文件,两边看起来各自有一份,但其实是同一份,一次只能由一边签出。通常用菜单“SourceSafe”下的命令执行,共享以后可以断开搞分支开发。
“Report”,报告历史,可以报告到打印机、剪贴板或者文件,可以包含文件历史和版本差异。
这也是关键功能。可以比较两个项目或目录的差异,包括一边有而另一边没有的文件和内容不同的文件。
默认情况下比较的是项目和项目的工作目录的差异,以“$”开头的是VSS项目,但两个都可以用“Browse”改变,所以实际上可以比较任何VSS和目录的差异。下面四个选项全选是最全面的,显示所有的相同和不同。递归选项选中可以包含子项目或子目录。下图是比较结果:
存在下列差异:
demo.cpp在项目中存在,但在工作目录不存在,蓝色显示。
file1.cpp有差异,图标到有红色标记。
file2.txt没有差异。
file1.cpp.bak和“新建 文本文档.txt”项目里面没有,绿色显示。
对于这些差异可以用右键菜单分别处理(注意鼠标点在哪边的文件上可能是不同的,作者的习惯是在这里只查看差异和添加文件,从不在这里删除)。
对于项目里面有但工作目录没有的,可以从项目里删除,也可以取得最新版本或签出。
对于项目里面没有的,添加到项目里面,或者从目录里删掉(真的删除了文件,而不是仅仅从列表删除)。
对于有差异的,可以查看差异(产生一个文件的差异比较,这是很常用的功能)签入或撤销签出。
对于没有差异的,可以删除或签出。
给项目做一个版本号,这个标签代表的版本是做这个标签的时间之前的最新版本。一般在管理上要求做版本标签(有时称之为封版)之前所有文件都已签入(VSS并不要求这样),以后就可以取得标签版本。如果标签搞错了,可以在项目历史里面查看标签细节,然后将标签名称修改,如果要撤销标签就把标签名称清空。
因为这是版本控制的标志功能之一,所以重复一次。
取得项目历史版本,在项目上查看历史,找到合适的Label,选择“Get”命令。
取得文件历史版本,在项目或文件上查看历史,找到合适的版本,选择“Get”命令。
Get Last Version,VSS数据库里的最后一个版本会放到指定的目录下,默认是项目的工作目录。
Check Out,然后就可以修改。
Check In,然后别人取得最新版本就可以看到你的修改。
       Undo Check Out,放弃修改权。对本地文件有三种处理方式:用VSS版本覆盖、保留、删除,请谨慎选择。
VSS提供整合的查看、编辑能力(当然通常我们是在专门的开发环境中工作的)。这两个功能有同样的界面,只是默认操作不同,View的默认操作是编辑,Edit的默认操作是签出并编辑(一个典型的糟糕设计)。
不管从哪个命令进入都可以改变“Do you want to”选项进入另外一个命令。查看或编辑的工具可以是VSS内置程序或者操作系统注册的程序(如果没有注册的程序则该项不可用)或者手工选择一个不同的程序。
比项目的显示历史少一点选项,但显示结果有不同的命令可用。
       这里每个文件版本都获得了一个版本号“Version”,是从1开始的自然数序号,每次签入都产生一个新版本(但没有修改的签入不产生新版本)。注意到有一个版本标签“v 1”是来自项目的版本标签。
       这里多出几个不同的命令可用:
       “Diff”,比较差异,默认跟工作目录的版本比较,但选中两个不同的版本(用Ctrl键)也可以进行两个历史版本之间的比较,比较的结果实可视化的,非常直观(仅限于文本文件,对二进制文件只能报告相同或不同)。
       “Pin”,订住,被订住的版本成为最新版,别人取最新版本只能取得被订住的版本,而不影响签出者修改文件、签入、签出。只能订住还没有被签出的文件。订住可以避免其他开发者得到一个不可用的中间版本。
       “Rallback”,回滚,选中的版本之后的版本都会被删除,选中的版本成为最新版。出于对历史的尊重,先签出,然后取得历史版本覆盖到工作目录,然后签入,这也许是更好的回滚方式,毕竟一个糟糕的版本也是一个版本。
重要功能。可以直接从右键菜单进入,也可以从文件历史结果窗口进入,还可以从项目差异结果进入。
比较的两个文件都可以改变到VSS数据库里的一个文件或者一个普通文件,VSS数据库的文件还可以带上VSS的版本号。下面的选项一般不用修改,格式如果选择为SourceSafe或Unix,就会使用原始方式显示结果,很不爽,还是Visual比较好。结果如下图:
原来的文件第三行被删除,文件最后又增加几行,一目了然,点工具栏上的向上向下箭头可以查看下一个上一个差异。
文件属性首要关心就是文件类型,Text文件可以按行存储,按行比较,Binary文件则只能按照原始格式存储,每个版本都是一个完整文件,占用很大空间,而且只能比较出相同或不同。可以在文件属性窗口改变这个属性。如果某个文件VSS不能正确存储,就只能改为二进制格式。有时候VSS自动判断出错,也要逐个修改文件属性。
其他几项暂时没什么可说的,需要用的时候自然就会了。
很多开发工具都整合了VSS支持,此时最好只用开发工作操作。开发工具对VSS的操作本质上与VSS浏览器是一样的,不过是签入签出而已。只是一定不要忘了及时签入,否则你的工作是能被别人看到的。
ANSI格式没有问题,UTF-16、UTF-8有问题,不能正确识别,存储的文件会错乱。微软承认麻烦很大,详细的说明MSDN里面可以查到,下面的斜体文字引自MSDN文档“ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsintro7/html/vxtsksavingfileswithencoding.htm”

为了方便代码在特定语言和特定平台上进行显示,可将文件与特定字符编码建立关联。

如果使用 Visual SourceSafe 以 ANSI、UTF8 或 Unicode 格式存储文件,请注意它们各自的以下限制。

  • ANSI 文件只允许使用当前代码页中支持的字符,这会限制国际使用。
  • Unicode 文件无法使用共享签出、差异检查或合并功能,原因是此类文件是作为二进制文件处理的。可在国际文件中使用此格式。
  • UTF8 文件在 Visual SourceSafe 中不能安全地工作,因为在签入、签出、差异检查和合并过程中该文件会被更改,而这会导致 UTF8 文件编辑器出现问题。

(b)            InterDev开发Web应用的问题
不可绕过InterDev直接使用VSS浏览器签入签出,会死人的。InterDev实际上借助IIS访问VSS,所以会有这个问题。很幸运,vs.net里面已经没有InterDev了。
有时候会报告文件有差异但却看不出差别,也许是换行符的差异,也许不是,如果执行签入会发现并没有签入(这意味着签入程序并不认为文件有差别)。如果是 6.0C,这种情况会非常多,6.0D则好很多,基本上不会出现。因为是C版大量使用所以特别提到这个问题。顺便说一下,C版和D版可以混用,没发现什么问题。
有时候看起来签入成功但实际上并未签入。如果文件是用CuteFTP下载到本地的,那么可能是因为CuteFTP显示FTP文件的窗口需要刷新。推测可能是CutFTP下载文件时使用旧的文件信息,VSS签入时发现文件是旧的就认为不是新版本不需要签入。

1 有时会出现某个文件无权 GET 的问题,重起 SERVER 端机器即可解决

2 有一次,不知因何原因(可能是病毒),Sourcesafe 的数据库访问权限变了,需要在 Windows 页面重新分配所有权

3 建议经常做 SourceSafe 备份,以便文件丢失时(Sourcesafe 大了会丢失),可以挽回,备份采用 WINDOWS 的自动备份功能即可(管理工具中有一个备份工具,排定一个计划,即可自动备份)

4 了解 sourcesafe 目录结构的方法如下:将所有内容 GET 出来, 用 TREE>*.txt(DOS命令),即可将该目录结构存储到一个文本文件中

 

我写这下这些东西,希望对别人能有一点点帮助,因为我也总是从别人那里获得帮助。

感谢karencao向我提供的大量的帮助,这方面她是我的老师,有一些经验直接来自她那里。感谢在千乡万才工作的八个月,让我感受真正的先进管理方式。不是所有的企业都可以让离去的员工怀念。千乡梦散。。。。。。
感谢普信的jasmine等人提供的建议,他们都很热心,他们的热心让我感觉到做这一切的价值。

感谢小王子,没有他的鼓励,我会永远是个空想家而不会开始实干。他是我最好的朋友。

……

狐狸说。“喏,这就是我的秘密。很简单:只有用心才能看得清。实质性的东西,用眼睛是看不见的。”

……

“正因为你为你的玫瑰花费了时间,这才使你的玫瑰变得如此重要。”

……

“人们已经忘记了这个道理,”狐狸说,“可是,你不应该忘记它。你现在要对你驯服过的一切负责到底。你要对你的玫瑰负责…”

…… 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
VSS使用入门(VSS使用指南 VSS使用说明 VSS使用手册 2.01版) VSS(Visual SourceSafe)使用入门第二版(2.01)张博 2006.12.41 前言 22 概念 32.1 数据库SourceSafe Database 32.2 服务器和客户机 32.3 项目Project 32.4 工作目录Working Folder 42.5 签入、签出 42.6 基本工作方式 43 作业指导书 43.1 客户机作业指导书 43.1.1 准备工作 43 阅读详情

相关推荐

Visual SourceSafe 入門教學

Visual SourceSafe 入門教學作者:蔡煥麟日期:Sep-4-2003摘要本文介紹了版本管理的基本概念,以及 Visual SourceSafe 的基礎功能,目的在於希望提供一個能夠快速上手的入門指南,讓初學者能儘快將它用在專案管理上,同時也具備學習其他進階議題的基礎。1. 簡介在軟體工程的領域裡,有一塊叫做 SCM(Software Configuration

Tiller2008的专栏 2812

VSS 安装配置

1首先自己安装好“vss2005”,在VSS服务器上,需要安装microsoftsourcesafe2005或以上版本均可以。第二步添加WINDOWS凭据,添加凭证(项目给的地址)172.1.。输入地址(项目给的地址)172.168。点击“浏览”,找到srcsafe.ini点击打开。安装完sourcesafe软件;第三步,添加完以后,打开下图软件。第一步电脑搜索“凭据管理器”2安装完以后执行以下步骤。第四步,输入用户、密码登录。......

小田的博客 1940

Visual SourceSafe(VSS2005)设置Internet访问

最近需要通过Internet来访问源代码,开始想使用权用SVN,但只是使用过其客户端,从没有配置过它的服务器,并且同伴也没有接触过,记得从前看过介绍说新的VSS支持通过Internet访问。所以打开了MSDN的找到了一些英文资料,所以为了和我一样英语不太好的人共享,在这里记下整个设置过程。 一、VSS服务器的设置 1.用具有管理员权限的账房登录WEB服务器;; 2.运行Visual SourceS

zongshi的专栏 1886

[转]VSS(Visual SourceSafe)使用入门

[转]VSS(Visual SourceSafe)使用入门

于明远的专栏 1302

VisualSourceSafe2005安装及使用图文教程

Microsoft_Visual_SourceSafe2005,简称VSS,是一个项目管理工具,该文件包含vss2005从安装到使用的详细图文教程。

VSS详细配置安装图解

关于VSS从服务器到客户端的安装,配置详解。具体操作以及一些个人看法。

VSS(Visual SourceSafe)使用入门第二版(2.01)

1 前言 22 概念 32.1 数据库SourceSafe Database 32.2 服务器和客户机 32.3 项目Project 32.4 工作目录Working Folder 42.5 签入、签出 42.6 基本工作方式 43 作业指导书 43.1 客户机作业指导书 43.1.1 准备工作 43.1.2 获取文件 43.1.3 修改文件 53.1.4 脱机工作(未签出的情况下修改) 53.2

leapsoft的专栏 1160

AURIX TC397开发板到手第一步:用iLLD库驱动LED流水灯(附完整代码)

本文详细介绍了如何使用英飞凌AURIX TC397开发板和iLLD库实现LED流水灯效果。从开发环境配置到硬件连接,再到完整的代码实现,逐步引导开发者完成项目。文章还提供了优化建议和常见问题解决方案,帮助嵌入式开发新手快速上手。

weixin_30911451的博客 390

VSS入门

感谢作者freecode   http://www.cnblogs.com/freecode/articles/472658.aspx VSS的全称为Visual Source Safe。作为Microsoft Visual Studio的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目。本文通过对Visual C++中项目的管理,来介绍VSS的界面、基本概念、相关操

zsw2zkl的专栏 1138

《网络存储技术》形考实训4:为小微企业搭建基于Windows Server的文件共享与权限管理服务

本文介绍了在域环境下部署DFS分布式文件系统的完整流程。项目目标是将3台存储服务器(NS1、NS2、NS3)上的多个共享文件夹通过DFS命名空间进行统一整合,使员工可通过单一访问路径访问所有资源。实施步骤包括:1)搭建AD域环境并创建用户/组;2)将存储服务器加入域并配置共享权限;3)在域控制器安装DFS命名空间角色;4)创建基于域的命名空间(\xc.cn\共享);5)将各服务器共享文件夹映射到命名空间;6)进行客户端访问验证。通过DFS实现了物理存储位置不变情况下的逻辑统一访问,提高了文件管理的便捷性和可

深耕计算机专业知识与技术。 946

Altium Designer (AD) 设计软件高频面试题及参考答案(3万字长文)

在Altium Designer(AD)中,设计复用是一种关键的策略,它允许设计师在多个项目中重复使用经过验证的设计元素,如原理图符号、PCB布局、元器件封装和设计规则集。在Altium Designer (AD) 中,手动布线和交互式布线是PCB设计中常见的两种布线模式,它们提供了设计师对布线路径的直接控制,特别是在处理复杂或关键信号路径时尤为有用。在Altium Designer (AD) 中进行电路级仿真是一项重要的设计验证步骤,它允许设计师在实际制造之前对电路的行为进行预测和分析。

大模型大数据攻城狮的专栏 4783

(四)版本控制管理器之VSS

在上一篇《(二)版本控制管理器值CVS(下)》的文章中,我为大家介绍了CVS这个版本控制器,接下来我继续跟大家分享介绍下一个版本控制管理器--VSS,为什么要说这个版本控制器呢?早已过时的产品,并没有什么意义。想必大家会有这样的看法,但对于我来说,这个版本管理器是我刚踏入IT公司的第一个接触的软件控制管理器,意义还是有一定的,也是为了我最后对现代火热的 “Git”版本控制器写文章作铺垫。下面我...

weixin_30387339的博客 169

D19: OpenClaw 安全性配置指南

在 OpenClaw 的 30 天探索旅程中,我们已经探讨了邮件自动化(D18)。今天进入安全专题,我将分享一个至关重要的话题:OpenClaw 安全性配置指南。 随着 OpenClaw 深入工作流核心,它掌握了越来越多的敏感信息: API Keys(GitHub、飞书、Notion、Jira...) 企业数据(代码库、文档、聊天记录) 个人数据(日历、邮件、任务) 系统权限(文件读写、命令执行、网络访问) 安全不是可选项,而是必选项。一次配置失误可能导致: API Key 泄露 → 账号被盗用权限

刘一说的IT专栏 203

(转)Visual SourceSafe (VSS的使用方法)使用方法

1.    VSS概述 版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。Visual SourceSafe   是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图象文件、

shhy0410的专栏 4011

Vue3 - 完美解决 vite 打包后在本地浏览器直接打开运行,build 打包后双击 index.html 直接以 file 协议运行网站(资源、接口等正常访问,和部署到服务器运行效果一样)

vue3vite怎么支持file协议本地打开,vite打包文件如何支持files协议,支持双击即可打开网页,vue3vite打包后双击本地运行,vue3vite打包后怎么直接在浏览器双击打开访问,vite打包后显示空白,vite如何支持本地file协议打开,vue3vite打包后如何本地查看网站,vue3vite项目打包后本地启动白屏怎么办,vite打包后的代码如何在本地运行,vite+vue3打包在fIle本地index.html打开项目,打包后如何直接打开index.html文件,vue3

🏆 前端领域优质创作者 1万+

C#构建高精度预测模型:从数据预处理到模型部署的实战指南

【代码】C#构建高精度预测模型:从数据预处理到模型部署的实战指南。

墨夶的博客 1264
上一篇: 用VIM编写C/C++程序
下一篇: 一例递归的使用
AlfredLu
博客等级 码龄20年 16粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值