A Django site.
July 2, 2008
» Another innovation in the evolution of Hotfixes

I've been keeping you all abreast of changes in our Hotfix plans.  More than a year ago, we introduced the notion of advertising hotfixes and enabling people to browse and download the hotfixes the find most useful.  Prior to that, the only way to get a hotfix was to call customer support with a problem and have them determine that one of our available hotfixes would solve it.  Six months or so ago, we introduced a new and much improved site (MSDN Code Gallery) for searching for and browsing hotfixes.  We also enabled notification via an RSS feed.

We have just added a new capability - localization of all Hotfix information.  Hotfix descriptions are now available in 10 languages (including English).  When you go to MSDN Code Gallery, you will now see a page with links for each of the supported languages.

clip_image002

I hope our international customers will find this to be a big help in keeping their VS, VSTS and TFS products up to date.

Brian

June 30, 2008
» Expression and TFS

Warning - this is early information and is subject to change but the Expression team cleared me to say something about it.

We get a lot of feedback from customers who would like more seamless integration between Expression and the rest of their development team using TFS.  Last week I saw a demo of work being done that will result in TFS source control integration into Expression Web and Expression Blend.  It was very nice.  All of the basic operations were there - add, checkout, undo checkout, history, diff, checkin, etc.  Checkin even used the same dialog as Team Explorer so you get full fidelity - work item integration, checkin policies, etc.

It was exciting to see us making progress in this key area.  I'm told this is all going to be in the next version of Expression - of course, I don't have any release date to announce :).  However, keep your eyes open for pre-releases (like CTPs) and check out the TFS integration.  We'll be eager to hear your feedback.

Combine this with the recent release of TFS integration for Dynamics developers and we are really making progress on ensuring everyone can participate in team development regardless of what kind of development you do.

Brian

June 27, 2008
» TFS on Hyper-V

With the announcement of the release of the new Microsoft Hyper-V virtualization technology, I've seen a surge of questions about TFS support for Hyper-V.  We have tested TFS running in a Hyper-V virtual machine.  It works well and is officially supported.

TFS Components & Support

One thing to keep in mind is that there are 2 major components of a TFS server.  The first is the TFS application tier.  It runs fine in Hyper-V, Virtual Server and VMWare.  You must remember that the TFS application tier in TFS 2005 and TFS 2008 is 32-bit only - so, if you are going to use it on a 64-bit Win2008 machine running Hyper-V, for example, you will need to run a 32-bit OS in its VM.  Our support team will work with you on support issues regardless of which virtualization technology you use.  However, we may ask you to reproduce problems outside of the virtual environment if we suspect it is causing a problem.  The exception to this is Hyper-V.  With Hyper-V, we are introducing full support on the virtual environment.  We (Microsoft) are also working on a certification program so that all virtualization technologies that meet the requirements can achieve the same level of support.

The second major component of a TFS server is the data tier.  The data tier is a SQLServer and the only TFS code that runs on it is TSQL stored procedures.  Of course, in a single server TFS install the application tier and the data tier run on the same machine.  My understanding is that SQL server 2005 and before do not officially support any virtualization technology.  SQL is introducing virtualization support with SQL 2008.  If you are going to use TFS with SQLServer 2008, make sure you use TFS 2008 SP1 (to be released this summer).  In general, my advice to TFS customers has been that it's fine to run the TFS application tier in a 32-bit VM but always run the SQLServer on native hardware (preferably on 64-bit if you need the system to scale).  One reason for this is for performance (see more below).  Another reason is that I have seen one or two instances of data corruption problems with SQLServer running in an improperly configured VM - the one that comes to mind was a customer who was running SQLServer in a VMWare VM and had delayed I/O enabled in the VM.  Delayed I/O is not something you want at all on a SQLServer machine - it violates key guarantees that SQL relies on to guarantee data durability.

Virtual Machine Performance Guidance

