0

我正在编写一个 eclipse 插件来更新我工作区中的一些项目。更新后可能会出现冲突。如果更新的项目中存在一些冲突,我想向用户显示一个对话框。

要更新,我使用UpdateOperation,然后在更新的项目上执行 IResource.refreshLocal() 。要查找我使用的冲突FileUtility.checkForResourcesPresenceRecursive(resources, IStateFilter.SF_CONFLICTING)。还尝试了IStateFilter.SF_CONTENT_CONFLICTINGand IStateFilter.SF_TREE_CONFLICTING。通常他们会返回false

当我在调试模式下运行时,前两个返回true. 这让我想到有一些事件在刷新后被触发,并且在调试模式下失去了时间,Subversive 开始了解它。我对吗 ?这是什么活动?它不是IResourceChangeEvent。尝试听POST_CHANGED但没有运气。

你有什么提示吗?谢谢你。

4

1 回答 1

0

这比我预期的要容易。(UpdateOperation以及 theCommitOperationMergeOperation)类扩展AbstractConflictDetectionOperation了提供该方法的hasUnresolvedConflicts()方法。这就是诀窍;)

于 2011-02-23T07:50:01.133 回答