Buck Hodges

Visual Studio Online, Team Foundation Server, MSDN

  • Buck Hodges

    Please send error reports when prompted


    A couple of months ago, Jeff Lucovsky wrote about filing watson reports for Team Foundation.  When you log in as an administrator on the application tier for TFS, you may be greeted with a dialog asking if you would like to report errors to Microsoft.  Likewise, if Visual Studio crashes, you may be asked to report the error to Microsoft.  Please do this.  Specific developers and testers for each of the components of TFS are responsible for making sure that the errors filed through the Microsoft error reporting service (aka Watson reports) are filed as bugs to be fixed.  Each error report contains information about the state of the web service when the error occurred, such as the stack trace and the information passed in the HTTP request, to allow us to diagnose the problem.

    If you look at the event log on the application tier (you can run Event Viewer by entering "eventvwr" in the Run dialog triggered by clicking the Windows' Start button followed by Run...), you will see events logged for errors that are reported using Microsoft error reporting (they'll be reported to us only if you allow them to be sent in the aforementioned dialog).  If you look at the Application log type in Event Viewer, you can spot the events corresponding to reportable errors by looking for events where the Source column is Tfs and the Event column is 9000.  The actual error event usually appears just before it (or it may be separated by a couple of other events).

    You may not run into these errors, but if you do (remember, it's beta software), please consider reporting the errors so that we can fix them.

  • Buck Hodges

    Jeff Beehler's blogging


    Tonight I stumbled across Jeff Beehler's new blog.  So far he's written about our effort to upgrade our dogfood system to new code (we've been using a system based on the beta 2 release), which we'll release as a mid-July CTP.

  • Buck Hodges

    Using baseless merge with converted VSS shared folders


    In this forum thread, http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=18817, a question was asked about using baseless merge with converted VSS shared folders.

    [UPDATE Aug. 22, 2006]  The GUI will not show the relatives of baseless merges, only explicit branch relationships.

    [UPDATE Feb. 6, 2006]  I'm happy to say that baseless merges DO record history in the RC and RTM releases of TFS.  I wouldn't normally go back and edit a post that's this old, but since people will find it using search engines, I want it to reflect the final v1 behavior.

    [UPDATE June 27]  Unfortunately, it doesn't work this way currently.  I was informed this morning by the dev responsible for merge that merge history is no longer recorded for baseless merges.  This means there's currently no way to "re-connect" a branch source and target after import using merge.

    Given that, the only choice is to delete the target directory, check in the deletion, branch the source of the share to the target, and check it in.  With that, you'll have the source and target properly related for merging.

    Hopefully, the baseless merge will record the history before we ship (we're discussing it).

    [UPDATE July 15]  Baseless merge will not record merge history in version 1.

    The VSSConverter doesn't convert shared folders as branches.  Thus, there's no way to merge changes between what the "source" of the converted VSS share and the "target" of the share.  The source and the target have no branch or merge history that connects them.

    This is where the baseless merge comes in.  The purpose of the baseless merge is to establish a merge history between the source and destination.  A baseless merge creates merge history where there was none before.  In a normal dev scenario where you aren't converting from VSS, branching is what establishes the relationship to allow merging changes between the source and target.

    After the conversion is complete, perform a baseless merge between the source and the target of each converted VSS share.  Check in the baseless merge.  Now the source and the target are related through merge history.  As the source (or target) change, the changes can be propagated using the regular (not baseless) merge (command line or the GUI merge wizard).

    So, you only need to do the baseless merge once per shared source and target pair to establish the merge history.

    You can't perform a baseless merge from the GUI.  You must use the command line.  The command sequence looks like the following.

    tf merge /baseless shared-source shared-target

    tf checkin

    After checking in the baseless merge, the source and target are related as though the target had been branched from the source, though the GUI merge wizard will not show that (it queries only for literal branch relationships).

    You can find the command line documentation at http://blogs.msdn.com/buckh/articles/category/9194.aspx.

  • Buck Hodges

    Don't use the June CTP of SQL 2005 with Team Foundation

    It's a question that's come up a lot lately.  The June CTP of SQL 2005 will not work as the SQL backend for the current public releases of Team Foundation.  There have been changes in SQL 2005 that require changes in TFS for it to work.
  • Buck Hodges

    Skip the June CTP for Team Foundation


    The June CTP of VS 2005 includes Team Foundation Server.  However, this is not the June CTP discussed in the Team Foundation MSDN forums and elsewhere.  That CTP is now scheduled for July (it was the last week of June, so it didn't change much).  So, anywhere you've see a reference to the June CTP for TFS in the forums, think July CTP.

    The July CTP of TFS will include quite a few performance improvements, protocol changes (which means the just-released June CTP won't communicate properly with the upcoming July CTP of TFS), and nearly all of the code names are gone from assemblies, namespaces, and databases.  We are upgrading our dogfood system to use what we are going to release as a July CTP of TFS, so it's getting more time and effort than a normal CTP.  The June CTP of VS is just a build from June 1 (50601.01).

    So, if you are looking to install the latest Team Foundation Server and see how it has changed since beta 2, wait for the July release.

  • Buck Hodges

    CVS compared with Team Foundation Version Control


    In the Team Foundation forum a question was asked regarding CVS compared to Team Foundation Version Control.  Here's what I wrote.

    Of course, Team Foundation is much more than version control since we have integrated work item tracking, reporting, etc.

    I'm biased, of course, and I'm probably leaving stuff out.  I've used CVS in the past, but I wasn't exactly a power user.  Okay, here goes.

    TFS has atomic checkins.  When you check in, it all succeeds or fails.  No changes are committed unless the whole thing succeeds.  CVS does not have this.

    TFS has shelving, and CVS does not.  Shelving is a great way to juggle sets of changes as well as backup changes without checking them in.

    TFS has a SQL database for the server, and CVS does not.  This means that adminstering it uses the same tools famililar to database admins (in beta 2, there is ADAM data not in SQL, but ADAM has been removed -- ignore this comment if it doesn't mean anything to you).

    CVS and TFS both support parallel development.  Everyone checks out and modifies files and resolves conflicts before checking in.  There's no need to grab an exclusive lock.

    CVS does a better job with "offline" mode than TFS in version 1.  It's inherent to CVS because you just modify files and then sync up with the repository before checking in.  When you pend an edit in TFS, you must be able to talk to the server to do it.  We'll be doing a lot more for offline support in the next version.

    TFS branches in path space, which means that branch is a lot like copy.  CVS branches are different.  Branches in TFS can have different permissions (main vs. release branches).

    TFS has checkin policies, and CVS does not.

    TFS supports rename/move, but CVS does not.

    The TFS command line, h.exe, has really nice dialogs for command like checkin, shelve, and resolving conflicts (there's also a /noprompt option to suppress dialogs).  CVS doesn't have that.

    TFS comes with a full GUI, either VS 2005 or the Team Foundation Client (to be renamed Team Explorer).  CVS does not have a GUI itself, though there are several available.

    TFS uses its SQL server for history queries.  CVS doesn't have that support.

    TFS uses SOAP over HTTP (or HTTPS) to communicate with the server.  You don't need to open other ports or tunnel through ssh for remote access as you would for CVS.

    TFS stores files compressed as reverse deltas (diffs from one version to the next).  CVS can't do that.

    CVS and TFS both have branch and merge capabilities, but the changesets used by TFS make it easier to manage.

  • Buck Hodges

    How to use the TF version control command line from VS 2003 and other environments


    We've had a lot of customer feedback on wanting integration in VS 2003, VB6, etc.  The problem with the VS 2003 environment is that there can only be a single version of the CLR loaded into a process.  VS 2003 loads 1.1.  The TF source control integration requires that the 2.0 CLR be used.  Thus, our VS integration code won't run in VS 2003.  With other environments that don't load a particular CLR, there is the possibility of writing a plugin to provide TF source control integration.

    You can also use Team Foundation Client (which is being renamed Team Explorer) as a stand alone interface to all of Team Foundation running side by side with VS 2003.

    However, if you are writing code and you just want to check out, check in, etc. from with VS 2003, here's a way to do it right now.

    The command line works well and invokes dialogs for commands like checkin, shelve, history, resolve (for conflict resolution), workspace, etc.  These dialogs contain features you would get in the full VS 2005 source control integration (it's a subset of what's in the VS integration).  For example, the checkin dialog when run from the command line gives you the almost the same features as the Pending Checkins window (the shelve and unshelve buttons aren't available in the checkin dialog, but you get pending changes, the ability to compare files, associate or resolve work items, add checkin notes, and evaluate checkin policies).

    The diff command launches the diff viewer.  In beta 2, shelve has a dialog but unshelve does not (unshelve does have the dialog in the the July CTP).  Other commands like checkout (aka edit) and add don’t have any UI and just run.

    You can hook up get, edit, add, delete, checkin, status, diff, workspace, etc. this way.  For some commands, like checkin, status, and shelve, you don’t need to specify an argument (drop the $(ItemPath), which represents the currently open file, and just add the command for those).  The letter in the title after the ampersand becomes the second half of the shortcut so you can run it from the keyboard (Alt T E to edit the current file as shown below)

    Here's the information to put into the External Tools dialog.  After entering the information, click the Add button.  Repeat this for each command you'd like to run.

    Title:             Hat &Edit
    Command:           C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\h.exe
    Arguments:         edit $(ItemPath)
    Initial directory: $(ItemDir)

    The $(ItemPath) will cause it to check out the file that's currently open in VS.  Be sure to check the Use Output Window checkbox so the command line output goes to the VS output window.

    For commands like get, shelve, checkin, and status, you would omit $(ItemPath).

  • Buck Hodges

    VSTS Pricing Announcement


    Pricing is an important topic, and I've written several posts about it.  Today Rick LaPlante announced changes to the pricing of VSTS in response to customer feedback.

    Here's one part from Rick's post that I think will really make some people happy.

    One area where we received a lot of feedback was from smaller organizations looking to use Visual Studio 2005 Team Foundation Server.  The ability to amortize the cost of the server over a large number of devs makes the Server exceptionally cheap on a per seat basis when you are thinking 20, 50, 100, 500 people per server.  However when you are talking about 3 people on the server, well we can all do the math.  To help address this issue, we will place a limited version of Team Foundation Server in each Visual Studio Team System role edition.  This version will be restricted to a maximum of five users and should serve the needs of smaller organizations.  Teams that have a need for more users should still find that Team Foundation Server is significantly more cost effective than current source code control solutions and offers tremendous value through its role as the core of integration across all of the Team System.
    Be sure post your comments to his blog.  He really does read them.
  • Buck Hodges

    Team Foundation Hardware Requirements


    Many folks are interested in guidance on hardware.  In the Team Foundation forum, Brian Harry, Product Unit Manager of Team Foundation, posted the latest preliminary hardware requirements.

    If you are going with a single processor box (or if you want to maximize performance), I would recommend changing the warehouse update interval to reduce the load on the server.






    One server, less than 20 users.

    Application and data tier server

    single processor, 2.2 GHz

    8 GB

    1 GB

    One server; 20 to 100 users.

    Application and data tier server

    dual processors, 2.2 GHz

    30 GB

    2 GB

    Two servers; 100 to 250 users.


    Application tier server

    single processor, 2.2 GHz

    20 GB

    1 GB

    Data tier server

    dual processors, 2.2 GHz

    80 GB

    2 GB

    Two servers; 250 to 500 users.


    Application tier server

    dual processors, 2.2 GHz

    40 GB

    2 GB

    Data tier server

    quadruple processors, 2.2 GHz

    150 GB

    4 GB

  • Buck Hodges

    Eliminate ctl00oReportCell error and simplifying team project creation authorization


    Mike Attili has a posted a couple of useful things for using the Team Foundation beta.

    If you are tired of getting the "Unable to locate control: ctl00oReportCell" message, check out his solution to elminating the problem in Eliminate ctl00oReportCell error in Team System Project Portal.

    He also provides a guide for setting up a group and assigning the permissions in TFS, Rosetta, and SharePoint to allow users in that group to successfully create Team Projects.  See Simplify Authorization for Team Project Creation.

  • Buck Hodges

    How to fix a problem with Windows backup and the Volume Shadow Service after installing Yukon April CTP


    In the Team Foundation forum, a user posted the following problem with Windows backup after installing Team Foundation Server, including the April CTP of SQL 2005.

    Prior to installing Team Foundation Server and Client I was able to use the Windows backup utility to successfully create an ASR backup and full backup of the server.

    After installinf TFS I find the backup utility fails with the following error:

    Error returned while the creating volume shadow copy: 80042301

    After looking further into this, it appears that the volume shadow copy service was not started, nor could it be manually started. All other means to start the service failed. It seems to be stopping the backup utility from working.

    The answer was posted yesterday.

    There is a bug in SQL Server 2005 setup that causes incorrect value to be inserted in the following registry key.

    The workaround to fixing this problem is to delete the VssAccessControl key.
    Then you should be able to start the VSS service.

    This issue has been fixed in the May CTP of SQL Server 2005 and this workaround would not be needed for new installations of SQL Server 2005 May CTP (or later) as they do not create this registry key.

    Note: Once you have this problem, you'll have to manually delete the key. Upgrade to a newer version of SQL Server or uninstall/install would not remove this registry key automatically and the problem will persist.

  • Buck Hodges

    Microsoft to expand small Durham office


    The News & Observer wrote an article about Brian, Craig, and our office.

    Microsoft to expand small Durham office

    DURHAM -- Brian Harry jokes that he called Microsoft the evil empire before it was popular to do so.

    "I only ever worked for start-ups, and in those days, I viewed it as a behemoth," said Harry, 38.

    Now he runs a development office in Durham for the world's largest software company. It is an office that has operated in relative obscurity since it began almost three years ago, and one that is now poised for big expansion.

    If you are curious about the office, here are the stats in brief.

    WHERE: Durham

    WHAT IT DOES: Employees build pieces of Microsoft's Visual Studio product. It is used by developers to create programs that operate on Windows.


    FUTURE PLANS: To hire about 60 people during the next year as it expands locally. It's hiring for many roles, including developers and testers.

    TO APPLY: Send resumes to vsncrec@microsoft.com.

  • Buck Hodges

    Add an RSS feed to Team Foundation Source Control


    Jeff Lucovsky posted a nice two-part series on setting up an RSS feed for your Team Foundation source control server.  Check it out.

    Team Foundation RSS Feed Generator for Source Control
    Part 2: What's my source control server doing? A RSS feed to keep track of checkins

  • Buck Hodges

    VSTS 2005 FAQ blog posts fixes for known issues

    The Visual Studio 2005 Team System blog functions as sort of a FAQ in blog form.  They've started posting known issues and workarounds for the new beta release.  The first two posts are about the problems antivirus software can cause during setup and what to do about AD/AM setup failures due to spaces in paths.
  • Buck Hodges

    Data tier load with Team Foundation beta


    Did you install your beta data tier in Virtual PC or Virtual Server and see a high CPU load while its running?  Even on real hardware, you may notice some load when nothing would appear to be going on.  Someone mentioned on an internal mailing list that the data tier CPU load for a combined app and data tier installed in Virtual Server was quite high, averaging about 50-70% with most of that time being used by SQL analysis services (msmdsrv.exe).

    Well, here's the answer (I didn't write the question or the answer, but I hope people find it useful).

    The warehouse was designed to run processing every hour. For demo purposes the period was changed to 2 minutes in beta 2. On a weak system or a virtual machine you will see this behavior.

    Change the run interval on the app tier as follows.

    1. Stop TFSServerScheduler using 'net stop TFSServerScheduler'.
    2. Go to http://localhost:8080/Warehouse/warehousecontroller.asmx using a browser on the app tier.  Click on ChangeSetting and enter the following values and then press the 'Invoke' button (3600 seconds = run once per hour).
      1. settingID: RunIntervalSeconds
      2. newValue: 3600
    3. Restart TFSServerScheduler using 'net start TFSServerScheduler'.

    Note: It is important to restart TFSServerScheduler, as the interval is cached and will not take effect until the next run.

    You can also manually kick off the data warehouse.  Here are the steps to do so:

    1. Go to http://localhost:8080/Warehouse/warehousecontroller.asmx using a browser on the app tier.
    2. Click the ‘Run’ link.
    3. Press the ‘Invoke’ button.

     This will trigger a refresh of the reports.

    [Update]  Thanks to Mike for pointing out the the original instructions were a little rough.  I've updated them.

    [Update 2] Added msmdsrv.exe to the text to (hopefully) make it easier for folks to find the post when they notice that the Yukon April CTP Analysis Services process is consuming a lot of CPU time.

  • Buck Hodges

    Visual Studio Team Foundation Forum on MSDN


    Speaking of the forum, be sure to check out the Visual Studio Team Foundation forum.  Folks like Mike have posted useful information, and lots of MS folks are answering questions.  You may even get an answer from Rick LaPlante.

    The MSDN forums are nice, and they've obviously put quite a bit of work into them.  The forums are supposed to eventually replace the newsgroup, but I'm having a hard time finding what I haven't read once a thread changes.  Clicking through pages on the web site is too time consuming.  I was hoping that SharpReader was the answer since the forum has an RSS feed, but that's not been what I've expected.  I really miss being able to see quickly what I haven't read the way that Outlook Express shows newsgroup messages.  I'm hoping Josh Ledgard can help me see what I'm missing.  What I'd like to have is sort of a threaded RSS feed that SharpReader would use to show me what threads and replies I haven't read.  I answered pretty regularly on the newsgroup, and I'd like an easy way to do that now.  The tip about changing mode=0 to mode=1 is interesting, but it doesn't seem to do the trick either.

  • Buck Hodges

    SQL Server Reporting Services Permissions and Visual Studio Team Foundation Beta 2

    Mike Attili has a nice post on fixing reporting service permissions, Problems with SQL Server Reporting Services Permissions.  Bruce Taimana answered his post in the forum stating that was the correct way to handle it in the beta.
  • Buck Hodges

    VSTS pricing announced


    VSTS pricing is always a popular topic (see posts in January and June).  Finally the speculation is over, and the pricing was announced publicly today.

    Microsoft Details Pricing and Licensing for Visual Studio 2005 and Simplifies Microsoft Developer Network Subscriptions

    Frequently Asked Questions

    [Update 3/24] Rick LaPlante, general manager of VSTS, posted a great pricing grid here.  He also talks about the server pricing.

  • Buck Hodges

    Visual SourceSafe to Team Foundation Walkthrough


    Akash has posted two articles explaining how to use the conversion tool, VssConverter.exe, to migrate from Visual SourceSafe to Team Foundation Source Control.

    Walkthrough for migrating from Visual SourceSafe to Team Foundation

  • Buck Hodges

    Team Foundation Dogfood


    We're rapidly approaching the time for Whidbey Beta 2.  It is the first beta for Team System as a whole.  As a part of that, we'll be using it as our dogfood system.  I'm really looking forward to that, as each new dogfood "release" allows us to make more extensive use of features in the system.  We also get features that were missing, performance gains from tuning the system, usability improvements, and more robustness.

    John Lawrence, one of the Team Foundation dev managers, has posted the statistics for the current dogfood system that Team System uses.  Keep in mind that we are using the Dec. CTP release with patches.  That's right -- the code base for the system we use every day is essentially from mid-November.

    One of the very useful features that was rolled out for the first time with the current dogfood system was shelving.  Shelving has been very popular.  Developers use it constantly for everything from backups to code reviews.  You'll notice in John's post that there are 195 shelvesets in the system right now.  That's not counting all of the short-lived shelvesets that people created and deleted before the stat was snapped.

    The previous dogfood system we put in place actually remained in service for about six months.  That was the Whidbey Beta 1 Refresh with patches.  We got a lot of mileage out of that system.

    Our very first source control dogfood system (the current dogfood system has all the pieces of Team System) was one we set up over a year ago in one team member's office.  The Hatteras team used and ran that server for all Hatteras development.  Even at that early stage, we were able to make good use of it and not lose any data.  But we were only using Hatteras at that point.

    The current dogfood system is hosted in Redmond.  Our office is in Durham, NC.  The connection from our office to the corporate network is but a small fraction of what a corporate network provides.  That means we get the same experience as our customers with geographically-dispersed teams (we also have users on a couple of other continents).  I'm pleased to say that it's been an overall good experience.

    We've come a long ways from those earlier dogfood systems.  It's amazing to look back on how much has changed and how much we have learned in the process.  The experience has changed the product in significant ways.

    We are our customers.  Our colleagues are our customers.  We all provide feedback on the system, both on what works well and what we find frustrating.  It's made the product better.

  • Buck Hodges

    Installing the December CTP Release of Visual Studio Team System


    There's now a very detailed article on MSDN describing how to install VSTS on Virtual PCs.

    Installing the December CTP Release of Visual Studio Team System by David C. Bost
  • Buck Hodges

    Overview of Branching, Merging, and Shelving


    I wrote a post for the Team Foundation blog providing an Overview of Branching, Merging, and Shelving.

  • Buck Hodges

    Network programming links


    Adarsh Khare, who is a tester for the .NET networking classes, has useful blog.  Recent posts include the new NetworkInformation namespace that includes things like network availability events and a reference to an MSDN article on running ASMX without IIS.

  • Buck Hodges

    Team System Feedback

    Paul D. Murphy has a few good things to say about Team System in his Oh man is Team System Sweet post.
  • Buck Hodges

    BisRegEdit and related Dec. CTP mysteries

    Check out Jeff's new weblog.  His post from Monday may shed some light on Dec. CTP mysteries if you've ever run into messages regarding bisregedit.  Why BisRegEdit is sometimes the reported culprit of a failed install
Page 21 of 23 (573 items) «1920212223