Branching 101 with Doug Neumann - Visual Studio Team Foundation Server

Download this episode

Download Video

Description

[Note: This is the first in a series of videos on Visual Studio Team System from Brian Keller. Thanks for the content, Brian Smiley

The ability to branch and merge source code with Visual Studio Team Foundation Server can really enable a team to build software in a more agile and maintainable manner. But choosing the best branching strategy can be a bit overwhelming at first. In this interview we ask Doug Neumann, Group Program Manager for Team Foundation Server, to give us a Branching and Merging primer.

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image
      Secret​Software
      Very nice.

      Is it possible to get a video, in which all of the features of LINQ project is demoed on the whiteboard or in a notebook/pc.

      Like how to query SQL (Stored procedures using Linq...etc..), and  Access databases and other kinds of databases.

      How to query registry values using linq, or in memory arrays, andquery XML, use Regx with Linq to select matching stuff.

       
      Basically a demo of what is to come in Orcas.

      This would be very cool too.
    • User profile image
      briankel
      SecretSoftware: You can find some LINQ videos on Channel 9 here: http://channel9.msdn.com/tags/LINQ. And more LINQ goodness here: http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx.

      Brian Keller
    • User profile image
      staceyw
      Thank you. That was very informative.  How do you guys "typically" do all those CTP builds?  Do you take another branch or just snap a Label on the main branch when it starts to look good enouph for a CTP and keep going?
    • User profile image
      warren

      Whoah, weird... I was drawing almost exactly the same diagrams for my co-workers when explaining VSTS's branch/merge capability.  Smiley

      VSTS is a great product.  It really doesn't have a "1.0" feel to it at all, and the team is very helpful in explaining how to do stuff that's a bit off the rails. 

    • User profile image
      cetin.sert
      I would recommend downloading Orcas CTPs as the latest LINQ libraries are sure to be in those previews (Not from May 2006, more recent ones!!) Smiley
    • User profile image
      dougn

      CTPs don't go through the full release process that betas and final releases go through.  We just take a build off the main branch that passes our basic automated tests and ship it.  There's no real stabilization process or sustaining engineering after it ships, so we don't need to create a branch.

      I like your way of describing it: "Snap a label on the main branch when it starts to look good enough for a CTP."  That pretty much captures it.

    • User profile image
      glass
      He forgot the V1
    • User profile image
      briankel
      glass wrote:
      He forgot the V1


      What do you mean? Where?

      Brian Keller
    • User profile image
      Randy in Marin

      Brain,

      We have just purchased TFS for our organization.  I just read "The Build Master" by Vincent Maraia.  I have many questions, and almost know where to start.  Here are a few.  I'd appreciate any response.  Perhaps you can forward this to those that might be generating the guidance mentioned in the video. 

      1) I'm trying to create a recommendation for a standard folder and branching structure.  It would be nice to have a common pattern to follow.  Does it make sense to use a "Goldline", a mainline (e.g., VBL), and branch folders?  How does this look?   

      Team project
          Source Control
              Branch (branched from Main as required - FI/RI from main as needed)
                  BugFix (contains a branch for each bug?) 
                  Feature (contains a branch for each feature)
                  Release (contains a branch for releases, as needed)
              Gold (always ready for the client - FI/RI from main when good)
              Main (branched from Gold - normal location for development)

      Under Gold and Main would be the solutions required by the team for the project.   Do BugFix branches come from one location (e.g., Main) or several?  Is it redundant when branching releases and features? 

      2) If later a new project or solution is required, is it added at the lower level (e.g., Main or Feature) and then merged into the higher levels (e.g., Gold or Main)? 

      3) The P&P guide "Team Development with Visual Studio .Net and Visual SourceSafe" makes it clear that project references are "better" than file references.  Project references insure the latest version is used without having to manually update the reference.  If a file reference is used to load a library common to several projects, is it possible to automatically use the latest version?  Will the references have to be manually maintained? 

      4) This is related to the last question, but more TFS specific.  We have several teams working on diverse projects (e.g., mainframe conversion using cobol.net, property, courts, etc.).  We plan to use a team project for each large application (e.g., a new court system).  However, there will be some common code for several projects (e.g., CSLA, CAB, etc.).  Is it a bad idea to place and maintain the common code a separate team project?  Can the code from one team project be branched into another team project?  If not, would defining a special workspace to get the code be a bad idea?  I'm trying to use project references.  Perhaps I should not? 

      5) The P&P guide "Team Development with Visual Studio .Net and Visual SourceSafe" also states the local working directory structure should match the structure in VSS.  Does this apply to TFS? 

      6) Should only one workspace be defined per TFS?  For example: $/ maps to "My Documents\TfsServerName\".  This would let multiple users use multiple TFS instances on one client.  Will TFS have the same issues as VSS if two users accidentally share a workspace? 

      And then there is the daily build....

      I think these are hard questions.  Unfortunately, I have to come up with answers.  Perhaps you can point me in the right direction. 

      Thanks, 
      Randy   

      PS I watched the video twice.  Thanks for the info. 

    • User profile image
      briankel
      Randy -

      These are all excellent questions. Rather than answering each one individually, this week we are actually (fingers crossed) publishing the formal guidance we alluded to in the video. This is approximately 40 pages of Team Foundation Server-specific guidance for branching, merging, promotion modeling, etc. which I believe will answer most of your questions. I'm actually in the midst of conducting a final edit pass on that documentation as we speak, so I will post back to this thread once it's available (probably towards the end of this week).

      Stay tuned, and thanks for the kind words about the video!

      Brian Keller

      PS: If you want to drop me a line at briankel AT microsoft DOT com I will send you an email to alert you once this goes live. That way you don't have to keep checking back on this thread.
    • User profile image
      briankel

      The guidance I mentioned in the last post is now available:
      http://www.codeplex.com/BranchingGuidance

      Over the past week I have received several mails requesting this which confirms our belief that there's strong demand for this sort of guidance. We are very interested in knowing if this guidance answers everybody's questions so please don't be shy and leave comments on the Wiki if you have suggestions for future revisions.

      Brian Keller
      Technical Evangelist
      Visual Studio Team System

    • User profile image
      baleeted
      This is very helpful stuff. One thing that might be particularly useful is a little bit more integration with screencasts and/or walk-throughs when a team has decided on a strategy. We're all using VSTS, it'd be great to know exactly how to do what you describe in it Smiley

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.