I often get asked about recommendations about hardware configuration for virtualization.  I generally focus on 2 things: memory and disk I/O.  The memory recommendation is pretty easy.  If you want to run TFS in a VM, remember that there is also a host OS running.  Sum up the memory requirements of every app in every VM you are running on the system and add about 1GB for the host OS.  I've generally found that algorithm to work well for people and I expect it will work well for Hyper-V as well.

The more complicated one is I/O.  One of the historical problems with virtualization technology is that it adds overhead when virtualizing I/O (in this case I'm mostly concerned about disk I/O).  A high scale TFS server performs a ton of I/O and any overhead can be a problem.  Fortunately, disk I/O on the application tier is generally not too high (except in the most high scale systems).  The only major source of I/O is a file cache that reduces the load on the SQLServer for commonly requested files.  TFS's use of SQLServer, however, can be very I/O intensive.  My advice to anyone running any I/O intensive application in a VM is to make sure you have a high performance disk subsystem.  Error on the side of extra disk performance.  For example, use 10K RPM or better drives, consider using RAID 10 that enables more concurrent I/O.  Make sure you have a good disk controller card.  If your system is particularly high scale, consider using a high performance SAN.

Some of this guidance may change over time with Hyper-V.  Hyper-V is a very efficient virtualization technology but I don't have enough experience with it yet to say for sure how it will affect these recommendations.  As I learn more I'll keep you up to date.

Good luck and let me know if you have good or bad experiences with TFS and Hyper-V.

Brian

June 23, 2008
» Automating the creation of Team Projects

Since I announced the ability to automate the creation of Team Projects in my TFS SP1 feature set post and my March Power Tools post, I've gotten several questions about the format of the XML file you need to create and pass to:

tfpt createteamproject /settingsfile:"filename.xml"

I've attached the XML schema to this blog post and included a sample settings file.

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="ProjectCreationSettingsFileSchema.xsd">

    <TFSName>A Valid TFS server</TFSName>

    <LogFolder>
      c:\RemoteTFSProjectStarte
    </LogFolder>

    <ProjectName>
      Batch Project Creation Demo 23
    </ProjectName>
    <ProjectSiteTitle>
      <!-- default to project name if not specified -->
      Batch Project Creation Demo 23   
    </ProjectSiteTitle>
    <ProjectSiteDescription>
      <!-- default to empty string if not specified -->
      Project Description
    </ProjectSiteDescription>
    <SccCreateType>
      <!-- none | new | branch -->
      Branch
    </SccCreateType>
    <SccBranchFromPath>
      <!-- string.Empty for none and new; supplied for branch -->
      $/test44
    </SccBranchFromPath>
    <ProcessTemplateName>
      MSF for Agile Software Development - v4.2
    </ProcessTemplateName>
</Project>

Hopefully this helps make it more clear,

Brian

» Rally connects to TFS for Agile project management

Today Rally is announcing that they have built a connector to enable its web based Agile project management tool to connect to TFS.  This new connection enable source code checkins and TFS builds to be tied to the project management features in Rally, enabling a more comprehensive picture of the state of your projects.

Rally is hosting a web cast on June 25th at 10AM PDT.  Click here to read more and to register for this web cast.

Here's Rally's press release: http://www.rallydev.com/press_release_080623.jsp

Brian

June 18, 2008
» TFS support for Dynamics developers

Less than a month ago, Dynamics AX 2009 was released.  This new version enables Dynamics developers to store their source code and have an integrated experience for checkout, check in, get and history - the basic version control operations in TFS.  I'm excited about this because I get the question fairly often and people are always surprised when I tell them we don't have a solution.  Now I don't have to disappoint any longer.

It's great to be able to bring a whole new community of developers into the Team System collaborative development fold.  You can get a peek at what is there today by viewing this screencast.  I expect future versions of Dynamics AX will integrate additional TFS features.

If you are interested in giving this new combo a try, you can look at this whitepaper for how to set it up: http://www.microsoft.com/downloads/details.aspx?FamilyId=EFC24EDC-522E-40AA-8F36-6367ED7AB92D&displaylang=en

Let me know what you think,

Brian

June 16, 2008
» PDC 2008 & precons

Preparation is in full swing for the Microsoft PDC this fall (Oct 27 - 30).  PDCs are the primary event where we talk about the future (as opposed to events like TechEd where we primarily talk about the present).  This PDC promised to have a great deal of new content for developers.  Among them, I think this will be the first conference where we really talk in depth about what is coming in the Team System release code named "Rosario".  If you are passionate about ALM, it will be a great show.

In addition to the core PDC event, there will be a set of pre-conference presentations the preceding day.  Among them will be sessions on VSTS today to position you to really understand the "tomorrow" stuff coming in the PDC.  There is also a great session on Agile development.  Check them out if you are interested.

I'm planning on being at the PDC and look forward to seeing you there.

Brian

June 10, 2008
» TFS & Teamprise for enterprises doing serious cross platform development

We recently published a case study with Thomson Reuters on their experiences adoption TFS in a cross platform development team using Teamprise for their Java developers.  It's a great testament to how the combination of these two products can work together to create a comprehensive ALM solution for a significant development team.  I frequently get asked about how well TFS + Teamprise can meet the needs of a Java development team.  I'm really glad to actually have something concrete to point at instead of having to ask you to take my word for it :)

