我正在编写一个eclipse插件来更新我工作区中的一些项目。更新后,可能会有冲突。如果更新的项目中存在一些冲突,我想向用户显示一个对话框。
要更新,我使用UpdateOperation
,然后在更新的项目上执行IResource.refreshLocal()。要查找冲突,请使用FileUtility.checkForResourcesPresenceRecursive(resources, IStateFilter.SF_CONFLICTING)
。还尝试使用IStateFilter.SF_CONTENT_CONFLICTING
和IStateFilter.SF_TREE_CONFLICTING
。通常他们会返回false
。
当我在调试模式下运行时,前两个返回true
。这让我觉得有一些事件在刷新后被解雇,并且在调试模式下失去了时间,Subversive会了解它。我对吗 ?这是什么事?它不是IResourceChangeEvent
。试着在没有运气的情况下听POST_CHANGED
。
答案 0 :(得分:0)
比我想象的容易。 UpdateOperation
(以及CommitOperation
和MergeOperation
)类扩展了提供AbstractConflictDetectionOperation
方法的hasUnresolvedConflicts()
。这样就可以了;)