CommittedChangeLists appear in Incoming tab when I expect it to be in Repository tab

Answered

Hi,

I am writing a VCS provider for IntelliJ IDEA, and have created a reasonable implementation of the CachingCommittedChangesProvider, but I am not able to populate the Repository tab.

In my CachingCommittedChangesProvider implementation, I was returning a null for getLocationFor method. With that, I was seeing blank Repository and Incoming tabs. Now I return DefaultRepositoryLocation, and I see the CommittedChangeLists in the Incoming tab, whereas I want to see them in the Repository tab.

I have read:
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206786025-need-help-implementing-changes-repository
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206132399--repost-Need-help-activating-Changes-Repository-Incoming-tabs
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206786015-need-help-implementing-changes-repository
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206790765-IncomingChanges
but still can't tell what I am missing.

Help!

4 comments
Comment actions Permalink

Basically changes obtained from `CachingCommittedChangesProvider` should be displayed in "Repository" view. And to remove unnecessary changes from "Incoming" view you should also implement `DiffProviderEx.getCurrentRevisions()` (and `CachingCommittedChangesProvider.getIncomingFiles()` (for optimization, if necessary) and  `CachingCommittedChangesProvider.isChangeLocallyAvailable()` if you haven't already).

0
Comment actions Permalink

Thank you, looks like the cache had got messed up, I deleted it from <USERPROFILE>.IdeaIC14\system\plugins-sandbox\system\vcsCache and it works now!

0
Comment actions Permalink

@Konstantin, all my change lists now appear in the Repository tab, but none in the Incoming tab. When I debug, I see, ChangesCacheFile.loadIncomingChangeListData seems to be checking for a "completelyDownloaded" flag, and I see that's always "true" for me. And looks like the incoming change lists are processed only when "completelyDownloaded" is false. I am sure I have not implemented either the caching or revision number right. What is that I have to do to see some specific ChangeLists in the Incoming tab?

0
Comment actions Permalink

I saw that the ChangesCacheFile.processIncomingChange() was filtering out non local files, and my ContentRevision.getFile() implementation was returning a non local path. 

0

Please sign in to leave a comment.