Brian

June 9, 2008
» Sharing Team System Process Templates

There are as many processes for software development as there are software teams.  Ever since we shipped TFS, I have hoped that a community would form for sharing process ideas and for sharing process templates.  Creating new process templates can be a significant undertaking.  It's way easier if you can start with a process template that's reasonably close to what you want and just tweak it.  Wouldn't it be nice if there was a library of process templates available and an easy way to share ones you create?

We'll a new CodePlex project has just been created for this purpose.  It's too early to tell whether or not it will thrive.  It will depend on how many people decide to contribute something and how actively it is managed.  If this is an area that interests you, then I encourage you to check it out.

http://www.codeplex.com/templex

Brian

May 28, 2008
» Translating Team System Web Access to your langauge

We have gotten some requests for translations of Team System Web Access into additional languages (beyond the 9 we already do).  I am speculating that the additional interest here comes from the fact that TSWA targets a broader audience beyond the core development team and as such translations are even more valuable than for Visual Studio itself.

We aren't set up to create and test these translations, however, we would like to satisfy the demand.  Fortunately, translating TSWA is not a massive undertaking.  In all, it only involves translating a few hundred strings.  For our own localization effort, we have already separated these strings into separate .resx files that are compiled into satellite assemblies.  In short this means that if we give out the .resx files and a relatively short instructional document, it should be reasonably straight forward for you to localize TSWA into any language you choose.

I'd also like to make it possible for you to contribute your translations back to the community for others to use if you choose to do so.

Our thinking is that we will create a CodePlex project for TSWA translations.  We will upload all of the .resx files for the 9 languages we currently support and a document explaining how to create and install translations.  You can download the files, translate, build, install, test, and use them.  If you choose to contribute your translations back to the community, we will provide a way for you to request contributor rights to the CodePlex project and you will be able to upload your translation to CodePlex for others to download.

We're still working through the plans but this is the rough idea.  I expect it will take a few weeks to get this all set up - we're still working out the schedule so I'm not sure but I don't think it's going to take a long time.

I hope this will be helpful to you.  If you have any thoughts and/or comments, I'd love to hear them.  Keep an eye on my blog for further announcements as we get this ready.

Brian

» Professional Developers Conference this fall

We'll be holding a PDC this fall in Los Angeles Oct 27 - 30.  Registration opens today at: http://www.microsoftpdc.com/.  There are many developer oriented conferences that present an opportunity to learn about Microsoft technologies.  The PDC is the most forward looking of those conferences.  It is an opportunity to learn what our plans and directions are for the next several years.  It's a unique glimps into the future and a chance to mold your plans.

