If you followed the steps in the previous article and everything went smoothly, good for you! My migration hit a few snags, here are the big issues we hit and how we worked around them.
The first issue we hit was due to the fact we use HTTPS and hit an issue with the certificate, this isn’t immediately obvious from the Integration Platform UI however. Follow the steps in Martin’s blog entry and you should be up and limping in no time!
That issue out of the way the migration started in earnest and we hit our first code bug in the adapter, it relates to the Subversion version control analysis provider and occurred when a null change set is detected in Subversion. We added a check for null changesets at line 355 in SubversionVCAnalysisProvider.cs to allow analysis to continue.
Another issue resolved, migration was resumed. This was when we hit a really odd issue, we started getting “path not found” errors, upon further investigation we discovered that for some reason there were folders in TFS that included “%20” rather than spaces. The same folders in Subversion never had these characters so it seems the issue was with the adapter. We tracked the issue to the BatchedItem.cs file and made the following change to the code to URL decode each path when the string has a value assigned, at which point we had to restart the migration from scratch as the damage was done. The TFS11 (TFS 2012. codename “dev11”) adapter inherits an awful lot from TFS 2010, hence the TFS 2010 adapter needs updating despite us migrating to TFS 2012.
The last major issue we hit was another issue with missing files;
“Microsoft.TeamFoundation.VersionControl.Client.CheckinException: TF10141: No files checked in: resolve the conflicts and try again.”
It seems to be caused by a random deletion in Subversion that was somehow out of order and the adapter couldn’t handle it.
Setting the source and target to the same value, that of the TFS checkin rather than Subversion, resolved this “conflict” and the history appears in tact in TFS. I’ve had to start the migration again and can’t get passed this error anymore so this may not be accurate, see part 3 for an update. Regarding the confusing conflict resolution system in the Integration Platform, head back to Martin’s blog for an explanation.
The last hurdle wasn’t related to the Integration Platform but I’ll mention it hear for completeness, this blog is as much for my reference as for others after all. We kept seeing a CRC error popping up in the logs similar to this;
“The CRC in GZip footer does not match the CRC calculated from the decompressed data.”
It seems that this was related to the network adapter on either the TFS box or my desktop, investigations are ongoing but it’s one or the other. There was an issue in TFS 2010 regarding large files in IIS but it has been fixed and presumably included in TSF 2012, further reading can be found here;
We haven’t quite finished out migration yet so there may yet be more issues we hit, if so I’ll add another post in this series. Good luck and I hope this has helped.