用普通java比较RTC/Jazz中的两个基线
我试图用纯java编程比较一个流中的两个快照 步骤1:获取我的流(工作) 我的报告是空的--烦人的--用普通java比较RTC/Jazz中的两个基线,java,rtc,jazz,Java,Rtc,Jazz,我试图用纯java编程比较一个流中的两个快照 步骤1:获取我的流(工作) 我的报告是空的--烦人的-- report=com.ibm.team.scm.common.internal.dto.impl。UpdateReportImpl@1de5a20(状态前:,状态后:) 我还尝试获取ChangeHistorySyncReport IChangeHistorySyncReport report = workspaceManager.compareBaselineSets(
report=com.ibm.team.scm.common.internal.dto.impl。UpdateReportImpl@1de5a20(状态前:,状态后:)
我还尝试获取ChangeHistorySyncReport
IChangeHistorySyncReport report =
workspaceManager.compareBaselineSets(
snapShot0, snapShot1, componentList(stream), monitor);
报告也是空的
那么如何创建一个合适的报告呢?或者我如何比较两个基线?(我做错了什么
report.getAffectedComponents()
返回空数组,以及report.getModifiedComponents()
更新
据我所知,现在我必须检查ChangeHistorySyncReport…当我打印报告时,它会说:
com.ibm.team.scm.common.internal.dto.impl。ChangeHistorySyncReportImpl@150f091(localTime:,remoteTime:,compareFlags:)
这让我的问题更深刻了——我怎样才能设置更好的比较级?上帝我花了好长时间 但首先要做的是:使用
IChangeHistorySyncReport
而不是
IUpdateReport
那怎么了
IWorkspaceConnection stream; //is not null, already instantiated somewhere else
IBaselineSet bl0 = (IBaselineSet)
itemManager.fetchCompleteItem(baseLineHandle0, IItemManager.DEFAULT, monitor);
IBaselineSet bl1 = (IBaselineSet)
itemManager.fetchCompleteItem(baseLineHandle1, IItemManager.DEFAULT, monitor);
IChangeHistorySyncReport report =
workspaceManager.compareBaselineSets(bl0, bl1, getComponentHandles(stream), monitor);
一个简单的代码更改就可以解决这个问题
//have a close look: 3.rd param is now null!!
IChangeHistorySyncReport report =
workspaceManager.compareBaselineSets(bl0, bl1, null, monitor);
顺便说一下,当我浏览报告时,还有一个棘手的部分:
System.out.println("report: "+report );
System.out.println("incoming: "+report.incomingChangeSets() );
output:
report = com.ibm.team.scm.common.internal.dto.impl.ChangeHistorySyncReportImpl@127c1ae (localTime: <unset>, remoteTime: <unset>, compareFlags: <unset>)
incoming []
System.out.println(“报告:+report”);
System.out.println(“传入:“+report.incomingChangeSets());
输出:
report=com.ibm.team.scm.common.internal.dto.impl。ChangeHistorySyncReportImpl@127c1ae(localTime:,remoteTime:,compareFlags:)
传入[]
乍一看是空的-但深入挖掘后,我发现我只需要请求report.outgoingChangeSets()
,这带来了大量(预期的)变化
但是当我交换基线workspaceManager.compareBaselineSets(bl1,bl0,null,monitor);
为空且report.outgoingChangeSets()
带来正确的结果report.incomingChangeSets()
使用比较基线方法,我现在可以提供几个组件的完整差异!!!唯一的例子是
IChangeHistorySyncReportImpl
(不是ChangeHistorySyncReportImpl
)我看到的是在Hello@VonC我找到了解决方案,它隐藏在一个中文或类似印度教的网站中(对不起,我丢失了链接)…但我现在找到了一个解决方案!!我很高兴!!!我不知道为什么这样做有效-尤其是当我在方法上使用正确的列表时,但是没有…我感到困惑和高兴!太棒了!+1.非常好的发现。感谢您的支持-即使您今天没有提供一些代码,我也很高兴有人听到我的问题!!!令人印象深刻的多组件nt比较。有没有可能在某个地方打开该GUI的java源代码?好的(我不是说“有机会马上看到java源代码”;)
IWorkspaceConnection stream; //is not null, already instantiated somewhere else
IBaselineSet bl0 = (IBaselineSet)
itemManager.fetchCompleteItem(baseLineHandle0, IItemManager.DEFAULT, monitor);
IBaselineSet bl1 = (IBaselineSet)
itemManager.fetchCompleteItem(baseLineHandle1, IItemManager.DEFAULT, monitor);
IChangeHistorySyncReport report =
workspaceManager.compareBaselineSets(bl0, bl1, getComponentHandles(stream), monitor);
//have a close look: 3.rd param is now null!!
IChangeHistorySyncReport report =
workspaceManager.compareBaselineSets(bl0, bl1, null, monitor);
System.out.println("report: "+report );
System.out.println("incoming: "+report.incomingChangeSets() );
output:
report = com.ibm.team.scm.common.internal.dto.impl.ChangeHistorySyncReportImpl@127c1ae (localTime: <unset>, remoteTime: <unset>, compareFlags: <unset>)
incoming []