7.4. Branch

7.4.1. STARTEAM和CVS的分支不同点
7.4.2. 建立分支注意事项

7.4.1. STARTEAM和CVS的分支不同点

  1. CVS基于文件管理,不同分支的同一文件,即使内容不同,也都体现在同一个文件中; STARTEAM 建立分支是基于工程和数据库,两个分支的文件可以指到一个相同的物理文件, 也可以使不同的物理文件,这样两个分支的文件可以同步变化(float branch), 也可以分别独立控制(fixed branch);

  2. CVS分支用tag来管理,不同分支用 rtag/tag -b 来建立,并且不同分支打的 分支tag或tag,可以被其他分支看到。 STARTEAM 的分支不通过建立标签实现,而是生成另外的一套数据库。

  3. STARTEAM建立分支的方式:

    • 同一视图的不同目录

      另外建立一个目录作为分支的根目录,用ctrl+Drag将预建立分支的版本在 该目录建立共享,再选择BehavioràBranch on change;则在这些文件修改并checkin 时,会建立新文件而分支;也可以为方法1新创建的分支目录来建立视图来方便管理。

    • 不同的视图(建立分支视图)

      创建分支视图,在创建过程中选择Permit items to branch within this view, 来创建分支。分支视图的好处是,有自己独立的lable(tag)命名空间,不象CVS 只有一个TAG命名空间。

    • 推荐使用分支视图方式。

  4. CVS、STARTEAM都可以实现分支和主线和合并。

    CVS 命令行功能强大,可以通过命令行完成分支的管理;而 starteam 对视图的管理只能通过图形界面实现。

7.4.2. 建立分支注意事项

7.4.2.1. 通过分支视图建立
  • 建立新视图,在步骤一,选择文件分支,如图

    建立分支视图步骤一

    建立分支视图步骤一

  • 在步骤五,注意"Floating Configuration"和"Configure as ..."的区别

    建立分支视图步骤五

    建立分支视图步骤五

    一般情况下,请选择"Configure as ...",这样当建立完成后,程序即刻分支,否则 选择"Floating Configuration",子视图在没做修改前,一直和父视图同步,称为 "Variant View"。

    如果选择了"Floating Configuration",可以通过将分支视图的所有文件强制 Check In,即可。

  • 判断建立好的视图是否为分支视图,查看视图的属性。

    视图的属性

    视图的属性

7.4.2.2. 通过文件共享建立分支

建立一个目录作为分支的根目录,用ctrl+Drag将预建立分支的版本在该目录 建立共享,再选择Behavior->Branch on change;则在这些文件修改并checkin时, 会建立新文件而分支;

通过该方法建立的分支,分支文件仍和主干文件保持同步,直到分支的文件 被修改而不是主干文件修改,方建立分支。

如果想从一开始便建立分支,将分支文件强制 Check In,即可。