我的要求是关于明文交付:我想自动化交付(无人工干预/无交付失败)过程:交付时 - 如果有任何合并问题 1.如果 CC 能够合并文件,它的好处 - 让它合并,2 .如果CC无法合并-我不希望它失败,而是不要合并该特定文件(恢复该文件的合并),继续处理下一个文件。3.列出被跳过的文件,以便我以后可以手动合并。
我怀疑我们是否可以一步完成,但请告诉我这是否可行,并进行处理。
我的要求是关于明文交付:我想自动化交付(无人工干预/无交付失败)过程:交付时 - 如果有任何合并问题 1.如果 CC 能够合并文件,它的好处 - 让它合并,2 .如果CC无法合并-我不希望它失败,而是不要合并该特定文件(恢复该文件的合并),继续处理下一个文件。3.列出被跳过的文件,以便我以后可以手动合并。
我怀疑我们是否可以一步完成,但请告诉我这是否可行,并进行处理。
最初我尝试使用以下命令来获取要合并的文件列表(文件名、活动被重命名以避免混淆):
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
您可以在合并期间单击“全部跳过”,但您必须以一种或另一种方式解决它们。
最简单的方法是确保首先不考虑合并这些文件(见下文)。
但是没有本地方法可以自动化您描述的过程:
交付时,如果有任何合并问题
- 如果 CC 能够合并文件,让它合并,
- 如果 CC 无法合并 - 我不希望它失败,而是不要合并该特定文件(恢复该文件的合并),继续处理下一个文件。
- 列出被跳过的文件,以便我以后可以手动合并。
您需要编写一个脚本来管理这些情况,即使在这种情况下,它也不适用于 UCM 合并(交付/变基),在所有文件合并之前不会完成(因此我的“红色箭头”建议如下)
该脚本基本上会采用cleartool findmerge -print的输出(以获取要合并的所有目录/文件),然后首先合并目录,然后一个接一个地合并文件,应用您的策略。
确保始终忽略某个文件
对于当前合并:
可以通过显示版本树来模拟合并,右键点击源版本:“合并到”,选择“不合并,绘制合并箭头”(红色箭头,代表合并箭头,如如图所示)。
这个想法是诱使当前交付者相信该文件已被合并,即使您在合并期间没有进行任何修改(您只是在源版本和目标版本之间绘制了红色或合并箭头)。
用于未来的合并:
您可以更改与一种文件类型关联的合并管理器,以便从不合并它。
请参阅“在 IBM Rational ClearCase 中处理二进制文件”,其中解释了如何创建新的特殊类型管理器:
然后,您可以将该合并管理器应用于具有cleartool chtype
.