cleartool - 合并单一过程

时间:2012-11-28 07:03:50

标签: merge clearcase cleartool

我正在尝试将分支Nov12中的单个proc合并到main。在搜索此参考后,我发现以下内容应该将分支的副本合并到主

Merge version 1 on the branch into the "latest" version in the "main" branch:
ct merge -to new_update.sql -insert -version /main/Nov12/1

运行之后,我得到输出为

Trivial merge: "new_update.sql" is same as base "/home/mtk/ct/new_update.sql@@/main/Nov12/0".
Copying "/home/mtk/ct/new_update.sql @@/main/Nov12/1" to output file.
Output of merge is in "new_update.sql.merge".

new_update.sql.merge包含本地磁盘上的完整proc,它不在clearcase版本控件中。我做了ct lsh来验证这一点。

我希望它应该在main上创建一个新版本并将更新后的副本放入其中,即/ main / 9尚未存在。最新的/main版本为8。

那么,如何合并单个proc。我们是否需要从main检出副本,然后运行上面的命令。请告诉我,我不清楚这一点。我需要一个命令行解决方案,因为图形替代方案不可用。

2 个答案:

答案 0 :(得分:2)

我认为麻烦的是你没有指定输出的去向,所以它被放在文件new_update.sql.merge中,假设当前视图的cspec设置为你的目标分支,{{ 1}}。 (如果您的视图未引用/main分支,则表示您正在合并错误的视图。)您现在可以执行以下操作:

/main

然后办理登机手续,假设您或ClearCase进行了必要的结账。


这不是我通常合并的方式 - 但这并不是说它无效。我使用的机制是mv new_update.sql.merge new_update.sql ,然后运行日志文件中的命令。我有两个视图,一个带有11月分支的cspec(视图标签可能是ct findmerge),另一个带有主分支的cspec(当前视图)。

nov12

输出可能包括以下行:

ct findmerge -ftag nov12 new_update.sql

这将生成一个名称为

的日志文件
Needs Merge "./samizdat.c" [(automatic) to /main/XYZ.1.70/0 from /main/XYZ.1.70
    /TEMP.bug233636.jleffler/1 (base also /main/XYZ.1.70/0)]

该文件的内容是如下命令:

findmerge.log.2012-11-27T23:12:43-08:00

cleartool findmerge ./samizdat.c -fver /main/XYZ.1.70/TEMP.bug233636.jleffler/1 -log /dev/null -merge -cqe 表示'非图形合并'(图形为-merge); -gmerge表示'查询每次退房的评论'(我总是将其替换为-cqe)。

我怀疑这是否是最快捷的经营方式,但它对我有用。我伪装了文件和分支名称,但假设我的审核被批准,那就是(或多或少)我将如何进行合并并检查大约20个文件的迷你(微?)功能。我有封面脚本来驱动很多这样的东西,所以我的命令序列实际上是:

-c "Bug 233636: Brief title for bug"

fmp -l log 233636 /vobs/project/ /vobs/auxilliary fmm log ct ci -c 'Bug 233636: Brief title for bug' $(ct lsco -avo -cvi -s) (查找合并和打印)脚本运行第一个fmp,输出转到文件findmergelog(查找合并和合并)脚本执行实际合并,并自动为要合并的文件提供最后一个签入消息。最后一行用我选择的评论办理登机手续(fmmct的别名),覆盖cleartool提供的评论。

答案 1 :(得分:1)

您需要在视图集中创建/main上的版本 相反,您的合并想要在Nov12

上创建一个版本

页面“To merge selective versions from a subbranch”详细说明了您正在使用的合并:

cleartool merge [ -graphical ] -to target-path -insert contributor-version-selector  [contributor-version-selector]

但它还需要首先检查目标版本
这意味着,即使在合并之前,您也应该在版本树中看到在/main/8之后创建的版本。

请在右侧目标视图中再次尝试合并,即在/main上制作新版本的视图。