1 、什 么 是 软 件配置管理
软 件配置管理是指通 过执 行版本控制、 变 更控制的 规 程,以及使用合适的配置管理 软 件,来保 证 所有配置 项 的完整性和可跟踪性。配置管理是 对 工作成果的一 种 有效保 护 。
2 、 为 什 么 需要配置管理
如果没有 软 件配置管理,最大的麻 烦 是工作成果无法回溯。随着工作的 进 展新的程序覆盖了老的程序,当突然 发现 新程序有 问题 而老程序正确 时 怎 么办 ?那只能重写老的程序来覆盖新的程序。 过 一段 时间 又 发现 原来的老程序有 问题 ,而解决方法在原来的新程序中 …… 您是不是快要 发疯 了。
为 了避免成果被覆盖,包括我自己在内的很多人早期采用手工管理版本的方式,例如当一个新版本 产 生 时 用当 时 的日期来命名文件 夹 ,然后再 复 制一下以后的修改在 复 制的文件 夹 内 进 行, 这样 上一个版本就被保存下来了,周而 复 始不同的版本不会被覆盖。 虽 然 这种 方式可以从某 种 程度上解决版本的回溯 问题 ,但他存在的缺点是 显 而易 见 的:第一点如果保留 结 果 过 于 频 繁,将会 导 致 产 生大量的有着重 复 内容的文件 夹 , 庞 大的物理空 间 ,管理起来很麻 烦 ;如果保留旧版本的 时间间 隔太 长 ,可能 产 生某些有用的老程序无法回溯。 假如 一个程序 只有几十兆, 经过 一年的 开发 各版本累 计 到 1G 。第二容易 产 生版本的混乱,如果是 团队开发软 件, 这种简单 的方法更 难 解决 问题 的本 质 了。
3 、人的 问题
配置管理的方法是成熟的,而且相 应 的 软 件工具也是成熟的,基本上不存在看不懂、不会用的 问题 。配置管理的 执 行效果如何,完全是事在人 为 。妨碍配置管理的主要 问题 是人 们 嫌麻 烦 和 侥 幸心理作怪。
在没出乱子的情况下, 执 行版本控制看起来有些麻 烦 。 每 次修改工作的 时 候 总 是要 Get Latest Version ,接着 Check Out ,修改完后又要 Check In ,多做了三 步 。其 实这 三 步 加起来也就十几秒 钟 ,而且不 费脑 子,根本没有添加多少麻 烦 , 仅仅 是个人感 觉 不爽而以。然而不 执 行版本控制的 话 ,万一 发 生工作成果被覆盖或 丢 失等 问题 ,麻 烦 就大了。
4 、 软 件配置管理 规 范
软 件研 发 和管理 过 程中会 产 生 许许 多多的工作成果,例如文档、程序和数据等,他 们 都 应 当妥善地保管起来,以便 查阅 和修改。如果把所有文件一股 脑 的塞 进计 算机里,那 么 使用起来很麻 烦 。
凡是 纳 入配置管理范畴的工作成果 统 称 为 配置 项 配置 项 主要有两大 类 :一 类 是属于 产 品的 组 成部分,例如需求文档、 设计 文档、源代 码 、 测试 用例等等;另一 类 是在管理 过 程中 产 生的文档,例如各 种计 划、 报 告等。
每 个配置 项 的主要属性有名称、 标识 符、文件状 态 、版本、作者、日期等。配置 项 及 历 史 纪录 反映了 软 件的演化 过 程。
基 线 由一 组 配置 项组 成, 这 些配置 项 构成了一个相 对稳 定的 逻辑实 体。基 线 中的配置 项 被 冻结 后,不能在被任何人随意更改。基 线 通常 对应 于 开发过 程中的里程碑。通常将交付 该 客 户 的基 线 称 为 一个 Release , 为 内部 开发 用的基 线 称 为 一个 Build 。
版本控制的目的是按照一定的 规则 保存配置 项 的所有版本,避免 发 生版本 丢 失或混乱等 现 象。配置 项 的状 态 有三 种 : “ 草稿 ” 、 “ 正式 发 布 ” 和 “ 正在修改 ”
配置 项 的版本号与配置 项 的状 态紧 密相 关 :
( 1 ) 处 于 “ 草稿 ” 状 态 的配置 项 的版本号格式 为 : 0.YZ
( 2 ) 处 于 “ 正式 发 布 ” 状 态 的配置 项 的版本号格式 为 : X.Y 。
一般只是 Y 值递 增,当 Y 值 到达一定的范 围时 X 值 才 发 生 变 化。
( 3 ) 处 于 “ 正在修改 ” 状 态 的配置 项 的版本号格式 为 : X.YZ 。
一般只增大 Z 值 ,当配置 项 修改完 毕 ,状 态 重新 变 成 “ 正式 发 布 ” 时 ,将 Z 值变为 0 ,增加 X.Y 值 。
5 、常用的配置管理 软 件
A )、自从20 世 纪 80 年代后期研制并完善了“ 增量存 储 算法” 后配置管理工具的春天便 开 始了,目前国内常用的配置管理工具大概有SourceSafe 、CVS 和ClearCase 。
SourceSafe 是Micrsoft 公司推出的一款支持 团队协 同 开发 的配置管理工具,是Visual Studio 的套件之一。因 为 其短小精悍,又 继 承了微 软 集成 销 售的一 贯 作 风 用 户 可以相 对 于免 费 的价格得到,用 户 量 绝对 是第一位。
SourceSafe 简单 易用人 们 在使用配置管理工具 时 候,80 %的 时间 只是用Add,Check in,Check out 等区区几个功能。
SourceSafe 的主要局限性:只支持WINDOWS 不支持异构 环 境下的配置管理; 对 INTERNET 支持不 够 完善。
B )、在 详细 介 绍 SourceSafe 首先 简单 概述一下它的基本机制。SourceSafe 是使用服 务 器、本地机的概念来 进 行操作的,它 认为 所有需要操作的文件都存在服 务 器版本文件和本地机版本文件,无 论 您的SourceSafe 的架构是服 务 器客 户 机形式 还 是个人 单 机版形式,它的机制都是 这样 。 用 户 所用的修改都是在本地机上完成的,修改完成后再上 传 服 务 器。 单 机版也是 这样 操作。我 们 一定要明确两个版本后再来分析。
服 务 器版本文件是一个 绝对 受配置管理 软 件限制的文件,用 户 只能通 过 SourceSafe 的 规 定的 权 限和操作方法修改它,因 为 它并不是您一个人的,它是大家的。本地文件是一个基本不受限制的文件,您可以象操作本地文件一 样 操作它。
SourceSafe 由Visual SourceSafe 6.0 Admin 、Microsoft Visual SourceSafe 6.0 、Analyze VSS DB 、Analyze & Fix VSS DB 四部分 组 成。
C )、Analyze VSS DB 、Analyze & Fix VSS DB 两个工具不是很常用,前者用于 检查 SourceSafe 数据 库 文件的完整性,后者主要是修正SourceSafe 数据 库 文件存在的 错误 。
D )、Visual SourceSafe 6.0 Admin 的功能 类 似于win2k 的用 户 管理器, 软 件配置管理人 员 用它来分配用 户 和 设 定相 应 的 权 限。
管理 员 的管理操作一般都集中在Visual SourceSafe 6.0 Admin 中,系 统 中只有一个系 统 管理 员 Admin 可以登 陆 到此程序中 进 行管理工作,一般 刚刚 安装的系 统 中此用 户 的密 码 缺省 为 空。 而且系 统为 Admin 这 个用 户 保留的一切 权 力,不可更改。
数据 库 的 创 建 这 个操作必 须 在服 务 器上 执 行,因 为 通 过 客 户 端 创 建数据 库 的操作,只是在客 户 端的机器上 创 建的数据 库 , 这 个数据 库 往往只能 单 机使用。同 时 要必 须 注意,由于 VSS 是通 过 WINDOWS 的网 络 共享来完成服 务 器端受控版本文件的共享,因此 VSS 服 务 端的数据 库 必 须 建立在服 务 器的一个完全共享的目 录 之中。否 则 ,客 户 端将无法 获 得数据 库 中的文件。
数据 库 的 备 份与恢 复 , 备 份数据 库 或者其中的一个 项 目,点 击 tools-archive projects… 菜 单弹 出 对话 框,根据提示一 步步进 行 备 份,最后会形成一个 扩 展名 为 *.ssa 的 备 份档案文件。
如果要从档案文件中恢 复 VSS 数据 库 中的文件数据,点 击 tools-restore projects 菜 单 根据提示一 步步 完成数据恢 复 工作。其中,在恢 复过 程中,可以 选择 恢 复为 原有工程,也可改 变 恢 复 成其他工程目 录 。
E )、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 那 么 您也有 权 使用相同的用 户 名 进 入其他的 软 件。