1

我的要求是关于明文交付:我想自动化交付(无人工干预/无交付失败)过程:交付时 - 如果有任何合并问题 1.如果 CC 能够合并文件,它的好处 - 让它合并,2 .如果CC无法合并-我不希望它失败,而是不要合并该特定文件(恢复该文件的合并),继续处理下一个文件。3.列出被跳过的文件,以便我以后可以手动合并。

我怀疑我们是否可以一步完成,但请告诉我这是否可行,并进行处理。

4

2 回答 2

0

最初我尝试使用以下命令来获取要合并的文件列表(文件名、活动被重命名以避免混淆):

cleartool findmerge 活动:a@\a_pvob 活动:b@\a_pvob -fcsets -ftag Accept_deliver_stream -type d -merge -log c:\temp\am.log

cleartool findmerge 活动:a@\a_pvob 活动:b@\a_pvob -fcsets -ftag Accept_deliver_stream -type f -print -log c:\temp\af.log

因此它将命令列表返回到 af.log 文件,当我尝试执行这些命令时,即使在一小时后它也会挂起,一个命令是:

cleartool findmerge M:\WM2011_DEV_INTG_WMOSBUILD_01\WM08\CPP\base\foundation\general\invupdates\InvUpdate.cpp -fver \main\Mainline_Int\WM08_Integration\WM09_Integration\WM2010_DEV_INTG\MAIN_WM_Int\WM2012_IND\9 -log NUL -merge -cq

于 2012-10-12T13:20:03.397 回答
0

您可以在合并期间单击“全部跳过”,但您必须以一种或另一种方式解决它们。
最简单的方法是确保首先不考虑合并这些文件(见下文)。

但是没有本地方法可以自动化您描述的过程:

交付时,如果有任何合并问题

  1. 如果 CC 能够合并文件,让它合并,
  2. 如果 CC 无法合并 - 我不希望它失败,而是不要合并该特定文件(恢复该文件的合并),继续处理下一个文件。
  3. 列出被跳过的文件,以便我以后可以手动合并。

您需要编写一个脚本来管理这些情况,即使在这种情况下,它也不适用于 UCM 合并(交付/变基),在所有文件合并之前不会完成(因此我的“红色箭头”建议如下)

该脚本基本上会采用cleartool findmerge -print的输出(以获取要合并的所有目录/文件),然后首先合并目录,然后一个接一个地合并文件,应用您的策略。


确保始终忽略某个文件

  • 对于当前合并
    可以通过显示版本树来模拟合并,右键点击源版本:“合并到”,选择“不合并,绘制合并箭头”(红色箭头,代表合并箭头,如如图所示)。
    这个想法是诱使当前交付者相信该文件已被合并,即使您在合并期间没有进行任何修改(您只是在源版本和目标版本之间绘制了红色或合并箭头)。

  • 用于未来的合并
    您可以更改与一种文件类型关联的合并管理器,以便从不合并它。
    请参阅“在 IBM Rational ClearCase 中处理二进制文件”,其中解释了如何创建的特殊类型管理器:

类型管理器

然后,您可以将该合并管理器应用于具有cleartool chtype.

于 2012-10-11T08:02:44.663 回答