Merge cleartool-合并单个进程

Merge cleartool-合并单个进程,merge,clearcase,cleartool,Merge,Clearcase,Cleartool,我正在尝试将分支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

我正在尝试将分支
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\u update.sql.merge
包含本地磁盘上的完整过程,它不在clearcase版本控制中。我做了一个
ct lsh
来验证这一点

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


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

您需要在视图集中创建
/main

相反,您的合并希望在Nov12上创建一个版本

页面“”详细说明了您正在使用的合并:

cleartool merge [ -graphical ] -to target-path -insert contributor-version-selector  [contributor-version-selector]
但是它还需要先检查目标版本
这意味着,即使在合并之前,您也应该在版本树中看到在您的
/main/8
之后创建的版本


因此,请在右侧目标视图中再次尝试合并,该视图用于在
/main
上创建新版本。您需要在视图集中创建
/main
上的版本
相反,您的合并希望在Nov12上创建一个版本

页面“”详细说明了您正在使用的合并:

cleartool merge [ -graphical ] -to target-path -insert contributor-version-selector  [contributor-version-selector]
但是它还需要先检查目标版本
这意味着,即使在合并之前,您也应该在版本树中看到在您的
/main/8
之后创建的版本


因此,请在正确的目标视图中再次尝试合并,该视图用于在
/main

上生成新版本。我认为问题在于您没有指定输出的位置,因此将其放入文件
new\u update.sql.merge
,假设当前视图已将cspec设置为目标分支
/main
。(如果您的视图未引用
/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:Bug的简短标题”
替换)

我怀疑这是否是做生意最快的方式,但对我来说确实有效。我伪装了文件和分支名称,但假设我的审查获得批准,这(或多或少)就是我为mini(micro?)功能合并和签入大约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

提供的注释。我认为问题在于,您没有指定输出的位置,所以它被放在文件
new\u update.sql.merge
,假设当前视图将cspec设置为目标分支,
/main
。(如果您的视图未引用
/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:Bug的简短标题”
替换)

我怀疑这是否是做生意最快的方式,但对我来说确实有效。我伪装了文件和分支名称,但假设我的审查获得批准,这(或多或少)就是我为mini(micro?)功能合并和签入大约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
的别名),覆盖注释