自动交付合并

时间:2012-10-11 07:57:21

标签: clearcase clearcase-automation

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

我怀疑我们可以一步完成这件事,但请告诉我这是否可行,并且要做到这一点。

2 个答案:

答案 0 :(得分:0)

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

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

  

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

     
      
  1. 如果CC能够合并文件,请让它合并,
  2.   
  3. 如果CC无法合并 - 我不希望它失败,而是让我们不合并该特定文件(还原该文件的合并),继续下一个文件。
  4.   
  5. 列出跳过的文件,以便我以后可以手动合并。
  6.   

您需要编写一个脚本来管理这些案例,即使在这种情况下它也不适用于UCM合并(交付/ rebase),直到所有文件才能完成已被合并(因此我的“红色箭头”建议如下)

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


确保始终忽略某个文件

  • 当前合并
    您可以通过显示版本树并右键单击源版本来模拟合并:“合并到”并选择“不合并,绘制合并箭头”(red arrow,代表merge arrow,如this illustration)所示 我的想法是欺骗当前的交付,使其相信这个文件已合并,即使你在合并期间没有做任何修改(你只是在源版本和目标版本之间绘制了红色或合并箭头)。

  • 以后合并
    您可以更改与文件类型关联的合并管理器,以便永不合并它 请参阅“Handling Binary Files in IBM Rational ClearCase”,其中介绍了如何创建特殊类型管理器:

type manager

然后,您可以将该合并管理器应用于具有cleartool chtype的特定文件。

答案 1 :(得分:0)

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

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

cleartool findmerge活动:@ \ 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 -cqe