TF60096 error migrating using VssConverter  
Author Message
Dumitru Sbenghe





PostPosted: Team Foundation Server - Version Control, TF60096 error migrating using VssConverter Top

I'm trying to migrate a VSS database to TFS and I have more than 1000 TF60096 errors.

A small part of the errors are associated with deleted items which were not purged. But I can live with that.

But 99.9% percent of the errors are not of this type.

1. The starting error seems to be

File or folder $/X version 14
TF60096: Unable to migrate due to Team Foundation Error: The item $/Test/X/Y already exists.

where Test is the TFS project where I want to migrate the SS

After that there are more than 1000 errors which are refering to some of the files or folders in the $/X/Y like
$/X/Y/.../fileName, version vn
TF60096: Unable to migrate due to Team Foundation Error: The item $/Test/X/Y/.../fileName could not be found in your workspace.

where the version number "vn" seems to go for all the files with errors from version 2 to the last version in SS for that file (some of the intermediary versions seem to be missing from the error list, so is not like a clear rule that all the intermediary versions are listed). There isn't any error which is quoting version 1 of the file.

The result is that for all the files listed with TF60096 the history is not migrated. So all of them have only one item in the history (which for files is the last version in SS of that file). The only item in the history sounds like that

11027 add <user> 1/09/2006 1:17 AM Tip Version match Checkin---- DO NOT MODIFY. VSSConverter comment. Verification complete ----

2. Another strange thing which is possible to be linked with the previous errors. In the result tree in TFS/Test after conversion there is a folder Z (with associated subfolders) but without any files inside which isn't in SS. In fact that folder existed long time ago, but was moved and after that was renamed.

What I figured out by looking in SS history (although I may be wrong):
- that folder Z used to be somewhere in $/X/Y/X/Z
- the folder was moved to $/X -> $/X/Z; So the tree was $/X/Y/X and $/X/Z
- the original folder Y from $/X/Y/X tree was deleted with everything inside it
- the Z folder was renamed as Y
So there isn't any folder Z in $/X in SS but was migrated in TFS

3. An observation about the files with the TF60096 error from point 1 (which were migrated without history) - it seems that the files migrated without history were originally in the Z folder from point 2 which was moved and after that renamed

___

Of course that before migration I run VSS analyze and fix; and also vssconverter analyze which, beside the usual warnings about share/branch or items deleted but not purged, didn't give me any errors.

I guess this is all. All these errors are stopping the migration. What can I do do successfully migrate
I can send all the log files is someone from Ms wants to debug these errors.

Thanks,

Dumitru



Visual Studio Team System34  
 
 
Dumitru Sbenghe





PostPosted: Team Foundation Server - Version Control, TF60096 error migrating using VssConverter Top

By reading the posts about VSS converter errors/problems (especially Robert Horvick posts) I found an workaround suggested by Robert here http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=617241&SiteID=1

Quote

The VSS converter gets confused when a delete+rename (or rename+rename) causes two directories to share the same name over a period of time.  The work-around in this case is to migrate in smaller chunks.  For example the converter gets confused in this case (work-around by migrating $/Project/Foo and $/Project/Bar seperately):

  • create $/Project/Foo
  • Add content under $/Project/Foo
  • Rename $/Project/Foo to $/Project/Bar
  • Create a new $/Project/Foo (and add content under it)

 

Not exactly my situation but pretty close. It seems that VSS converter really got confused by the move/rename operation described at (2).

The workaround was to define as a separate project, every project/folder found in $/X like

<ProjectMap>

<Project Source="$/X/Y" Destination="$/Test/X/Y"/>

<Project Source="$/X/Y1" Destination="$/Test/X/Y1"/>

...

</ProjectMap>