About

This is my personal blog where I like to blog about technology and other interesting stuff in life.

Up until this past weekend, I would have recommended TFS to any development department. I would have mentioned how it is easy to merge and branch. I would have said how useful the built in project alerts were. I would have told you that we have not had to waste hardly any time managing our code base. But that was last week. A 4th or July weekend with TFS can sure change someone’s mind. While all those things are true, I would now add that you should think twice about TFS in your organization. Especially if you are considering TFS 2005. I have not used TFS 2008 yet, but let’s just assume that Microsoft got it right the second time around, they usually don’t the first time. TFS was definitely not designed to be moved or broken apart. We have one TFS server that has approximately 20 projects on it. I wanted to break three of them off. To do this I took backups of the original TFS server and restored them on a separate box. We won’t even begin to talk about ITs troubles with this difficult install, that deserves its own blog post. I restored this box following these instructions. Just to give a brief explanation of what a restoration entails. TFS functions on 11 databases. You must configure reporting service. You must process a cube. You must set up sharepoint. Yes, I know, it sounds like Microsoft got sick and threw up all their products and then bundled them all together and named it TFS. Its like it was some massive integration project that went wrong.

Anyway, after I was done with this I attempted to use TFSDelete command line utility. Now if you think that just because Delete is in that command that you are deleting your project permanently, you would be seriously mistaken. Yes, intuitive, I know. This command actually just “deactivates” your project. All your source code still sits in a few tables within the 11 databases. Some people have had luck with removing contents from the repository by running ad hoc delete statements. I did this and I corrupted the system. One thing TFSDelete did do though was deactivate the projects on BOTH my TFS servers. I can’t even fathom how that one happened. So at this point, I forget about the projects I am trying to migrate and try to get our original server restored before developers are coding on Monday. I thought I did this successfully when I was informed otherwise this morning. I started hearing complaints about how the C++ guys were checking stuff in and seeing C# code in the middle of their classes. I also am hearing from the .NET teams that they have C++ and XML when they do check-ins. I spent numerous hours trying to figure this out. I was so close to starting from scratch and losing our version history. I then came across this forum. I guess Microsoft forgot to mention a very important part in their directions. You have to delete cache from the application tier. This took about 40 minutes to do. Once I did this people were able to check-in/out without problems. Now it appears that our source code has been restored. What a mess! In a nutshell, if you ever intend on segmenting your source code, you might want to think of alternative technologies to manage your source code.

One Response to “Team Foundation Server Tribulations”

  1. wow, I did not know that. Have you ever taken a look at Git? I guess with TFS, unless you are going to use the task tracking and such, there isnt much benefit over SVN really… SVN with Visual SVN for VS is pretty sweet, I haven’t tried Git yet but it looks like something that might be useful for you guys..

    Steve

Leave a Reply