We are in the process of writing a VCS plugin for TeamCity, but are right now stuck.
Could you elaborate on the instructions given on https://confluence.jetbrains.com/display/TCD10/Version+Control+System+Plugin. It seems that the interface CollectSingleStatePolicy and getCurrentVersion is the old way, the new way is using CollectChangesBetweenRepositories and thus implementing getCurrentState/collectChanges.
That is the route we have taken, but when running the build we get the following error:
jetbrains.buildServer.vcs.impl.RevisionsNotFoundException: Revisions are not found for build configuration <projectname>
It seems that it should be enough to implement getCurrentState to get a successful build, but that seems to be a wrong assumption.
It would be a big help if you could outline what calls are made from TeamCity when checking out a new repository, getting the current state and then collecting changes.
To put it simply:
What would a minimal implementation using the newest interface look like?