Buck Hodges

Visual Studio Online, Team Foundation Server, MSDN

  • Buck Hodges

    Team Foundation Server 2012 Update 2 supports 2010 Build Agents and Controllers


    [UPDATE 9/26/13] TFS 2013 will include support for both TFS 2010 build agents and controllers and also TFS 2012 build agents and controllers.

    One of the changes we made in TFS 2012 for Update 2 was to support TFS 2010 build agents and controllers. This provides several major benefits. The first is the obvious one of not having to upgrade your build agents and controllers when you upgrade your server to 2012. The second is that you don’t have to alter your custom build WF activities to be built with 2012. The third is that you will still be able to use Windows XP and Windows Server 2003 to run build agents and controllers – OSes that are not supported with the TFS 2012 release. This feature is available in the currently released CTP 4 of Update 2, and the final version of Update 2 will be available shortly.

    Martin Hinshelwood, a Microsoft MVP, has written an extensive blog post about this feature.

    Visual Studio 2012 Update 2 supports 2010 Build Servers

    Did you know that Visual Studio 2012 Update 2 supports 2010 Build Servers? Being able to connect TF Build 2010 Controllers to TFS 2012 is opening up upgrade paths for customers that are currently blocked from upgrading to TFS 2012.



    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    OData Service for TFS v2


    Brian Keller has released a beta of the second version of his OData service. We are also working to bring it to TF Service, so stay tuned. Check out the beta and give him feedback!

    OData Service for Team Foundation Server v2

    Today we are releasing the beta of the OData Service for Team Foundation Server v2 along with a sample Windows Store application

    The purpose of this service is to help developers work with data from Team Foundation Server on multiple device types (such as smartphones and tablets) and operating systems. OData provides a great solution for this goal, and has been embraced by numerous developers for building great device-specific applications. OData is accessible from any device and application stack which supports HTTP requests.


  • Buck Hodges

    New build of git-tf required for use with Team Foundation Service


    Yesterday’s update of Team Foundation Service requires a new build of git-tf, which is now available for download. Using a version of git-tf prior to the update will result in repeated prompts for your password but will never succeed in authenticating.

    Follow me on Twitter at http://twitter.com/tfsbuck

  • Buck Hodges

    How to connect to TF Service without a prompt for LiveID credentials


    Normally when you connect to the Team Foundation Service you are presented with a web page to log in with your Microsoft Account (aka LiveID). When you log in you can choose to have it remember you and you won’t have to enter your Microsoft Account credentials again (unless you don’t log in again for a long time, and then you’ll be prompted again).

    That’s great for humans, but what about an application or another web service that wants to connect? For that the code will need to use “alternate credentials," which you must enable on your account. This is the same setting used to enable basic authentication for git-tf. Then we can write some code to connect to the service with those credentials.

    Longer term, we will have OAuth support available as well, but that’s not ready yet.

    Enabling Alternate Credentials

    You’ll need to first to turn on this feature. First, visit your account or project in a browser, click on your name in the upper right, and then click My Profile.


    On the User Profile dialog, click on the Credentials tab.


    Now provide a password and save the changes.


    Using Alternate Credentials in code

    Before going further, you’ll need to make sure that you have Update 1 for Visual Studio 2012 or newer installed. That update includes enhancements to the TFS client object model to support alternate credentials.

    The easiest way to get the latest update is either via clicking on the “toast” notification that pops up from the Windows taskbar or in VS going to Tools –> Extensions and Updates…, clicking on Updates followed by Product Updates and installing the latest update. Alternatively, you can download it here.

    You can verify that you have Update 1 (or newer) installed in VS using Help –> About Microsoft Visual Studio.


    Now that we have the credentials turned on, we’ll now use them from a simple console app.


    After creating a new console app, add a reference to Microsoft.TeamFoundation.Client.dll, which you will find under v2.0 in ReferenceAssemblies. The client object model for TFS is almost entirely built with .NET 3.5 (CLR 2.0) in order to support running the TFS web parts in SharePoint.


    Here’s the code.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.TeamFoundation.Client;
    namespace ConsoleApplication1
        class Program
            static void Main(string[] args)
                NetworkCredential netCred = new NetworkCredential(
                BasicAuthCredential basicCred = new BasicAuthCredential(netCred);
                TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred);
                tfsCred.AllowInteractive = false;
                TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(
                    new Uri("https://YourAcct.visualstudio.com/DefaultCollection"),

    I’ve added two using statements, one for System.Net to pull in NetworkCredential and one for Microsoft.TeamFoundation.Client for the TFS classes we’ll need.

    The first thing we construct is a standard NetworkCredential object with the username (the email address that you use for your Microsoft Account) and the password that you created for alternate credentials. On the TfsClientCredentials object, we set AllowInteractive to false to prevent a prompt dialog being shown if the credentials are invalid.

    In constructing the TfsTeamProjectCollection, we must specify the URL to the collection and the credentials. Note that all connections to accounts in TF Service require https. Currently, there is only one collection per account in TF Service, so it is always DefaultCollection.

    Finally, we call Authenticate() to verify that we have supplied the correct credentials and test that it is working by printing the unique InstanceId of the collection.

    Now the rest of the TFS client object model is available for use with the TF Service from applications that cannot prompt for credentials.


    Follow me on Twitter at http://twitter.com/tfsbuck

  • Buck Hodges

    Bing desktop–set your background to the Bing image of the day


    Okay, so this has nothing to do with ALM, but I really like the Bing desktop app for one feature: It sets the desktop background to the Bing image of the day. I used to run this app on Win7 and had missed it since moving to Win8 (I love Win8 and have it running on all my machines). Before the recent update, installing it on Win8 would result in a message telling you to upgrade to Win7. That’s a good reminder to be careful about what you do with version checks in your code.

    After downloading it, I drag it to the top of the screen and change the option to have it only show when I click on it (first option under settings) so that it doesn’t drop down when my mouse moves across the top of the screen.


    Of course my favorite use of the app itself is to find out more about the image by hovering over the “i" button (clicking on it will let you pick a different Bing image). Yes, I do use Bing as my default search engine these days, so I could find this info in the browser as well, but it’s more convenient.



  • Buck Hodges

    Extending Team Explorer in Visual Studio 2012


    Today we posted information on how to extend the Team Explorer window in Visual Studio 2012. Check it out!

    Extending Team Explorer in Visual Studio 2012

    Team Explorer in Visual Studio 2012 offers multiple options for extending the user experience. This sample demonstrates several of the extensibility points by adding a new Team Explorer page as well as by placing a new section onto the Pending Changes page.


    Team Explorer in Visual Studio 2012 offers multiple options for extending the user experience.  This sample demonstrates several of the extensibility points by:

    • Adding a new "Recent Changes" Team Explorer page with two sections.
    • Adding a new "Selected File Info" section to the built-in Pending Changes page.
    • Adding a "Recent Changes" navigation link under the Pending Changes navigation item.


    Follow me on Twitter at http://twitter.com/tfsbuck

  • Buck Hodges

    TFS 2012 Update 1: Permissions lost on attaching a collection


    I just posted on the ALM blog about this issue.

  • Buck Hodges

    Azure SDK 1.8 now available for build in Team Foundation Service


    Brian wrote a post today about the version control web experience changes that were in today’s update. Today’s update also included Azure SDK 1.8 on the build VMs. I’ve seen quite a few folks asking for it, of course.

    One of the questions we get often is why we don’t have X in the build VMs. Some of Brian’s post today touches on that, mostly in the form of the explanation for our lack of support for building Win8 apps. The other issue we have is keeping up with the new releases of SDKs of all sorts. For a few, like the Windows Phone 8 SDK, we’ll time updates of the build VMs to match the announcement. For most, like the Azure SDK, we will have to align it with a sprint deployment. I very much hope that at some point these SDKs are packaged in NuGet so that they can easily be pulled during the build based on whatever version your app requires. Until then, we are responsible for the installation of SDKs in the VM image.

    Follow me on Twitter at http://twitter.com/tfsbuck

  • Buck Hodges

    Doc on unattended configuration of TFS 2012


    TFS 2012 (RTM and newer) added a new tfsconfigure unattend command that supports unattended configuration of the server, build proxy, and SharePoint extensions. There’s now a new whitepaper available that explains it. While the paper is titled Unattended Installation of TFS 2012, it’s really unattended configuration.

    Unattended Installation of TFS 2012


    Unattended install is a feature of Team Foundation Server that lets a user pre-set all configuration parameters for a desired TFS instance in advance. This allows TFS to be configured from start to finish without pausing for input from the Configuration Wizard during the process. Unattended Installation takes place via the command prompt. This paper describes the two commands through which it is performed: Create and Configure.

    Who Should Use Unattended Install?

    This feature is ideal for users who are very familiar with TFS and the configuration process, and whose environment divides TFS functions over many different machines. For example, many large-scale enterprise systems have several servers that are designated to builds. Unattended install allows an administrator to quickly kick off the Team Build installation process on these machines without having to supervise each one independently. Furthermore, since the configuration for each build server will likely be almost or completely identical, it should be easy to set each machine’s configuration parameters quickly.

    Feature Overview

    The unattended install feature can be used to configure all different instance types of TFS. These include: Basic, Standard, AT-Only, Build, Proxy, and SharePoint Extensions. To do this, you must determine in advance how the instance should be configured — usually by creating an .ini file and editing it — and then run the specified configuration in the command prompt. This paper covers both the Create command to make this file and the Configure command to actually run the configuration. It explains the different options, or parameters, for these commands and touches on a few scenarios that unattended install does not support.


    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    November power tools release for TFS 2012


    Today we published a new release of the power tools for TFS 2012 Update 1. This includes important fixes for the backup/restore power tool to be compatible with the release of TFS 2012 Update 1. We did a lot of refactoring of the server DLLs for the cloud service, http://tfs.visualstudio.com, and we needed to update the backup/restore power tool in particular as a result.

    The one new thing we added in this release is x64 support for the PowerShell scripts.

    Beyond that, we fixed a number of bugs, most notably performance issues for the team members feature.

    Download power tools for TFS 2012 Update 1

    If you need the backup/restore power tool for TFS 2012 RTM (not Update 1 or newer), you can get it here.


    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    TFS 2012 Update 1 Issue: Error while configuring build


    [Update 2/1/13] A fix for the issues is now available.

    [Update 1/14/13] See this post for the latest on a fix with attaching collections.


    We’ve discovered an issue in TFS Update 1 that may result in errors when you try to configure a build agent or controller. You will see an error in the Build Service Configuration Wizard (configuring a new agent/controller) or in the TFS Administration Console (viewing the properties of a build controller/agent).

    In the event log on the server, you’d find an error about the database not being configured correctly.

    TF53010: The following error has occurred in a Team Foundation component or extension:


    Detailed Message: TF30065: An unhandled exception occurred.


    Exception Message: TF30040: The database is not correctly configured. Contact your Team Foundation Server administrator. (type DatabaseConfigurationException)

    Exception Stack Trace:    at Microsoft.TeamFoundation.Framework.Server.TeamFoundationSqlResourceComponent.TranslateException(Int32 errorNumber, SqlException sqlException, SqlError sqlError)


    Exception Message: Operand type clash: dbo.typ_BuildControllerTableV2 is incompatible with dbo.typ_BuildControllerTable (type SqlException)

    The workaround is to run the following commands.

    • iisreset
    • net stop tfsjobagent
    • net start tfsjobagent

    Grant Holliday posted more details here.

    [Update 11/30/12] Note that this is a race condition that you may not hit and that the app pools for TFS are set to recycle every 29 hours (the Regular Time Interval setting in IIS), which will also fix this issue.

    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    TFS and VS 2012 Update 1 now available


    [Update 2/1/13] A fix for the issues is now available.

    [Update 1/14/13] See this post for the latest on issues with attaching a collection.

    As announced on Soma’s blog, Update 1 for Visual Studio and Team Foundation Server 2012 is now available. Over at the ALM blog, you can find more details on what’s new. For those using the Team Foundation Service at tfs.visualstudio.com, you are already familiar with the new features, as we update the service every three weeks.

    In addition to fixing bugs that were discovered after RTM, here are the new Features in Team Foundation Server in Visual Studio 2012 Update 1, which I’ve copied here from the ALM blog.

    Note: The Version control warehouse still has a 260 character limit and you need to have this update applied to both your Team Foundation Server and Visual Studio client.


    One caveat I want to mention is with upgrading your build computers. After you install TFS Update 1 on your build computers to update them, you will need to go through the configuration again, including choosing the collection, setting the service account, etc. If you have settings you want to preserve, be sure to look them up in the TFS Administration Console on your build computer and write them down for use after you upgrade your build computer. We hope to have this fixed for Update 2.

    Power Tools

    The Team Foundation Server Power Tools will be updated for Update 1 as well. There were significant changes to the APIs in the server DLLs (not the web services – the .NET assemblies), so tools like the backup/restore tool for the server had to be updated. The update 2012 power tools should be available later this week, barring any last-minute issues.

    Server Installation

    I’ve seen some questions about how to install Team Foundation Server 2012 Update 1. Because it is a server and we need to do things like modify the database as part of the installation, we designed TFS 2012 to use the regular installer to install the updates. You do not need to uninstall anything. Just run the installer, and it will take care of updating your TFS. After the installer completes, it launches the upgrade wizard.

    So, when you go to http://www.microsoft.com/visualstudio/eng/downloads you’ll see two choices for TFS 2012, Install Now and Download Now.


    • Install Now will use the web installer and will download what is needed in order to install TFS 2012 Update 1
    • Download Now will download an entire layout, which you can use to install on a machine that doesn’t have internet access or if you need to update more than one and want to avoid the downloads by the web installer.

    After you run either one and the installation phase is complete, you will see the upgrade wizard.



    You then must confirm that you have a backup.


    Then select your database by setting the SQL Server Instance if the default isn’t correct and then using List Available Databases to see a list of all of the configuration DBs (usually there is just one).


    At that point it becomes just a matter of clicking the Next button a few times, watching the upgrade run (okay, only for a small DB – you may want to grab a bite to eat while it runs for a bigger DB), and you’re done!





    Note: If you had a browser open with the web UI for TFS 2012, you may get something garbled after the upgrade if you click on a link that doesn’t do a page refresh. The reason is that it’s a mix of the old and new web code. Just click Refresh in your browser to fix that.

    After clicking a link after upgrade (browser was open with the TFS web interface prior to upgrade):


    After clicking Refresh in the browser:




    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    New tool to upgrade from Visual SourceSafe to Team Foundation Server or Service


    Today we have released an upgrade tool for users of VSS to upgrade to either on-premises TFS or the Team Foundation Service in the cloud! It provides a wizard-based UI for upgrading a VSS repository to TFS 2010, 2012, or the service.

    Compared to the old VSS conversion experience, there are quite a few improvements.

    • Wizard-based UI
    • VSS DLLs are bundled with the tool (no need to have VSS installed)
    • No manual mapping or creation of XML files
    • Lots of bug fixes
    • Support for Team Foundation Service

    With mainstream support having ended back in July for VSS 2005, now is a great time to move.

    You can download it now and find the documentation here.

    [UPDATE 11/14/12] We will be changing the docs to indicate that you are not required to have an empty team project collection or team project for this tool to work. However, we do not validate that there will not be a collision before the migration starts, so you will need to make sure that there is no path in the destination in TFS that will be the same as what you are migrating from VSS.

    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    Windows Phone SDK now available in Build for Team Foundation Service


    Brian mentioned this in a blog post last week, but I think it may have gotten lost in everything else that was going on. The Team Foundation Service’s build feature (i.e., build in the cloud) has the Windows Phone SDK installed on it now so that you can build you Windows Phone 8 (and 7) apps. The blocker here had been that the SDK could not be installed on the VMs we use because they run Windows Server 2008 R2, and that was fixed with the SDK released last week.

    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    Video from 2012 Build Conference: Evolution of TFS into a Service


    This year at //build/ conference I gave a presentation on the evolution of Team Foundation Server from a box product to a service that has a box product. It’s been a fun journey, and I enjoyed telling the story of what our team has accomplished over the last couple of years. I start with the beginning of the 2012 cycle and go over the changes we’ve made to our process and engineering system to be able to ship every three weeks. Along the way I answer questions from the audience and wrap up with some of the lessons we’ve learned. I hope you enjoy it.

    Developing Continuous Services: Real world experiences of the Team Foundation Service engineering team



    Other Build conference presentations related to TFS:

  • Buck Hodges

    DevDiv is now running on TFS 2012 Update 1 final CTP


    Back in June, I wrote about the upgrade of the main Developer Division server to TFS 2012 RC. That post described both the scale of that server as well as the issues that we found in the process of upgrading it and the for the first week of running it (we found most all of the issues in the first week). Last month we upgraded that server to TFS 2012 RTM.

    Now this past Friday, we upgraded it to the final CTP for TFS 2012 Update 1. While the CTP is not licensed for production use, we wanted to use this opportunity to find the issues that you only find in production on such a large server. We’ve been upgrading our smaller internal “dogfood” server called pioneer every three weeks with every CTP we’ve released, and of course we put the same update on tfspreview.com every three weeks. However, the developer division server scale is different with a few thousand users all working on the same project.

    Just like we did with the 2012 RC, we found some issues. We are going to have these addressed for the final release of TFS Update 1, so you’ll be able to use it knowing that we have put it into production on our mission-critical server.

    • Web.config settings aren’t being maintained (affected both build and version control cache directory)
    • Circular group memberships are causing performance problems

    Brian has listed the features in Visual Studio Update 1 and TFS Update 1.

    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    Upgrading TFS build from 2010 to 2012 – issues and workarounds


    Jason Prickett has written a blog post summarizing issues and workarounds for problems encountered with TFS build when upgrading from TFS 2010 to TFS 2012.

    Upgrading your build definitions from TFS2010 to TFS2012

    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    Internal error loading the Changeset Comments checkin policy


    [Update 11/26/12] You can get the fix by installing Update 1 (or newer) for Visual Studio 2012: http://www.microsoft.com/visualstudio/eng/downloads.

    Some customers, after starting to use Visual Studio 2012 with their existing TFS deployment, have been receiving check-in policy errors having to do with the Changeset Comments policy. The errors look like:

    Internal error in Changeset Comments Policy. Error loading the Changeset Comments Policy policy (The policy assembly 'Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not registered.). Installation instructions: To install this policy, follow the instructions in CheckForComments.cs.

    The version number may vary slightly, but for this particular problem, it's always going to start with an 8 or a 9.


    With VS 2005 through 2010, to get the Changeset Comments policy, you had to download and install the Team Foundation Power Tools. With VS 2012, the policy is included in the box and requires no additional download. This problem is a bug that was introduced as a part of moving that check-in policy into the product.

    For this particular bug, only users using Visual Studio 2012 will be affected. If you have other users in your organization connecting to the same TFS server with VS 2005, 2008, or 2010, then the Changeset Comments policy should be working fine for them.


    There is also a simple workaround that you can put in place immediately, as long as you have administrative permissions on your team project. Using a Visual Studio 2010 or 2012 client, navigate to the Team Project Settings for the Team Project that has the Changeset Comments policy configured. Remove the check-in policy from the Team Project, and then immediately re-add it. The fact that you performed this step from a Visual Studio 2010 or 2012 client will re-register the policy on the server as the "" version, which fixes the problem. Now any client (VS 2005 through VS 2012) will be able to load the policy successfully.


    We are including a fix for this problem in the final version of Visual Studio 2012 Update 1. You can read more about Update 1 in Brian's blog post, but the currently available preview release of that update doesn't include this fix.

    We apologize for the inconvenience!

    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    Standalone installer for the TFS client object model


    [UPDATE 12/13/12] The TFS 2012 Object Model Installer is now available for download.

    This past week we released an installer for the Team Foundation Server 2010 SP1 client object model.  Up to this point the only way to get it was to install Team Explorer.  For folks writing tools that access TFS, this was a pain, as having to install TE was overkill when all that was needed was a small set of DLLs.  Lots of folks have asked for this, and it’s finally available.  We’ll be shipping a TFS 2012 client object model installer in the RTM timeframe as well.

    Team Foundation Server 2010 SP1 Object Model Installer

    This is the stand-alone Object Model Installer for TFS 2010 (Sp1).  This may be used for developing applications that integrate with TFS 2010.

    This is the same Object Model included with the Visual Studio & Team Explorer SKU, in a stand-alone package.  This OM will allow applications to connect to a TFS 2010 server, without the need for a Visual Studio or Team Explorer being installed on the machine. (Proper licensing / CALs are still required)



    Follow me on Twitter at twitter.com/tfsbuck

  • Buck Hodges

    Developer Division is running on TFS 2012 RC!


    This past weekend we upgraded the TFS server used by the Developer Division and other teams who deliver Visual Studio 2012.  It is now running TFS 2012 RC!

    Back in the beginning, the DevDiv server was our dogfood server.  Then as all of the folks shipping products in Visual Studio, there were too many critical deadlines to be able to put early, sometimes raw, builds on the server.   So we dogfood TFS on a server called pioneer, as described here.  Pioneer is used mostly by the teams in ALM (TFS, Test & Lab Management, and Ultimate), and we’ve been running TFS 2012 on it since February 2011, which was a full year before beta. Never before have we been able to use TFS so early in the product cycle, and our ability to get that much usage on early TFS 2012 really showed in the successful upgrade of the DevDiv server.

    We also run TFS 2012 in the cloud at http://tfspreview.com, and that’s been running for a year now.  While that’s not a dogfood effort, it’s helped us improve TFS 2012 signficantly. The other dogfooding effort leading up to this upgrade was Microsoft IT.  They upgraded a TFS server to TFS 2012 Beta, and we learned from that as well.

    The scale of the DevDiv server is huge, being used by 3,659 users in the last 14 days.  Nearly all of those users are working in a single team project for the delivery of Visual Studio 2012.  Our branches and workspaces are huge (a full branch has about 5M files, and a typical dev workspace 250K files).  As a result, we always find product issues when we upgrade it.  For the TFS 2010 product cycle, we did not upgrade the server until after RTM.  Having been able to do this upgrade with TFS 2012 RC, the issues we find will be fixed in the RTM release of TFS 2012!

    Here’s the topology of the DevDiv TFS deployment, which I’ve copied from Grant Holliday’s blog post on the upgrade to TFS 2010 RTM two years ago.  I’ll call out the major features.

    • We use two application tiers behind an F5 load balancer.  The ATs will each handle the DevDiv load by themselves, in case we have to take one offline (e.g., hardware issues).
    • There are two SQL Server 2008 R2 servers in a failover configuration.  We are running SP1 CU1.  TFS 2012 requires an updated SQL 2008 for critical bug fixes.
    • SharePoint and SQL Analysis Services are running on separate computer in order balance the load (cube processing is particularly intensive).
    • We use version control caching proxy servers both in Redmond and for remote offices.

    These statistics will give you a sense of the size of the server.  There are two collections, one that is in use now and has been used since the beginning of the 2012 product cycle (collection A) and the original collection which was used by everyone up through the 2010 product cycle (collection B).  The 2010 collection had grown in uncontrolled ways, and there were more than a few hacks in it from the early days of scaling to meet demand.  Since moving to a new collection, we’ve been able pare back the old collection, and the result of those efforts has been a set of tools that we use on both collections (we’ll eventually release them).  Both collections were upgraded.  The third column is a server we call pioneer. 

    Grant posted the queries to get the stats on your own server (some need a little tweaking because of schema changes, and we need to add build).  Also, the file size is now all of the files, including version control, work item attachments, and test attachments, as they are all stored in the same set of tables now.

    Collection A Collection B Pioneer
    Recent Users 3659 1516 1,143
    Build agents and controllers 2,636 284 528
    Files 16,855,771 21,799,596 11,380,950
    Uncompressed File Size (MB) 14,972,584 10,461,147 6,105,303
    Compressed File Size (MB) 2,688,950 3,090,832 2,578,826
    Checkins 681,004 2,294,794 133,703
    Shelvesets 62,521 12,967 14,829
    Merge History 1,512,494,436 2,501,626,195 162,511,653
    Workspaces 22,392 6,595 5,562
    Files in workspaces 4,668,528,736 366,677,504 406,375,313
    Work Items 426,443 953,575 910,168
    Areas & Iterations 4,255 12,151 7,823
    Work Item Versions 4,325,740 9,107,659 9,466,640
    Work Item Attachments 144,022 486,363 331,932
    Work Item Queries 54,371 134,668 28,875

    The biggest issue we faced after the upgrade was getting the builds going again.  DevDiv (collection B) has 2,636 build agents and controllers, with about 1,600 being used at any given time.  On pioneer, we didn’t have nearly that many running.  The result was that we hit a connection limit, and the controllers and agents would randomly go online and offline.  Working with WCF team, we now understand the connection settings, and this will be fixed for RTM.  We’ve also now got a test in place that finds the issue and verifies the fix.

    Here’s a subset of the issues we’ve found, including all of the ones we found the first day.  There are probably another dozen that we’ve found during the week that I haven’t listed.

    1. Build machine connections are limited to 128 for some reason.
    2. Build config wizard iterates through every build machine and resolves its DNS entry.
    3. Code to handle file attachments not yet upgraded fails. prc_RetrieveFIle was calling prc_MigrateFile incorrectly.
    4. Issue with leading key transfer when there are tables with duplicate index names in the database.
    5. Warehouse upgrade timed out on dropping primary keys.
    6. Creating a build label times out.  Bad query plan on prc_iiUpdateBuildInformation
    7. DevDiv Upgrade: File Migration Job is too slow
    8. Command-line only users will not have their location service cache updated on certain commands which leads to confusion on available services.
    9. Unable to access work items page.  MaxJsonLength should be configurable (in web.config) for JSON action results.
    10. Updating build controllers/agents makes many calls to the server and suffers lock contention.
    11. QueryBuilds is slow on vstfdevdiv.
    12. Browser cache needs to be cleared for some users after upgrade.
    13. Work item template links created when the server was 2010 no longer work.
    14. SOAP notification breaks compat with previous releases.
    15. Get with a workspace version used by tfpt scorch is slow.

    The upgrade to TFS 2012 RC was a huge success, and it was a very collaborative effort across TFS, central engineering, and IT.  We quickly got everything to full scale and running smoothly.  As a result of this experience and our experience on pioneer, TFS 2012 is not only a great release with an incredible set of features, but it’s also running at high scale on a mission critical server!

    I hope you upgrade your server to TFS 2012.  You are going to love it!


    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    How to customize the build summary page in TFS 2012 without a plug-in


    Jason Prickett has been writing some great posts about the new features in Build for TFS 2012.  One of my favorites is the ability for you to add sections to the build summary page without having to write any plug-ins.  You just use the WriteCustomSummaryInformation activity in your workflow or make the equivalent OM calls from a workflow activity.  The result is that you can display results, hyperlinks, and more on the build summary page.

    TFS11 RC – Simple Build Summary Customization

    So, I did a few posts when TFS 2010 released on how developers could customize the Visual Studio Build Details View. However, it required creating a VS Add-In or Package and then deploying that to all your clients. Well, with the RC release of TFS 11 and Visual Studio, there is a much easier way to add simple content to your Build Details Summary view.


    Here’s a screen shot showing a “My New Section” that he added.  Enjoy!


  • Buck Hodges

    Visual Studio 2012 features enabled by using a TFS 2012 server


    While many of the features in Visual Studio 2012 are available to users using TFS 2008 or 2010, there are some features that are only available when using a TFS 2012 server.  Also, the web experience in TFS 2012 has been rebuilt entirely from the ground up, and the result is a fast, fluid experience that also includes new experiences tailored to Scrum.

    Once you’ve upgraded your server to TFS 2012, installed your first TFS server, or are using the Team Foundation Service Preview, here are some of the features you are now able to use.  The goal here isn’t an exhaustive list but to get you started.

    Version Control

    • Async checkout – We have added a new TFS 2012 feature so that VS 2012 will do checkouts in the background for server workspaces.  That eliminates the pause when you start typing and VS checks out the file.  Turning it on turns off checkout locks, but you can still use checkin locks.  You can find out how to turn it on here.
    • Merge on Unshelve – Shelvesets can now be unshelved into a workspace even if there are local changes on files in the shelveset.  Conflicts will be created for any items modified both locally and in the shelveset, and you will resolve them as you would any other conflict.
    • Local workspacesLocal workspaces allow many operations to be done offline (add, edit, rename, delete, undo, diff) and are recommended only for workspaces with fewer 50,000 files.  Local workspaces are now the default with TFS 2012, but you can control that if you want server workspaces to be the default (setting is in the dialog shown here).

    Alerts editor – Replacing the power tool, there’s now an even better experience built into the web UI for managing your email notifications.  You will be able to see and manage all of your alerts in one place.  To get to it, go to a project, click on your name in the upper right, and choose Manage Alerts.  Note that you can only get to it if your administrator has configured your server to send email.

    Retry build – If your build fails for reasons unrelated to your changes, you can now right-click and retry it.

    My Work – This is a new feature of Team Explorer that allows you to suspend and resume work quickly and easily.  This feature is only available in Premium or Ultimate.

    Code Review – You will be able to use the new code review experience.  You can start a code review from the Pending Changes page in Team Explorer or from the History window by right clicking on a changeset.  Your list of code reviews is shown in the My Work window.  This feature also requires Premium or Ultimate.

    Agile/Scrum – We’ve added a first-class experience for Scrum in TFS 2012 in our web UI.  To use these, teams will need to be created.  You can learn more here.

    • Team – We now have teams in TFS!
    • Task Board
    • Product Backlog and Sprint Planning – these require Premium or Ultimate (see this post about enabling via the licensing feature)
    • Team Home Page with a burn down chart and customizable tiles based on team favorites.  To add tiles to a team’s home page, create team favorites in work item tracking, build and version control.

    Feedback – You’ll be able to use this feature to request feedback on your work, and users will be able to use the Microsoft Feedback Client (including accessing it from Microsoft Test Manager).

    Storyboarding – This is available in VS Premium or Ultimate and in Test Pro, and TFS 2012 adds a Storyboard tab to work items such as User Story.  You can learn more here and find additional shapes here.

    You can also use the new unit testing features to run tests via Nunit, xunit, qunit, and more in your TFS build (aka team build).

    Microsoft Test Manager – there are a few features only available when using MTM 2012 with TFS 2012

    • Inline Reports/Test Results (Testing Center -> Plan Activity -> Results)


    • Exploratory feature (Testing Center->Test Activity->Do Exploratory Testing, Testing Center->Test Activity->View Exploratory Test Sessions)


    • Support for Standard Environments (Lab Center->Lab Activity->Environments


    For a more detailed list of the features in ALM for 2012, see the ALM 2012 section or download the product guide.  There’s also a list of what’s new in VS 2012.

    [UPDATE 6/20/2012]  I’ve added more details around MTM requested by Neno and supplied by Ravi.  I’ve also fixed the broken product guide link (thanks, Mayur).

    [UPDATE 6/7/2012]  TFS Express does not include any of the Agile features.  It is really focused on source control, build, and bug tracking.  You can read more about it here.

    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    Team Explorer 2012 keyboard shortcuts


    Team Explorer 2012 has the following keyboard shortcuts for the built-in pages.  We are adding some shortcuts within the pages for RTM.

    UPDATE 08/20/12:  The last seven shortcuts were added for RTM.

    Shortcut Team Explorer Page
    Ctrl+' Search
    Ctrl+0,H Home
    Ctrl+0,P Pending Changes
    Ctrl+0,M My Work
    Ctrl+0,W Work Items
    Ctrl+0,B Build
    Ctrl+0,R Reports
    Ctrl+0,D Documents
    Ctrl+0,S Settings
    Ctrl+0,A Web Access – team home page
    F5 Refresh
    Ctrl+Up Arrow Move focus to the previous visible section header
    Ctrl+Down Arrow Move focus to the next visible section header
    Alt+Left Navigate backward
    Alt+Right Navigate forward
    Alt+Home Focus the navigation control
    Alt+0 Focus the page top level content
    Alt+[1-9] Focus the visible section [1-9] level content
    Alt+Up Focus the previous visible section content
    Alt+Down Focus the next visible section content

    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    After upgrading: Updating licensing and enabling async checkout for server workspaces


    The other day I wrote a post with a summary of links for upgrading team project settings to turn on all of the new features, such as code review, task board, and more.

    There are a couple more things I want to point out that you’ll want to tweak after the upgrade.

    First is licensing for the feature set.  The default setting is Standard.  You can choose to set the default to Full if all of your users are licensed for Premium, Ultimate, or Test Professional 2012 (see the editions page).  If not, you can add the people or groups who are licensed for full.  Only users with Full access will get the following features.

    • Backlog and Sprint Planning Tools
    • Request and Manage Feedback

    Without adding licensing access to the feature set, you will get "TF400409: You do not have licensing rights to access this feature: Backlog and Sprint Planning Tools" (you may see other features listed, depending on what you try access).

    From the Welcome Page, click on Administer Team Foundation Server and then click on the Web Access tab.  To change the default, click on Full and then click on “Set as default web access” to make it the default.  The screen shot shows what you’ll see after making the change.  Note that the “Limited” setting is for users who don’t have a CAL and that you want to grant access to see their work items and file new ones (also known as work item only view in the TFS 2010).


    Second, while we have a great local workspaces feature that is new for TFS 2012 and you can easily switch a server workspace to a local workspace, you may want to keep your workspace a server workspace if it is extremely large (about 50,000 files for a spinning disk, higher for SSD).  Internally, our dev workspaces are often 250,000 files or more (getting them trimmed down is an ongoing effort).  We’ve introduced a feature in TFS 2012 where checkouts in VS 2012 are completely asynchronous if you enable the setting on the TFS 2012 server.  That means that there’s never a pause in VS when it checks out a file you are editing – it happens in the background.

    As a consequence of turning on this setting, TFS disables exclusive checkout (any existing ones are converted to exclusive checkin locks) and the get latest on checkout feature.  You can find the documentation here.  You’ll also see in this dialog that you can control whether newly created workspaces default to server or local (out of the box, the default is local workspaces, since we believe that’s what the vast majority of folks will want most of the time).

    To get to this dialog, choose Team –> Team Project Collection Settings from the main menu in VS, then choose Source Control.


    [UPDATE 6/4/2012]  I've included the TF400409 error message.

    Follow me at twitter.com/tfsbuck

  • Buck Hodges

    Use the wizard to upgrade team projects in TFS 2012


    As you’ve seen from Brian’s post and a bunch of others, Visual Studio and Team Foundation Server 2012 RC are now available.  One of the consistent pain points in upgrading from one version of TFS to the next has been in upgrading the process for a team project.  With TFS 2012, we’ve taken our first steps toward making it dramatically better.  We now provide a wizard that is able to upgrade a team project’s process quickly and easily if you have made no customizations or only a limited set of customizations.  There are a number of resources available to help you through the process, and I wanted to provide a collection of links in one place.

    First, Tim Elhajj, who creates documentation on administering TFS, has posted a very easy to read article on how to use this new configuration upgrade wizard, and the end of that page has links to MSDN for resolving errors and dealing with the differences in the Agile process template as well as adding new shared queries that will be automatically created for new team projects.  If you are new to upgrading TFS, you can start at the beginning to walk through the upgrade process.

    Ewald Hofman, a program manager for work item tracking, has posted code for a tool to allow you to automate upgrading many team projects.  For those of you with lots of team projects, that’s really useful.  If you want to know more details on how the project upgrade process works, you’ll want to read his deep dive on it.  It’s called configuring features, but it is team project process upgrade.

    What we’ve provided in 2012 is not going to solve the problem of upgrading significantly customized or custom-built processes, but it should go a long ways toward helping so many folks who don’t make significant changes to the process template.

    Though not directly related to upgrading your team projects, you can get an overview of what all has changed VS and TFS 2012 on the What’s New in Visual Studio 2012 RC page.

    Follow me on twitter

Page 2 of 23 (573 items) 12345»