VOB 中的 ClearCase 结帐分支

标签 clearcase

我是 CC 的新手,我有 Git 和 Mercurial 的背景,这可能就是为什么 ClearCase 让我如此困惑的原因。我被分配了一项任务,将最新的 CC 修订版迁移到 Git。问题是我无法在 CC 中检查除 main 以外的任何分支。

我有一个显示所有 VOB 的/main/LATEST 修订版的 View 。我假设是主分支的最新修订版。

element * CHECKEDOUT
element * /main/LATEST

现在我需要获取特定 VOB 中其他分支的列表。为此,我从该文件夹中的终端导航并运行

cleartool lstype -kind brtype -invob /%VOB_NAME%

我可以看到分支列表。如果我错了请纠正我,但我认为它只显示与 VOB(%VOB_NAME%) 相关的分支。

现在我需要检查分支。这样做的标准方法是什么。我尝试用类似的东西更新配置规范:

element * /%VOB_NAME%/%BRANCH_NAME%/LATEST but it doesn't seem to work.

很确定我做的不正确。 同样出于迁移目的,我需要自动执行获取分支机构和检查分支机构的步骤。我想更新配置规范以切换 View 中的分支需要一些时间并且可能是异步操作,那么有没有办法确定 View 何时完成更新?

或者也许有命令行选项可以为 View 中的特定 VOB 切换分支?

简而言之,这是我正在努力解决的问题:

  1. 我是否正确获取了 VOB 分支?
  2. 如何结帐特定分支?
  3. 有没有办法确定结帐何时完成?

谢谢

更新

好的,我尝试了@VonC 的建议,所以我的配置规范如下所示:

element * CHECKEDOUT
element * .../heine_1/LATEST
element * /main/LATEST

如果我猜对了,一个包含名为 heine_1 的分支的 VOB 应该检查那个特定的分支,其余的 VOB 将留在主分支上,但事实并非如此。当我在该 VOB 中运行 cleartool ls 时,它仍在主分支上。所有文件夹都以 Rule:/main/LATEST 为后缀。所以我猜它没有切换分支。

谢谢

最佳答案

原题和评论里有几个问题

首先解决配置规范问题...

元素规则的语法是: 元素{路径} {版本规则} {可选子句}

如果您需要特定于 VOB 的规则,您可以这样做: 元素\myvob\... ...\myvobbranch\LATEST 元素\myvob\...\main\LATEST -mkbranch myvobbranch

路径中的“...”表示“此位置及其下方的所有内容”。 “版本规则”中的“...”表示分支名称在末尾,因此这将匹配/main/myvobbranch/LATEST、/main/br1/myvobbranch/LATEST 等。

如果您在一个分支上工作,您通常希望新文件或工作出现在您正在工作的分支上,而第二行可以实现这一点。

configspec 中的所有内容都区分大小写,因此请注意“LATEST”不是“latest”。

由于 View 是为您创建的,所以我有理由确定它是一个动态 View 。如果它被映射到一个驱动器,它肯定是动态的。如果您需要确定,可以 CD 进入 View 的“工作区”并运行“cleartool lsview -pro -full -cview”并查看“属性”行。动态 View 的行将如下所示:

Properties: dynamic readwrite shareable_dos

关于直接问题:

  1. 是的,您正在正确获取分支列表。
  2. 默认情况下, check out 是使用 View 选择的版本完成的,您可以使用 cleartool checkout -branch {full branch path} {file name} check out 分支上的最新版本,或者cleartool checkout -version {version id} {file name} 在分支上检查除最新版本以外的版本。我不建议将其作为常规做法。 -branch 将导致 checkin 到元素的父分支。 -version 将需要添加一个要求来执行合并以完成 checkin ,这也将转到该版本的父分支。
  3. 命令完成后结帐完成。

一个很大的“新用户陷阱”是目录也是版本化对象。如果您要将文件添加到源代码管理,您需要记住 checkin 目录,以便其他人可以使用类似配置的 View 查看这些文件。如果您在未 check out 目录的情况下启动进程,ClearCase GUI 将此行为作为默认行为,但如果您事先明确 check out 该目录则不会。

关于VOB 中的 ClearCase 结帐分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914123/

相关文章:

testing - ClearCase:如何查找文件夹中每个文档的版本历史记录

clearcase - 什么是用于撤消检查是否相同的 Cleartool 命令?

hudson 中的 Java @extension - 何时以及为何

version-control - ClearCase:如何在配置规范选择的当前版本上查找未标记为 "LB"的文件

clearcase - 配置规范和负载规则差异

clearcase - 使用clearcase自动构建

git - Jazz RTC 的文件后备存储?基于数据库还是基于文件?

unix - Clearcase - 找出 View 的创建时间

python - Python3 'subprocess.check_output' 中的“cleartool find -print”返回空字符串

version-control - 从 Clearcase 迁移到 Team Foundation Server