This PDC is going to be the first really big splash for the Rosario release of Team System.  We'll be holding quite a few talks, doing lots of demos, etc.  Whether you are a customer or a partner, it should provide some valuable information.

I look forward to seeing you there.

Brian

May 22, 2008
» 1 week left for SP1 Beta feedback

We are nearing the end of the window for collecting Beta feedback on VS/VSTS/TFS 2008 SP1.  We are actively taking and working on feedback through the end of the month.  I haven't heard too much feedback yet.  I know it's hard to get excited about testing a Beta of an SP but if you have tried it, please let me know how it went.  If you haven't tried it but plan to, please try to fit it in over the next few days.  I'm tremendously grateful for any feedback you can give (good or bad).  We are trying really hard to make this SP1 upgrade as easy as we possibly can.

Thanks,

Brian

May 20, 2008
» Hotfixes update

We've recently had a spike in hotfix publishing for TFS.  At this point we have published all completed TFS 2008 hot fixes and are expecting a few more this week.  We are still behind on publishing TFS 2005 hotfixes but at this point, I'm thinking it may not be worth a ton of effort on that since much of our user base has or is migrating to TFS 2008.  Feedback on that thinking is welcome.

At this point I am expecting we will stay up to date on publishing all new hotfixes.

Here's the url for the TFS hotfixes: http://code.msdn.microsoft.com/Project/ProjectDirectory.aspx?TagName=Hotfix%2ctfs

Brian

May 15, 2008
» 2008 Beta Update

A few things that I've run across in the last few days...

 

1) If you have both TFS and Team Explorer installed on the same server, you may not upgrade just one of them to the SP1 Beta, you would need to upgrade both of them if you want to upgrade either of them.  If they are on different machines, there is not a problem.

2) When installing Visual Studio 2008 SP1 Beta on top of Visual Studio 2008, VS user settings are reset to default VS settings.  This bug is caused by code originally put in place to reset settings when upgrading minor version of VS, for example from VS Beta1 to VS Beta2 so that VS would have the latest default profile settings.  VS does migrate settings from VS 2005 to VS 2008.  VS certainly should keep user settings when upgrading to a service pack, which will be fixed for SP1.

Please backup your VS settings before upgrading to VS 2008 SP1 Beta.

Before installing SP1 Beta1, use the "Export Settings" wizard (“Tools” menu, “Import and Export Settings…”) to save your current settings, then install SP1 Beta1, and then use the wizard to import your settings back into VS.

 

Brian

May 14, 2008
» stpSoft Releases ReqSheet for TFS based Requirements Elicitation

ReqSheet enables offline creation and editing of requirements.  The tool manages a simple, lightweight requirements hierarchy and can be synchronized with TFS.  The requirements "documents" can be emailed, shared via Sharepoint and more.  Along with their storyboarding product, Reqsheet creates a great solution for requirements elicitation with TFS.

Check out more at the stpSoft web site: http://www.stpsoft.co.uk/vsts/

Brian

May 13, 2008
» VS/VSTS/TFS 2008 SP1 Beta is now available

Sorry for being a bit late to the game...  I should have posted yesterday but I've been drowning.  As you may already know, we released the Beta for 2008 SP1.  I'm eager to have you try it out and give us feedback.  You can find the list of new TFS features here.

I do, however, want you to keep in mind that it is a Beta and you shouldn't expect a completely seamless experience.  I installed the VSTS SP1 myself and it went pretty well.  The main thing I noticed was that I installed and it rebooted and then I had to install again (and reboot again) - the first install was .NET 3.5 SP1; the second was VSTS 2008 SP1.  After that, it ran great.

Before you install

It is imperative that you read the readme before you install.  It contains critical information about caveats for the Beta.

.NET 3.5 SP1 Readme - The .Net Framework update

