我正在尝试将分支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检出副本,然后运行上面的命令。请告诉我,我不清楚这一点。我需要一个命令行解决方案,因为图形替代方案不可用。
答案 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
,输出转到文件findmerge
。 log
(查找合并和合并)脚本执行实际合并,并自动为要合并的文件提供最后一个签入消息。最后一行用我选择的评论办理登机手续(fmm
是ct
的别名),覆盖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
上制作新版本的视图。