VCS Plugin: Not all collected changes are being reported

I devleoped a custom VCS plugin for our team and recently noticed that not all the changes I am creating in the plugin are being reported:

[2012-01-05 11:12:35,024]   INFO [cutor 3 {id=28}] -      jetbrains.buildServer.VCS - Added modification data: ModificationData{myUser='user2', myDescription='defect 2', myVcsDate=2012-01-05 11:11:53.773, myChanges=[VcsChange{myChangeTypeName='edited', myFileName='InstallConfig Project/src/install/Install3000.java', myRelativeFileName='InstallConfig Project/src/install/Install3000.java', myBeforeChangeRevisionNumber='_7LawEAHLEeGGTebiPOmLEQ@_ET1GHQHMEeG2sou2fgjKjQ', myAfterChangeRevisionNumber='_7LawEAHLEeGGTebiPOmLEQ@_XBBb1DfAEeG9-LpRsZuu8w'}], myVersion='_cok6MDfAEeG9-LpRsZuu8w@20120105-111229241', myDisplayVersion='TeamCity@20120105-111231586', myChangesCount=1, myCanBeIgnored=false}
[2012-01-05 11:12:35,649]   INFO [cutor 3 {id=28}] -      jetbrains.buildServer.VCS - Added modification data: ModificationData{myUser='user1', myDescription='defect 1', myVcsDate=2012-01-05 11:12:14.934, myChanges=[VcsChange{myChangeTypeName='edited', myFileName='InstallConfig Project/src/install/Install4000.java', myRelativeFileName='InstallConfig Project/src/install/Install4000.java', myBeforeChangeRevisionNumber='_DEQbwAQVEeGDo_q94DQKcA@_QGwWRCXWEeGwc-goEP04_A', myAfterChangeRevisionNumber='_DEQbwAQVEeGDo_q94DQKcA@_aADYxTfAEeG9-LpRsZuu8w'}], myVersion='_cok6MDfAEeG9-LpRsZuu8w@20120105-111229241', myDisplayVersion='TeamCity@20120105-111231586', myChangesCount=1, myCanBeIgnored=false}
[2012-01-05 11:12:35,868]   INFO [cutor 3 {id=28}] -      jetbrains.buildServer.VCS - 2 changes detected
[2012-01-05 11:12:35,868]   INFO [cutor 3 {id=28}] -      jetbrains.buildServer.VCS - ModificationData{myUser='user2', myDescription='defect 2', myVcsDate=2012-01-05 11:11:53.773, myChanges=[VcsChange{myChangeTypeName='edited', myFileName='InstallConfig Project/src/install/Install3000.java', myRelativeFileName='InstallConfig Project/src/install/Install3000.java', myBeforeChangeRevisionNumber='_7LawEAHLEeGGTebiPOmLEQ@_ET1GHQHMEeG2sou2fgjKjQ', myAfterChangeRevisionNumber='_7LawEAHLEeGGTebiPOmLEQ@_XBBb1DfAEeG9-LpRsZuu8w'}], myVersion='_cok6MDfAEeG9-LpRsZuu8w@20120105-111229241', myDisplayVersion='TeamCity@20120105-111231586', myChangesCount=1, myCanBeIgnored=false}
[2012-01-05 11:12:35,883]   INFO [cutor 3 {id=28}] -      jetbrains.buildServer.VCS - ModificationData{myUser='user1', myDescription='defect 1', myVcsDate=2012-01-05 11:12:14.934, myChanges=[VcsChange{myChangeTypeName='edited', myFileName='InstallConfig Project/src/install/Install4000.java', myRelativeFileName='InstallConfig Project/src/install/Install4000.java', myBeforeChangeRevisionNumber='_DEQbwAQVEeGDo_q94DQKcA@_QGwWRCXWEeGwc-goEP04_A', myAfterChangeRevisionNumber='_DEQbwAQVEeGDo_q94DQKcA@_aADYxTfAEeG9-LpRsZuu8w'}], myVersion='_cok6MDfAEeG9-LpRsZuu8w@20120105-111229241', myDisplayVersion='TeamCity@20120105-111231586', myChangesCount=1, myCanBeIgnored=false}
[2012-01-05 11:12:35,993]   INFO [cutor 3 {id=28}] -      jetbrains.buildServer.VCS - Finish collecting changes for https://myserver/jazz/ - Integration TeamCity Build Workspace {instance id=28, parent id=9} from version _V6AdwjcuEeG987pRsZuu8w@20120104-174637570 to version _cok6MDfAEeG9-LpRsZuu8w@20120105-111229241; 2 changes collected 1 changes reported, time spent: 4s,047ms

From the very similar ModificationData objects that I am creating, the exclusions I am seeing look very random.  We enabled debug on the server, but no other relevant information came from the newer logs.

What type of things prevent a collected change from being reported?  How can I force all the ModificationData objects that I created to be reported always?

Thanks.

1 comment
Comment actions Permalink

I finally found the source of the problems.  In our system, each checkin does not increment the version.  The version can have many checkins.  So between versions1 and versions2, checkins A, B, and C could have occurred.  Because of that, I created separate ModificationData objects for A, B, and C as they were all from different known users.

However in DBVcsModificationHistory, I found the java parameter "teamcity.vcsHistory.modificationVersionCheck.enabled" that is specifically designed to prevent multiple ModificationData objects with the same versions to all appear.  Only one would appear.

By default if unspecified, this property is true, so simply setting it to false cleared up the issue and all the ModificationData are now appearing as planned.

0

Please sign in to leave a comment.