我的要求是关于clearcase交付: 我想自动交付(无人工干预/无交付失败)流程: 在交付时 - 如果有任何合并问题 如果CC能够合并文件,它的好处 - 合并, 2.如果CC无法合并 - 我不希望它失败,而是让我们不合并该特定文件(恢复该文件的合并),继续下一个文件。 3.列出跳过的文件,以便我以后可以手动合并。
我怀疑我们可以一步完成这件事,但请告诉我这是否可行,并且要做到这一点。
答案 0 :(得分:0)
您可以在合并期间点击“全部跳过”,但您必须以某种方式解决这些问题 最简单的方法是确保首先考虑这些文件的合并(见下文)。
但是没有本地方法来自动化您描述的过程:
交付时,如果有任何合并问题
- 如果CC能够合并文件,请让它合并,
- 如果CC无法合并 - 我不希望它失败,而是让我们不合并该特定文件(还原该文件的合并),继续下一个文件。
- 列出跳过的文件,以便我以后可以手动合并。
醇>
您需要编写一个脚本来管理这些案例,即使在这种情况下它也不适用于UCM合并(交付/ rebase),直到所有文件才能完成已被合并(因此我的“红色箭头”建议如下)
该脚本基本上将获取cleartool findmerge -print的输出(以使所有目录/文件合并),然后首先合并目录,然后逐个合并文件,应用您的策略。
确保始终忽略某个文件
当前合并:
您可以通过显示版本树并右键单击源版本来模拟合并:“合并到”并选择“不合并,绘制合并箭头”(red arrow,代表merge arrow,如this illustration)所示
我的想法是欺骗当前的交付,使其相信这个文件已合并,即使你在合并期间没有做任何修改(你只是在源版本和目标版本之间绘制了红色或合并箭头)。
以后合并:
您可以更改与文件类型关联的合并管理器,以便永不合并它
请参阅“Handling Binary Files in IBM Rational ClearCase”,其中介绍了如何创建新特殊类型管理器:
然后,您可以将该合并管理器应用于具有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