我正在使用ClearCase 7.1.2并正在开发一个项目。在我出现之前的某个时刻,有一个分支(让我们称之为'飞行员')最终成为生产代码而主树被遗忘。在这一点上,我需要从飞行员分支实现一个新功能,但遇到了问题。
我已经建立了我的分支,并且在对现有文件进行更改时似乎都很顺利但是当我执行mkelem
时,新文件最终在main上。我想要飞行员。配置规范对于这个或什么组合的命令可以拼凑起来以实现这一目标是什么?
现在我的配置规范看起来像这样(从内存开始):
elements * CHECKEDOUT
elements * main/0 -mkbranch pilot
elements * main/pilot
elements * main/LATEST
一旦我看到我在那里发生了什么,我就会更新。
答案 0 :(得分:2)
您可以在config_spec man page以及Config spec rules for elements in subbranches找到示例。
您需要做的是首先在pilot
分支上设置标签(即,在pilot
分支上的视图中显示的所有元素),以便从固定的时间点开始制作新版本。
然后:
elements * CHECKEDOUT
elements * .../my_feature_branch/LATEST
elements * LABEL_ON_PILOT -mkbranch my_feature_branch
elements * main/LATEST -mkbranch my_feature_branch
尝试从另一个分支的“最新”版本进行分支是真的不推荐:你根本不知道你在新分支上的工作。
答案 1 :(得分:1)
我想我会期待看到像这样的cspec:
elements * CHECKEDOUT
elements * .../my_feature_branch/LATEST
elements * .../pilot/LATEST -mkbranch my_feature_branch
elements * /main/LATEST -mkbranch my_feature_branch
最后一行的-mkbranch
会回答您的问题。第2行确保您使用功能分支。第3行的更改应该比第2行更好(除非CC 7.1.2有一些新的缩写,允许您的旧版本工作;我似乎使用7.0.x)。
请谨慎对待我的这个答案 - 请answer VonC了解另一种方法。显然,VonC对此方法存在一些问题。然而,我工作的团队多年来一直在这样做(自1994年左右以来),而没有遇到让VonC如此紧张的问题。此外,将完整标签应用于构成我们产品组的VOB集合需要大约12个小时(大约有十几个大型多站点VOB,在猜测中)。我和我们的CC大师一起检查了时间,他评论说我们很快就会转移到UCM,部分原因是这个标签问题。
因此,使用小型VOB的最佳现代实践可能会使用专门创建的标签作为功能分支的起点,但并非所有系统都使用它们。根据经验,标签不是必需的。我不确定其他什么最佳做法' (或者是最糟糕的做法,以弥补最佳做法的不足),我们可以避免遇到问题。