2011-02-22 74 views
0

我正在寫一個eclipse插件來更新我的工作區中的一些項目。更新之後,可能會有衝突。如果更新的項目中存在一些衝突,我想向用戶顯示一個對話框。發現衝突與顛覆API

要更新,我使用UpdateOperation,然後在更新的項目上執行IResource.refreshLocal()。要查找衝突,我使用FileUtility.checkForResourcesPresenceRecursive(resources, IStateFilter.SF_CONFLICTING)。也試用IStateFilter.SF_CONTENT_CONFLICTINGIStateFilter.SF_TREE_CONFLICTING。通常他們會返回false

當我在調試模式下運行時,前兩個返回true。這讓我覺得在刷新之後會有一些事件被觸發,並且在調試模式下會損失時間,Subversive會了解它。我對嗎 ?這是什麼事?它不是IResourceChangeEvent。嘗試傾聽POST_CHANGED沒有運氣。

你有什麼暗示嗎?謝謝。

回答

0

這比我預期的要容易。 UpdateOperation(以及CommitOperationMergeOperation)類延伸AbstractConflictDetectionOperation,它提供了hasUnresolvedConflicts()方法。這就是訣竅;)