Today we released the second update for TFS 2012 (TFS, TFS Express). You will find a detailed list of features in this blog post. You need to install the one that matches your installation – full or express. You do not need to uninstall TFS 2012 RTM or TFS 2012 Update 1. Installing TFS 2012.2 will take care of uninstalling your previous TFS 2012 installation and then installing the new version. You also do not need to detach collections or anything else special. As always, you should make a backup of your server prior to upgrade (you do make and test backups regularly, right?).
In this update, we preserve most of the configuration settings. This was a common complaint in the first update. We have a few more settings to preserve, most notably build machine settings, that we will address in the third update.
The one feature I want to highlight is the compatibility with TFS 2010 build agents/controllers. I mentioned this in a previous post. This is one of those features that’s incredibly valuable but isn’t obvious – you have to know about it.
This update process is completely new for the 2012 product cycle, and we learned a lot from our mistakes with the first update. Of course, our testing was even more thorough for this release.
The biggest change we made was getting more users trying early releases of it. We did this because we realized that some of the issues we had to patch for the first update were due just to the fact that customers exercise the product in different ways, and the combinations are nearly infinite. In a regular major version cycle, we have at least one public “go live” release that is crucial to flushing out bugs. We made CTP3 “go live” for our MVPs. We made CTP4 “go live” for everyone. That helped immensely. Every issue that was reported to us we investigated and fixed.
Enjoy!
Follow me on Twitter at http://twitter.com/tfsbuck
If you go to Team Foundation Service, create a new account, and then create a new team project that uses Git, you may receive the following error message when either you try to connect VS 2012 or use the “Open new instance of Visual Studio” from your project’s web page and try to add a new Visual Studio project to source control.
TF206018: The items could not be added to source control because either no team projects have been set up, or because you do not have permission to access any of the team projects in the current collection.
If you run into this situation, it is because Visual Studio 2012 does not know how to handle a team project that uses Git. The normal version control entries for the team project are not there, so when VS 2012 asks for $/<your team project>, the server sends back TF206018.
To fix this, you need to install Update 2 for Visual Studio 2012 and the Visual Studio Tools for Git, as described in the topic Create a new code project.
When the next major version of Visual Studio ships, the Git support will be built-in.
Follow me on Twitter at twitter.com/tfsbuck
With TFS 2012, we introduced a new feature in the web UI that makes it easy to look at the activity and job history on your TFS 2012 server (this feature was first introduced in 2012 RTM). Before the 2012 release, you would have had to look at things like tbl_Command directly in the database to get this information.
To see this feature, just go to http://<yourserver>/tfs/_oi if you have admin privileges.
Grant Holliday has written a great blog post, TFS2012: New tools for TFS Administrators, that walks you through the feature. One thing that I’ll call attention to is for folks not used to looking at the info in tbl_Command, you’ll need to make sure you notice the Execution Count in the web UI, which we use to record a sequence of the same calls without writing a row per call. Grant explains it in his post, but it’s easy to over look.
Also, if you are interested in what jobs run and when, check out TFS2012: What are all the different Jobs built-in to TFS?
Here are a couple of screenshots to whet your appetite.
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. more…
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.
more…
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. more…
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.
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.
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( "someone@yahoo.com", "password"); BasicAuthCredential basicCred = new BasicAuthCredential(netCred); TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred); tfsCred.AllowInteractive = false; TfsTeamProjectCollection tpc = new TfsTeamProjectCollection( new Uri("https://YourAcct.visualstudio.com/DefaultCollection"), tfsCred); tpc.Authenticate(); Console.WriteLine(tpc.InstanceId); } } }
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.
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.
Today we posted information on how to extend the Team Explorer window in Visual Studio 2012. Check it out!
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.
Introduction
Team Explorer in Visual Studio 2012 offers multiple options for extending the user experience. This sample demonstrates several of the extensibility points by:
I just posted on the ALM blog about this issue.
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.
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 Introduction 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. more…
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
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.
[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)
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.
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.
[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.
Build
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.
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:
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.
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.
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.
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
Downloads:
Other Build conference presentations related to TFS:
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.
Brian has listed the features in Visual Studio Update 1 and TFS Update 1.
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
[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=9.0.0.0, 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.
Cause
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.
Workaround
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 "10.0.0.0" version, which fixes the problem. Now any client (VS 2005 through VS 2012) will be able to load the policy successfully.
Fix
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!
[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) Download
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)
Download
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.
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.
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.
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!
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. more…
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!
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
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.
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
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.