How to build a custom VCS plugin

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>
at jetbrains.buildServer.vcs.impl.BuildChangesLoaderContext.checkAllRevisionsSet(BuildChangesLoaderContext.java:11)
.
.

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?

 

Please sign in to leave a comment.