ClearCase指南-基础篇(连载一)
第1章 前言
. 本文档凡斜体字即代表高级内容、高级概念、或可选内容,仅作粗略了解用,暂不必深入理会。
. 如下如无特别说明,缩写“CC”即代表Rational ClearCase;缩写“VS”即代表Microsoft Visual Studio 2003/2005/Whidbey;缩写“VSS”即代表Microsoft Visual Source Safe。
. 对于代码开发人员,绝大部分配置管理工作是通过集成了ClearCase的VS.NET来进行的,除却部分操作,大部分操作在VS集成环境下进行应该更便当些。但本文档是CC的基础,也包含部分VS集成环境无法进行的操作,所以,开发人员必须仔细阅读本文档 – 单纯依靠集成了ClearCase的VS.NET是无法解决所有问题的。
第2章 ClearCase安装
2.1 准备工作
. 客户机器必须加入Windwos域,客户必须用Windows域账户登录到自己的机器(即登录到域中),你的ClearCase客户端才可以正常访问ClearCase服务器、你的ClearCase客户端才可以正常工作。ClearCase使用Windows账户作为自己权限管理的基础,切!
. 网络部分、WINS设置:网络连接、属性、TCP/IP、属性、高级、WINS、添加(A)…,加入2个WINS地址:192.168.8.4、192.168.8.6。否则安装可能失败,提示如下:
. 如果客户端是Windows 2000 Advanced Server,可能因为权限问题而无法创建视图,这是我们公司域服务器帐号同步故障所致。请先退出PDOMAIN域,然后再加入PDOMAIN域,问题应该可以解决。注:其他类型操作系统也可能出类似故障(有时报告“…与域服务器的信任关系失败…”),解决办法同此。
. 工作方便起见,你的Windows域账户应该同时是你本机的管理员(Administrators组)。
一切Ok,开始安装工作。
2.2 安装工作
. 注意:ClearCase必须在Visual Studio.NET(含Whidbey)、Rational Rose之后安装,否则ClearCase与以上2者的集成将失败。
. 注意:以后如果需要重装Visual Studio(如Whidbey版本升级)或Rose,ClearCase也必须卸掉重装、同样是后装ClearCase!
. 注意:VS.NET+ClearCase安装、配置好后,如果因为目种原因又安装了Source Safe,则VS.NET+ClearCase的集成关系失败、自动变为VS.NET+Source Safe的集成关系。如欲返回使用VS.NET+ClearCase集成,则必须卸载重装ClearCase。
. 注意:关于原Source Safe客户端:
1、 对于Visual Studio(平台技术部、应用开发部),客户端原Source Safe可以保留、不必卸载、以备浏览原Source Safe库;
2、 对于Rose(应用设计部),客户端原Source Safe可以暂时保留,以备浏览原Source Safe库;当Source Safe到ClearCase的迁移工作彻底完成后,最好卸载客户端Source Safe,否则Rose与ClearCase的绑定可能(而非绝对)会受到干扰,每次启动Rose都需要重置Rose Add-In Manager,以重新绑定到ClearCase! ---- 目前来看,部分人机器环境可能有本绑定毛病。
. ClearCase Client安装启动路径:\\uf-net\ClearCaseNetSetup,启动Setup.exe......可能遇到的、需要干涉的步骤及解决如下:
1、 License Agreement…步骤:当然选择I accept…、我同意……
2、 最后一步,提示是否阅读有关及是否要进入Rational有关网址,不必要,勾掉2个CheckBox。
3、 除却安装路径(默认:c:\program files\rational\clearcase)可以修改外,其他配置一律不得修改、须保持默认值!
. 安装完ClearCase后必须重新登录(即Windows注销操作)---- 最好重启机器、以刷新你的权限到ClearCase Server,否则不能操作ClearCase客户端!
第3章 各部目录结构
特别提醒:在ClearCase Explore中,你可以看到自己熟悉的目录、文件等概念。但其实,其中有些结点、目录是特殊的ClearCase后台对象(视图名、VOB、Component),你不要试图在CC Explore或Windows Explore中对这些特殊的CC Object进行删除、移动、重命名等变更操作,否则肯定只会自讨苦吃!这些概念你不必太了解,记着别变更之即可。
这些概念在CC Explore中View的节点等级关系为:视图名\VOB\Component\普通目录、文件。即Root节点代且仅代视图名,1级节点代且仅代VOB,2级节点代且仅代Component,其他为普通目录、文件。客户端只能对Component之下的常规目录、文件作入库、Check Out、Check In、重命名、删除等操作。
这些概念在CC Explore中的体现参下节:“平台技术部目录结构”。
3.1 平台技术部
3.2 应用开发部
3.3 应用设计部
ClearCase指南-基础篇(连载二)
第4章 ClearCase基础
鉴于大家多少已经使用过一段时间ClearCase或是其他的版本控制工具(如Visual Source Safe、CVS等),关于软件配置管理SCM的基础概念如Working Space(工作空间,Source Safe叫Working Folder、CC叫View – 视图)、Add to Source Control、Check Out、Check In、Get Latest Version(Source Safe)/Update View(ClearCase)、…等,此处只作简单介绍或即Pass,不作深入讲解。
4.1 ClearCase模式
ClearCase一共有2种模式:Base模式、UCM模式。不必深究、不必理解、不必区分此2种模式。
我们使用的是UCM模式。
4.2 受控元素
ClearCase管理2种对象:目录,进入CC后称Directory Version;文件,进入CC后称File Element。2者在CC中统称为Element(元素)。
注意:对于个人的私有文件、目录,CC Explore中标示为“Private”类型,CC对私有文件/目录不做任何包装、限制及特殊处理。在ClearCase Explore(CC客户端工具)中也可以对之作常规操作如重命名、删除、移动等,如同Windows Explore中一样、没有任何例外!
4.3 静态视图
Static View:静态视图,就如Source Safe,本地有一套CC服务器上文件/目录的副本,可离线工作。静态视图下,他人为看到你的Check In成果,必须在自己的客户端执行一下Update View命令。
创建视图时(参后续有关章节),记着让视图名字前缀上你的大名,以便于管理!
4.4 动态视图
Dynamic View:动态视图,相对Source Safe等版本控制工具,动态视图概念为CC所独有。动态视图下,本机通过网络驱动器来直接访问CC服务器上的文件/目录,本机没有CC服务器上文件/目录的副本,一旦脱离CC服务器环境即无法工作,即不能离线。一旦你Check In,他人如果工作在动态视图下,可立即看到你的最新成果,他人无需执行Update View命令、Refresh(F5)一下即可。同理,如果你使用的是动态视图,无须Update View、Refresh一下你即可看到他人的最新提交成果。
注意:对于动态视图,CC会在客户端创建一虚拟驱动器(M、X、Y、…),Windows Explore下访问该虚拟驱动器,将会看到该视图的完整目录、文件结构,与CC Explore(后续章节介绍)中看到的一样。甚至,……
创建视图时(参后续有关章节),记着让视图名字前缀上你的大名,以便于管理!
4.5 活动:Activity
ClearCase中有一个重要的概念:Activity ----活动。
签出(Check Out)一个文件或目录、把一个文件或是目录Add to Source Control(加入版本控制库)前,必须首先建立一个活动(可以使用一个固有的活动,也可以New一个新的活动),用于记录你的后续操作之用(未来,通过活动可以反查你对哪些文件/目录作过哪些修改)。在该活动基础上所做的一切修改称之为该活动的“变更集”。
1、 活动命名规范:
a、 “人名”用Windows域帐号;“日期”为YYMMDD格式。
b、 代码类:人名__模块_活动简述_日期,如:zpw_Workflow_条件转移接口定义_040205
c、 PubRef共享引用、资源文件提交:PubRef_人名__模块_日期_......,如:PubRef_Lyguo_Workflow_040324_WfEngine表李玉国提交工作流的Engine组件。
d、 文档类:Doc_人名__模块_日期_......,如:Doc_fjz_Service_050124_设计文档
e、 ……
2、 定义活动时,不仅应该命名规范、有意义,还应当给予适当注释。
第5章 CC客户端:ClearCase Explore
本章包括如下内容:创建视图、配置项入库、签出、签入、更新视图、活动创建。
通过本章学习,普通客户端将可以借助ClearCase实现常规的配置管理工作。当然,借助CC与VS、Rose的集成功能可能更方便些,但严格来说,CC与VS、Rose的邦定集成不属配置管理范畴!
常规人员和CC打交道的工具只有一个:ClearCase Explore ---- CC的客户端GUI工具。
如下为CC客户端、ClearCase Explore主界面:
通过CC Explore,不仅可以实现配置管理的常规操作(创建视图、配置项入库、签出、签入、更新视图、…),还可以直接进行普通文件/目录的常规操作:创建、删除、移动、重命名等。
5.1 创建视图
客户端必须首先建立视图才能展开日常配置管理工作。
客户端通过ClearCase Explore.Toolbox\Base ClearCase\Create View实用工具,把服务器端一个配置好的ClearCase Project所包含的有关文件、目录元素下载到本地,建立起自己的视图。
5.1.1 步骤零:创建个人View Storage
CC中,每个View都必须关联一个View Storage,服务器需要通过View Storage与客户端通信。
View Storage很简单,就是一个普通的Windows共享目录。每个人都需要在自己的机器上创建自己的View Storage共享目录(共享权限应仅对自己开放),创建视图时,输入该共享路径即可!
方便起见,所有人的ViewStorage的共享目录名字统一为:“ViewStorage”:
5.1.2 步骤一:启动Create View
启动Create View实用工具(ClearCase Explore、“Toolbax”Tab页、“Base ClearCase” Panel、“Create View”Button):
5.1.3 步骤二:选择Project
选中目标Project(本步骤及后续步骤截图为讲解用,实际工作中,需要加入或基于合适的CC Project如:平台技术:U9.UBF.***、应用设计:U9.Design.***、应用开发:U9.App.***)
,下一步继续:
ClearCase指南-基础篇(连载三)
5.1.4 步骤三:开发流、整合流
关于开发流(Development Stream)、整合流(Integration Stream):
开发流、整合流为服务器端概念,可简单理解为服务器上的2个独立存储空间,特定阶段、特定版本集的文件、目录即存放在流中。
开发流概念用于分支、隔离开发用,目前不使用,所以要勾掉“Create a development stream”
5.1.5 步骤四:视图类型
决定视图类型:选择生成静态整合视图(我们暂不使用开发流,也就无开发视图类型选择问题,所以下截图上半部开发视图部分为空),下一步继续:
5.1.6 步骤五:View本地存放路径及View Storage设置
本步骤非常关键,请大家务必重视:
默认视图名字前系统会自动前缀上你的名字,便于监控、管理,不要删除,切切!
客户端每建一个视图,服务器端即会作相应登记(Register)。
如果你是第一次基于某个Stream(我们的例子是U9.UBF.Mailline流)创建一个View,则此次视图名字应该是形如“zpw_U9.UBF.Mainline_int”、名字中无“_2、_3、_4、…”等字样。
如果你以前基于某个Stream已经创建过一个View,则此次视图名字中会包含创建次数信息、名字中将包含“_2、_3、_4、…”等字样(如本例截图)。对同一个流(CC后台存储区)创建多个视图虽然不违法,但可能给你带来意想不到的麻烦 – 除非你出于一定的目的有意识这样做:你的本机可能有多个副本,而你可能无意识地选择工作于任何一个View,多处修改代码还不自知,等到知道,可能已经很难处理了!
注:第一个截图中,点击“Advanced Options…”按钮后,第二个截图中点击“Browse…”按钮,找到你的View Storage共享目录(也可以在上View Storage文本框直接输入共享目录路径如:\\zpw\ViewStorage),当找到一个合法的共享目录后,View Storage TextBox中内容自动改变为View名字(如上图的zpw_U9.UBF.Mainline_2_int),不要修改之,级次Ok后返回确定即可……
5.1.7 步骤六:Choose Component
Component系CC后台概念,简单理解为目录树即可。选择你需要访问的Component(一般是全部选择),然后继续:
5.1.8 步骤七:盘点结果
一切Ok……,转ClearCase Explore,会发现View\下增加了一个与你所Join的Project同名的选项卡(我们的例子中叫“U9.UBF.Mainline”)。其中建有我们刚刚建立的整合视图(zpw_U9.UBF.Mainline_int):
视图创建完毕,你就(才)可以基于视图展开常规的配置管理工作:进配置库、签出、签入、更新视图等工作。
5.2 配置项入库:Add to SourceControl
视图创建完毕,该是配置项入库的时候了。所谓配置项入库,即把本机私有文件、目录加入ClearCase使之变为ClearCase受控元素。步骤如下:
注:命令行有批量入库命令,很简单,略。
Windows Explore中Copy需要入库的配置项。
ClearCase Explore中Paste到目的地(Component根下或Component的某子孙目录下,普通目录可以在CC Explore中直接创建)
选中需要入库的文件或目录(可多选),执行右键菜单“Add to Source Control”…如下图,一次把2个文件加入ClearCase使受控:
弹出窗体中需要选择一既有活动或可创建一新的活动,以关联本次动作。最后确定即可。如下图:
注意:
A. 把一个目录下任何一个Private文件加入ClearCase后,该目录均将同时自动加入ClearCase变为受控元素 – 目录私有的话。
B. 把一个目录Add to Source Control…后,其中子目录及文件均不会受影响 – 如为Private则仍将保持Private状态。
C. 子影响父,父不影响子:一个文件如加入ClearCase,其所在父目录必被自动加入ClearCase(至于爷爷目录,CC不考虑处理);反之则No。
D. 对于代码类或Rose模型,在Visual Studio、Rose中借助与ClearCase的集成功能可实现批量入库(及自动过滤),应该更简单些。后续章节专题介绍。
ClearCase指南-基础篇(连载四)
5.3 签出:Check Out
Check Out出ClearCase受控元素,然后修改之,最后Check In提交之,其他人员通过Update View命令即可获得该元素的最新结果(仅静态视图需要,动态视图不必Update View)!
VS、Rose中,有相应ClearCase集成,功能一样,专题介绍。
Check Out一个文件,如下图,既可以继续使用一个既存的活动,也可以使用New按钮定义一个新的活动(很简单的一个窗体,略):
Reserved CheckBox:独占式、非多签出,只要你不签入提交,其他人就不能再签出修改该文件、目录。
特别提醒:除非实在有必要,绝对不要Check Out出来一个(普通)目录,除非你能记着及时Check In之,否则可能导致很多文件、目录的状态异常,很难处理。
5.4 签入:Check In
提交个人成果到服务器。
批量提交:寻找整个视图所有被修改(正常修改及Hijacked文件)的文件,以实现批量签入提交。涉及Find Modified Files、Find Checkouts右键快捷命令。
选择提交:如果只是想提交个别文件、目录,可选中目标,然后右键执行Check In……本手册不做详细讲解。
VS、Rose中,有相应ClearCase集成,功能一样,专题介绍。
5.4.1 Hijacked文件
本节非常重要,所有人必须重视:
文件即未经CheckOut即被强制修改,ClearCase即置其为Hijacked状态。Hijacked文件将影响到Update View等操作,具体参随后章节。
文件变成Hijacked状态有2大类原因:
不正常、非故意、不小心所致:忘记Check Out,Windows Explore中直接打开强制修改(通过相应工具如Word改文件内容 或是 使用Copy/Paste命令覆盖原文件)。
正常、故意所致:如网络断、回家、出差在外,无法访问CC Server,而修改工作需要继续,又希望未来提交强制修改结果。
对Hijacked文件可以有2种处理办法:认可强制修改,先转Check Out接着再Check In;放弃该强制修改:Undo Hijacked File。
5.4.2 Find Modified Files
5.4.2.1 Find Modified Files步骤一:查找
对整个视图寻找所有被修改(正常修改及Hijacked文件)的文件(注:必须选中视图名,否则右键菜单中无“Find Modified Files”命令!):
5.4.2.2 Find Modified Files步骤二
查找结果如下(我们的结果中有Hijacked文件(红线提示部分)):
5.4.2.3 Find Modified Files步骤三
Close上图后进入如下界面,提示有Hijacked文件,要否先直接CheckOut出来。因为不好判断该非法修改(没有CheckOut的修改)是否有意义、值得接受,先选择No(小心,默认是Yes!!!),此时进入Find Modified Files汇总界面(下图后面界面)。左侧CheckdOut文件夹指示被Check Out出来并被修改过的文件集合(存在于右侧),Hijacked文件夹指示未经CheckOut而被非法修改的文件集合(点该文件夹后,所有Hijacked文件将刷新于右侧):
因为下节还有FindCheckouts操作,二者的Find结果的处理方法一样,所以对Find结果的具体处理参下下节。
5.4.3 Find Checkouts
(Find Modified Files命令)Find不到的CheckOut文件处理。
有时候还有一些被Check Out(可能没有修改的)文件通过上述Find Modified Files方式竟然找不到(以前ClearCase的Bug???!!!)!为此,必须用其他方式继续查找遗漏的(?)Check Out文件。查找方法是选中视图的第一级目录(而非视图本身!),然后执行右键Find Checkouts命令 –〉Ok –〉进入一个Find Checkouts窗口,类同于上Find Modified Fiels命令结果窗口,处理手法完全相同,略:
5.4.4 Find结果处理—有修改CheckOut文件
普通CheckOut文件有2种处理方式,Check In(修改认同、提交)或Undo CheckOut(放弃该修改版本),2个命令均可处理单个文件或批量处理:
5.4.5 Find结果处理—未修改CheckOut文件
还有一种CheckOut文件比较特殊,就是Check Out出来了,但是没有修改,如此有2种处理办法:强制性Check In(增加一个和前版本完全相同的版本,浪费)或是Undo CheckOut。为此需要先知道它有没有被修改,然后才能作决定,问题是没有直观办法知道它到底有没有被修改!所以,正确做法是如上面的界面一样先Check In所有Check Out文件,对于没有修改的文件Clear Case将在Check In的过程中提示你该文件内容同于上一个版本,不能Check In(下图),则确定之,继续。当所有Check
In完毕后,上图Find Modified Files的结果窗体将刷新,剩下的仍为Check Out状态的文件即为无实质修改的文件,全部选中,Undo Check Out即可!
如果你足够懒,不想如此麻烦,不管三七二十一所有Check Out文件均想Check In进去,也可以,方法是Check In时(会弹出一个选项设置窗体)选中一个选项,参下图:
5.4.6 Find结果处理— Hijacked文件
对Hijacked文件可以有2种处理办法:
认可强制修改,先转Check Out接着再Check In。
放弃该强制修改:Undo Hijacked File。
5.5 更新视图:Update View
仅限静态视图。对于动态视图,系统会自动定时更新到本地(特殊文件保存),Refresh一下即可。
更新整个视图:点击CC Explore中的文件夹窗格,执行右键菜单“Update View…”命令。
更新视图的某个目录树:点击该目录树的根,执行右键菜单“Update…”命令。
5.6 文件/目录的删除、移动、重命名
务必重视:对文件、目录的此3大操作只能在CC Explore中进行,绝对不能在VS、Windows Explore中进行,否则肯定出严重问题,切!切!
此3大操作不必你自己签出、签入有关,系统会自动执行。
重命名、删除:CC Explore中有相应右键快捷菜单,直接执行、提示确认即可。
移动:CC Explore中有相应右键快捷菜单,直接执行、提示确认即可。需要注意的是,移动必须是自右向左拖、自“浏览器窗格”拖向“文件夹窗格”,而无法自“浏览器窗格”拖向“浏览器窗格”,更无法自“文件夹窗格”拖向“文件夹窗格”。
5.7 版本树、版本比较:Version Tree
右键快捷菜单有,高级知识、略。
5.8 版本历史查看、比较:History
右键快捷菜单有,高级知识、略。
5.9 删除视图有关
一个视图的信息存储在2个地方:客户端、服务器。欲彻底删除视图,只能在ClearCase Explore中选中视图,然后执行右键快捷命令“Remove View”(而非“Remove Page”)来达到目的!
务必注意:删除视图后,本机视图副本也将彻底被删除、包括里边的私有文件、目录,务必三思!
绝对禁止通过Windows Explore直接删除本机视图副本,否则遗患无穷!
重度提醒:卸载ClearCase,重装机器、退还机器之前,务必记着先删除机器上有关ClearCase视图,否则也是遗患无穷!
再次提醒:删除视图后,本机View Storage共享目录下该视图的相应.vws目录也将一并被CC干掉,绝对禁止通过Windows Explore直接删除View Storage共享目录及其下任何内容,否则后患无穷!
禁止在CC Explore中执行“Remove View Shortcut”命令,有隐患!
删除视图前必须检查当前视图中是否有处于检出(CHECKOUT)状态的文件(可通过Find Checkouts工具实现);如有,则在将这些文件checkin或undo checkout后方可删除视图。
文章出自:http://www.cnblogs.com/DiYuShe/archive/2012/06/14/2548174.html