VS2008 SP1 Readme - VS Pro or any of the VSTS role products.

VS Express Readme - All of the Express products.

 

Installing SP1 Beta

Visit this site for a great launching point to learn about, download and install SP1: http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx

 

The VS patch will patch the .NET Framework, all of the Team System Role SKUs and the stand-alone Team Explorer.

The Team Foundation Server update will patch a TFS server, proxy or build server.  If you also want to upgrade (it's optional) to .NET 3.5 Beta 1 on those "servers", then you will need to separately also install the .NET 3.5 SP1 Beta patch.

 

Giving feedback

We will be taking Beta feedback until May 30th.  There are a variety of ways for you to give it.  We look forward to hearing from you.

SP1 Forum - http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=2136&SiteID=1

SP1 Connect - https://connect.microsoft.com/VisualStudio

‘Visual Studio 2008 Service Pack 1 Beta’ and .Net Framework 3.5 Service Pack 1 Beta´

Installation issues - http://blogs.msdn.com/heaths/archive/2008/05/09/visual-studio-and-net-log-collection-utility.aspx

This blog is the best source of up to date information on installation issues.

 

A couple of things that I've seen come up...

  • Once you've installed it, you will need to make sure you "View installed updates" on Vista to see the SP1 installation in "Programs and Features".
  • The Beta 1 client is fairly difficult to uninstall.  See the read me above for info.  The good news is that if you install it on your "real" machine, you don't really have to uninstall it.  The final release will install directly over top of the Beta.  The TFS server Beta 1, on the other hand, must be uninstalled before installing the final release, but fortunately it's pretty easy.
  • There are some complexities around installing TFS with pre-release builds of SQL 2008.  Read this blog post if you want to try it.  This technique can actually be used even if you aren't using SQL 2008 but is required if you are installing a new TFS install against a SQL 2008 server.

Brian

» A new Team System Licensing Whitepaper is available

I know licensing around Team System continues to be a pain point.  In an attempt to address issues with clarity and understanding, we've produced an updated whitepaper that includes all licensing updates for VSTS 2008.  Please let me know if you have feedback.

Brian

May 12, 2008
» BizTalk Support with TFS

We get a reasonable amount of feedback from BizTalk users that would like a more seamless experience working with Team System and BizTalk.  The number one complaint that I hear is that building BizTalk with Team Build is very difficult.  The underlying reason for this is that BizTalk does not use msbuild for building their projects.

I've been working with the BizTalk team for the past several months to try to figure out how to fit this support in.  I'm very happy to say that I've just been informed that they will be getting it into the upcoming BizTalk Server 2006 R3.  I think this will be a nice improvement for all of you BizTalk/TFS users out there.  You can read more about the R3 release here: http://blogs.msdn.com/stevemar/archive/2008/04/23/biztalk-server-platform-updates.aspx.  Although this post doesn't mention the Team Build support specifically, I've been told it will be there.  Of course that goes with my usual caveat of "plans are always subject to change", but we'll keep working with them to help make sure we can deliver this great feature.

Now I'm off to talk to the SQL Server Reporting Services team to get them to commit to a release to add this support in :)  Those are the two I hear the most customer requests for.  If there are more that are important to you, let me know and I'll see what we can do.

Brian

» Another TFS Spec Published

Last week, we published another new spec on "Properties" for TFS.  This spec describes a new feature that allows you to associate properties with different artifacts in TFS.  The include Files/folders, shelvesets, labels, branches, Workspaces, pending changes, etc.  Ultimately, we hope to expand this to all artifacts in TFS.  This spec is still in draft form - in fact we just reviewed it internally on Friday and there was a lot of feedback to simplify some aspects of it.  We're very interested in your input as well.

To get you thinking about what this might be used for, here are some example scenarios...

  • You might use the properties to store additional attributes of files.  For example, if you were using TFS on Unix, you might attach a property containing the file's Unix files attributes when you pend the changes so that you can restore them when you get the file.
  • I'm hoping to use attributes on shelvesets as the basis for a future Power Tool that enables a nice code review experience.  Of course, you could beat us to it :)
  • Properties on labels could be used to describe their purpose and allow filtering of them in UI to eliminate clutter.
  • And more...

I suspect you'll be able to think of even more creative ways than I can of using properties.  Let us know what you think.  Remember the spec feedback forum is here.

Brian

April 28, 2008
» Team Foundation Server 2008 SP1 Preview

The stream of new stuff coming out for VS/VSTS/TFS 2008 continues! - see my recent post on an update to the TFS Power Tools.  It is time for me to tell you about what is coming in TFS 2008 SP1.  The release of the Beta is very close (as always, don't ask me for a date but if you want to play with it when it comes out, start figuring out how you are going to find the time :)).

TFS 2008 SP1 is going to be another fantastic release.  In TFS 2005 SP1, we started the tradition of adding small, tactical features that address common customer requests or enable delivering new value out of band.  In TFS 2008 SP1, that practice has gone into overdrive and we are delivering a ton of great new stuff for you.  Keeping with the theory that an SP should always be better (more stable, faster, etc) than what came before it, we continue to focus on tactical "low risk" improvements that are primarily based on customer feedback.  We leave the big game changing, major new scenario features for our major releases.

I've blogged a bit about what is coming in Rosario (our next major release); you can read some of our Rosario specs and you can check out our CTPs but that's not the point of this blog post.  I'm going to start blogging more about Rosario in the next couple of months.  For now I have so much great stuff to tell you about TFS 2008 that I can't imagine bothering you much with stuff that still a good ways down the road.

In addition to a long list of bug fixes (which I plan to publish when we get closer to SP1 release), there is an amazing list of new features.  The new features in TFS 2008 SP1 include:

Version Control

  • Add to Source Control - The Add to Source Control dialogs have been improved to make them easier to use and more scalable.  This include such simple things as adding a menu option to the context menu on the folder tree.  Also, the add experience has been turned into a wizard with the first page allowing you to select what you want to add and the second page making it easy to review what you are adding and filter out things that don't make sense (.pdb, .exe, etc.)

add1

add2

  • Drag & Drop - We've added the ability to drag files/folders from Windows Explorer (and other file drop sources) into the Source Control Explorer to add them.  This ties in well with the new Add to Source Control experience.  We have not yet added the ability to drag from the Source Control Explorer yet but if that's something you want, say so and we'll see if we can get it in a future release.
  • Version control of unbound files - One of my personal favorite new features...  Have you ever noticed that if you start typing in a version controlled file that is in an open solution, it auto-checks out and lets you keep typing?  If the file is not in a solution you get weird read-only behavior.  No longer!  We now treat all version controlled files equally whether they are in the open project/solution or not - providing auto checkout, diff, and all of the other version control behavior.  This makes it so much easier to work with version control when files outside the solution get loaded.
  • Simpler working folder mappings - I suspect you'll know what I mean when I say the "Workspace" dialog is not one of the more easily understood parts of TFS.  We have now added abilities to the Source Control Explorer so that you rarely have to look at it.  You can now right click on folders in the Source Control Explorer and map working folders, cloak mapped folders or unmap working folders.  This is an easier and faster way to change where source is stored on your local hard drive.  To further simplify this, we have added a link to the path bar in the source control explorer to indicate that no mapping has been created for a folder and give you a 1 click way of setting it.
  • Checkin date/time column - We've gotten quite a few requests for a check date/time column in the Source Control Explorer.  The feedback has been heard and now you have it.  Ultimately we'd like to make the whole columnar display configurable but alas... that's for another day.

LastCheckinColumn

  • Local Path is now a link -   The Local Path header in Source Control Explorer is now a link that allows you to easily open Windows Explorer to the folder.
  • Editable source location - The field that displays the server folder in the Source Control Explorer is now editable to make is easy to change to a new folder by just typing rather than navigating the tree view.
  • Download files to a stream - If you build TFS extensions, this can be a handy addition.  Instead of having download files to temp files and then read them back in and manage deleting the temp files, you can download directly in memory and process the contents.  I'm expecting some cool new Power Tools later this summer that will take advantage of this new feature.

Work Item Tracking

  • Ribbon support for Office 2007 - Instead of the uglier "add-in" experience that you now have with TFS 2008 & Office 2007, we now have clean and easy to use ribbon support for all relevant TFS operations.

image

  • Easily email work items - We've added support to Team Explorer to make it very easy to email a work item or a list of work items.  If you have Team System Web Access, these emails will contain links to it, giving recipients a great ability to explore related work items.

TFS Build

  • Easily locate TFSBuild.proj file - We added a right click menu item on the build definition in Team Explorer to take you to the TFSBuild.proj file in the Source Control Explorer.
  • Conditionalize builds on the trigger - We added the ability for a build script to detect how it was triggered so that you can have slightly different behaviors for CI, sheduled, manual, etc builds.
  • Detect test result - Rather than just failing the build, you can now detect the results of tests and conditionalize the build script on it.
  • Dynamically created properties - Dynamically created properties in the build can now be passed to solutions/projects.
  • Reduce build log noise - Eliminate "noise" created by project to project references.  Now you will only get 1 message about each.
  • Query build definitions across Team Projects - Added an object model API for querying build definitions across Team Projects.

Visual SourceSafe migration tool (vssconverter.exe)

We have received a significant number of reports of problems trying to the the vssconverter to move from VSS to TFS.  In TFS 2008 SP1, we invested very heavily in testing and bug fixing.  In addition to the few high level things I've called out here, we fixed many dozens of bugs - many of which were reported by customers.  We have also invested heavily in testing - collecting more than 20 customer VSS databases and making sure that the vssconverter handles them all seamlessly.  I strongly recommend you use this new vssconverter over any previous version.  I believe you will have a significantly better experience.  If you still have problems, we most certainly want to know about them.

  • Elimination of namespace conflicts - Properly convert files where a file was deleted and a different file was subsequently renamed to the same name (and some similar scenarios).  This is the #1 most common issue that people have had with the current converter.
  • Automatic solution rebinding - When converting a source tree, automatically change the binding in all solution and project files to bind to TFS rather than SourceSafe.  This eliminates a time consuming post conversion manual process.
  • Correction of timestamp issues - Many VSS databases contain timestamp inconsistencies (due to VSS using a client timestamp rather than a server one).  The converter now adjusts for this problem rather than getting confused.
  • Improved logging - The conversion logging messages are now more clear and provide more information necessary to diagnose what is wrong when the conversion process needs attention.

Other areas

  • SQL 2008 support - When we released TFS 2008, it was compatible with SQL 2008 builds that were available at that time.  Unfortunately, in the interim, there have been changes to SQL 2008 that broke TFS.  TFS 2008 SP1 includes the necessary changes to work with final SQL 2008 builds.  There will be a few "special" steps for installing TFS 2008 SP1 with SQL 2008.  Keep your eyes peeled for a newer post that gives the details of installing TFS 2008 SP1 with SQL 2008.
  • Team System Web Access links - If you've ever clicked on the link next to a filename in a checkin notification mail, then you know the feeling of disappointment :)  Unfortunately it doesn't give you the information you want.  With TFS 2008 SP1, if you have Team System Web Access installed, those links are now alive.  You can directly view the changes using the TSWA diff viewer.  This isn't the only place we've added the links - we've added TSWA links to many of the notification mails (work item changed, etc).  Overall a much nicer experience for people who don't live and die in Team Explorer.
  • # of projects per sever - Constraints on the number of projects per server have been written about quite a bit.  In TFS 2008 SP1, we have made some important improvements.  To refresh your memory, the primary issue is that the size of the cache that the TFS client downloads is proportional to the number of projects on the server.  This cache can get very large (10s of MBs) and slow things down to the point that usability is affected.  The changes we have made for SP1 include:
    • Only download metadata for projects a user has access to.  By only granting access to the projects a user needs, it will dramatically reduce the size of the metadata they download.
    • Implemented cache compaction to remove some stale data from the cache that is no longer used.  We have seen 30% or better improvements from this in some circumstances.
    • Improved the speed of the Connect To TFS experience when there are a large number of projects in the list.  We saw about an 80X improvement on one of our internal servers.
  • Create Team Projects with a script - This has been a popular request since we first released TFS 2005.  Now you can do it.  You still must have Team Explorer installed on any client you want to use to create Team Projects, however, it can be scripted.  There is a new Visual Studio API (I'll blog a sample in the near future) to do this or, even more easily, you can use a new command "tfpt createteamproject" in the March 2008 release of the TFS Power tools to do this easily from the command line or a batch file.

Performance & Scale

  • Improved syncing identities from Active Directory - Our tests show syncing a group with 200,000 users dropped from 69 minutes to about 10 minutes.  This can significantly reduce background overhead on a system with lots of users.
  • Improved checkin concurrency - Checkins are globally serialized - meaning 2 checkins (overlapping or not) must be processed in order and the second must wait on the first to complete.  In SP1, we were able to both improve the overall speed of checkin and reduce the blocking.  The blocking period is now only about 1/3rd of the checkin time.
  • tf branch /checkin - Creating new branches when they are large (ours are about 1,000,000 files) can be very time consuming.  We have created an option for creating a branch that is much faster.  tf branch /checkin creates the branch without first pending the changes and requiring a subsequent checkin operation.  The result is about a 10X improvement in branch creation speed.
  • Online index rebuilding - If you use SQL Enterprise with TFS, TFS will now rebuild indexes online allowing for less "downtime" for maintenance.  If you use SQL Standard (which comes with TFS), then you will still get offline index rebuilding and your TFS server will not be responsive during weekly maintenance jobs.  If your TFS database is small, it doesn't really matter but as it gets into the terra-bytes, online index rebuilds become a must.
  • Team build support for very large checkins - In TFS 2008 and previous versions, a very large checkin (hundreds of thousands of files) would trigger an out of memory error in TFS Build and prevent CI builds from triggering.  The out of memory issue has been fixed in SP1 and all checkins should properly trigger builds.
  • Faster security manager - We found an O(N^2) algorithm in the security manager for version control and have replaced it with an O(N) algorithm.  It will help version control performance across the board.  We found it on large Get operations (getting hundreds of thousands of files).  The change reduced the security manager time from 5-6 minutes to a few seconds.  The end result is that those gets were about twice as fast.
  • tf get /remap - Kind of a complicated feature but dang handy if you need it.  This is a new option on tf get that is intended to be used when you want to switch your workspace from one branch to another in the same code base.  You first change the workspace mapping and then issue a tf get /remap.  Because a large percentage of the files in two related branches are frequently identical, this command optimizes for that.  Rather than downloading all the content, it will only download the things that are different between the two branches.  I can reduce the get of a very large workspace from 10's of minutes to a few seconds.
  • Much, much more... - This is just a taste of the performance improvements we've made.  As always, each release includes a roll up of performance improvements we've made for our own internal dogfooding of TFS.  This release is no different.  There are dozens of additional fixes that we've made to improve performance.  If your installation is very large, you should notice nice responsiveness improvements across the board.

As you can see, we've packed a lot of value into this service pack.  I hope all of this makes your days just a little bit better.  As always, we'd love to hear your feedback.  At this point, the service pack is just about done, so I can't take a bunch of new feature requests and get them into this release but we can sure put them on the list for the next one.  I'll let you know as soon as the Beta is available and I'm eager to hear you feedback.

Brian