我正在尝试将分支Nov12中的单个进程合并到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包含本地磁盘上的完整进程,它不在clearcase版本控制中。我做了一个ct lsh来验证这一点。
我希望它已经在main上创建了一个新版本,并将更新后的副本放入其中,即尚未存在的/main/9。最新的/main版本是8。
那么,如何合并单个进程。我们是否需要从主目录签出一个副本,然后运行上面的命令。请让我知道,我不清楚这一点。我需要一个命令行解决方案,因为图形替代方案是不可用的。
发布于 2012-11-28 15:28:00
您需要位于视图集中才能在/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上生成新版本。
发布于 2012-11-28 15:28:42
我认为问题在于您没有指定输出的位置,所以假设当前视图有一个设置为目标分支/main的cspec,那么它被放在文件new_update.sql.merge中。(如果您的视图没有引用/main分支,那么您合并到了错误的视图中。)您现在可以执行以下操作:
mv new_update.sql.merge new_update.sql然后进行签入,假设您或ClearCase已经完成了必要的签出。
这不是我通常做合并的方式--但这并不是说它是无效的。我使用的机制是ct findmerge,然后运行日志文件中的命令。我有两个视图,一个具有用于Nov12分支的cspec (视图标记可能是nov12),另一个(当前视图)具有用于主分支的cspec。
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的意思是“每次结帐时查询注释”(我总是用-c "Bug 233636: Brief title for bug"代替它)。
我怀疑这是否是最快的做生意的方式,但它确实对我有效。我伪装了文件名和分支名称,但假设我的审查获得批准,这(或多或少)我将如何为一个迷你(微?)做一个合并和签入大约20个文件。功能。我有一些辅助脚本来驱动这些东西,所以我的命令序列实际上是:
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的别名)进行签入,覆盖了fmm提供的注释。
https://stackoverflow.com/questions/13599578
复制相似问题