我有一个相当标准的设置,其中包含一个开发流(devStream),它可以从集成流(intStream)传递和重新定义。
我的开发视图(devView)中有一个文件,我可以正常结帐,修改和检查。
然而,当我尝试交付(以及后来的rebase)但是我得到一个令我感到困惑的错误...(特别是因为我过去6个月一直在交付和重新定位)可能值得注意的是我们最近升级了从Rhapsody 8.0.2到8.0.4(相应地升级了clearcase的映射文件指向rhapsody文件的diffmerge工具),但是当错误出现时,我无法看到这可能是错误的。
由于图形模式很难获得足够的调试信息,因此我捕获了一些命令行运行的结果。
这是
的(匿名)结果cleartool> rebase -recommended
*SNIP*
Creating integration activity...
Setting integration activity...
Merging files...
Checked out "C:\CCVs\myDevView\shortenedPath\theFile.sbs" from version "\main\intStream\devStream\9".
Attached activity:
activity:NSSLB00001350@\projects "rebase devStream on 20131120.195128."
Needs Merge "C:\CCVs\myDevView\shortenedPath\theFile.sbs" [to \main\intStream\devStream\CHECKEDOUT from \main\intStream\9 base \main\intStream\8]
cleartool: Error: Unable to access "C:\CCVs\myDevView\shortenedPath\theFile.sbs": No such file or directory.
cleartool: Error: An error occurred while merging file elements in the target view.
cleartool: Error: Unable to perform merge.
cleartool: Error: Unable to perform integration.
cleartool: Error: Unable to rebase stream "devStream".
cleartool> rebase -resume
Rebase in progress on stream "devStream".
Started by "XXXXX" at 11/20/2013 7:51:28 PM.
Merging files...
cleartool: Error: Unable to access "C:\CCVs\myDevView\shortenedPath\theFile.sbs": No such file or directory.
cleartool: Error: Some files are already checked out to a non-integration activity in the target view.
cleartool: Error: Unable to perform merge.
cleartool: Error: Unable to perform integration.
cleartool: Error: Some files are already checked out to a non-integration activity in the target view.
cleartool: Error: Unable to resume rebase.
cleartool> lsactivity -long NSSLB00001350
activity "NSSLB00001350"
2013-11-20T19:52:00-06:00 by XXXXXX
"Integration activity created by rebase on 11/20/2013 7:51:28 PM.
"
owner: XXXXX
group: XXXXX
stream: devStream@\projects
current view: myDevView
title: rebase devStream on 20131120.195128.
change set versions:
C:\CCVs\myDevView\shortenedPath\theFile.sbs@@\main\intStream\devStream\CHECKEDOUT.94426
clearquest record id: NSSLB00001350
clearquest record State: Active
cleartool>
cleartool> lsco -r
--11-20T19:51 XXXXX checkout version ".\shortenedPath\theFile.sbs" from \main\intStream\devStream\9 (reserved)
Attached activity:
activity:NSSLB00001350@\projects "rebase devStream on 20131120.195128."
此时我对如何继续感到困惑。谷歌搜索没有提出任何看似相关的东西(或者我的谷歌技能可能很弱)。
同样值得指出的是,我的清晰技能完全是根据需要自学的......所以我确信我的知识漏洞了。即使看起来事情看起来很明显,也请指出它;我可能没有意识到。
C:\CCVs\myDevView\shortenedPath>cleartool ls
theFile.sbs@@\main\intStream\devStream\9 Rule: ...\devStream\LATEST
theFile.sbs.merge
theFile.sbs.merge.1
theFile.sbs.merge.2
theFile.sbs.merge.3
theFile.sbs.merge.4
*snip (other files)*
theFile.sbs@@\main\intStream\devStream\CHECKEDOUT from \main\intStream\devStream\9 [not loaded, checkedout but removed]
*snip*
theFile.sbs.merge.5
所以... rebase正在对文件做一些奇怪的事情;但是,为什么在做退货/交货时,而不是在正常结账时,它会消失?
答案 0 :(得分:2)
要调试它,您必须转到shell中的命令行,然后转到丢失文件的父文件夹:
cd /path/to/target/view/path/to/parent/folder
# in your case
cd C:\CCVs\myDevView\shortenedPath\
cleartool ls
cleartool lsvtree -graph .
cleartool ls返回的文件状态可以为您提供有关正在发生的事情的线索。
例如“checkout but removed”意味着mergetool试图访问/打开该文件,但不知何故它已被删除:当所述文件被进程占用时,会发生这种情况,并且无法完全检出。
lsvtree
还可以为您提供有关父文件夹的线索(以查看它是否已合并)。
另一种方法是取消该rebase,并在动态视图而不是快照视图中再次尝试,以避免任何副作用,而快照视图未正确更新。
我解除了rebase(获取文件的副本)并重新开始。
当它被轰炸时我将文件复制回来然后点击以重新启动rebase。再次删除它。
然后我更换了文件,同时保留启动diffmerge工具的提示,这允许diffmerge实际启动...但是当我告诉diffmerge保存(解决差异后)它删除文件并创建另一个.merge.#
文件。
此时看起来这是一个难以解决的问题,而不是一个明确的问题。