【问题标题】:deliver merge automatic自动交付合并
【发布时间】:2012-10-01 20:05:34
【问题描述】:

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

我怀疑我们能否一步完成,但请告诉我这是否可行,并按流程进行。

【问题讨论】:

    标签: clearcase clearcase-automation


    【解决方案1】:

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

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

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

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

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

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


    用于确保始终忽略某个文件

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

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

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

    【讨论】:

    • 我想我不清楚,让我清楚地描述我的问题:我想自动化交付(无人工干预/无交付失败)过程:交付时 - 如果有任何合并问题 1.if CC 能够合并文件,让它合并,2.如果 CC 不能合并 - 我不希望它失败,而是让不合并该特定文件(恢复该文件的合并),继续下一个 files.3 .列出被跳过的文件,以便我以后可以手动合并。
    • @vasu 我已经编辑了答案以解决您的具体问题,但我原始答案的最后部分仍然相关(在没有真正的方法来自动化该过程的情况下)
    • 非常感谢VonC,我可以试试这个选项。我还有一个疑问:使用“findmerge”是否可以打印/记录流(视图级别)的所有合并文件而不是活动活动
    • @vasu 是的,findmerge 将打印要合并的文件和目录(您甚至可以要求findmerge 合并 UCM 活动,它仍然会打印目录和文件)。但是,对于目录,它将停在那里(这意味着它不会列出目录中需要首先合并的任何文件)。当findmerge 列出要合并的文件时,这些文件是不需要合并的目录的一部分。
    • 再次感谢冯,我运行“findmerge -print”命令,它返回 .log 文件,当我尝试运行日志文件中的命令时,它只是挂起,我不确定原因,命令: cleartool findmerge *\InvUpdate.cpp -fver *\9 -log NUL -merge -cqe 输出:Needs Merge "*\InvMgmtImpl.cpp" [to *\27 from *\15 base *\26] Checkout "*\InvMgmtImpl.cpp" 的 cmets:就是这样,它挂起......
    【解决方案2】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 2012-04-10
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多