<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Team Foundation's WebLog : Source Control</title><link>http://blogs.msdn.com/team_foundation/archive/tags/Source+Control/default.aspx</link><description>Tags: Source Control</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Overview of Checkin Policy</title><link>http://blogs.msdn.com/team_foundation/archive/2005/04/15/408700.aspx</link><pubDate>Fri, 15 Apr 2005 20:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:408700</guid><dc:creator>Team Foundation</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/team_foundation/comments/408700.aspx</comments><wfw:commentRss>http://blogs.msdn.com/team_foundation/commentrss.aspx?PostID=408700</wfw:commentRss><description>&lt;P class=MsoNormal&gt;My name is Jiange Sun and I'm a tester in Team Foundation Version Control (TFVC) team. I am responsible of testing add, checkin, delete/undelete, get and permission features. With this post, I'll provide an overview of checkin policies in TFVC.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;The checkin policy provides a mechanism for an organization to define checkin rules for a team project and enforce them by the source control client during the checkin process. &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Checkin policies are implemented with the extensible checkin policy framework; third parties can implement their own checkin specific to their own application. &lt;a href="http://blogs.msdn.com/jimpresto/"&gt;Jim Presto&lt;/A&gt; has a post on how to implement a checkin policy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;We include 4 checkin policies in Visual Studio Team Foundation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI class=MsoNormal&gt;Clean Build (Requires that code is error clean before check-in) Note: This one will go away after beta2 and be integrated in to “Code Analysis” policy&lt;o:p&gt;&lt;/o:p&gt; 
&lt;LI class=MsoNormal&gt;Code Analysis (Requires that code analysis is run before check-in)&lt;o:p&gt;&lt;/o:p&gt; 
&lt;LI class=MsoNormal&gt;Testing Policy (Requires run check-in tests before check-in)&lt;o:p&gt;&lt;/o:p&gt; 
&lt;LI class=MsoNormal&gt;Work Items (Require that one or more work items be associated with every checkin.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal&gt;Next, I will be using the “Work Items” policy as an example to walk through a use case scenario. &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Checkin policy Configuration&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Let’s pretend that you are a Team Lead and you want your developers to associate at least one work item for their checkins. After multiple unsuccessful attempts on this message through team meetings and emails, you’ve had enough and decide to take advantage of the power of the checkin policy feature in Team Foundation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;You start VS, open the Team Explorer window.&lt;o:p&gt;&lt;/o:p&gt; &lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;On Team Explorer window, right click on your team project, select “Team Project Settings” | “Source Control …” from the context menu.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;On Source Control Settings dialog, select the Checkin Policy &lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tab.&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Selects the “New…” button to define a new checkin policy:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG src="http://jiange_sun.members.winisp.net/images/CreateNewCheckinPolicy.JPG"&gt; 
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;Select Work Items and click on Ok:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG src="http://jiange_sun.members.winisp.net/images/WorkItemPolicyConfiguration.JPG"&gt; &lt;BR&gt;Note: Checkin policies include a mechanism for providing instructions to the user in the event that the policy plugin is not installed on their system. Since the work item policy is included in our release and will be installed when you install Visual Studio Team System, the above dialog will go away after Beta2. &lt;o:p&gt;&lt;/o:p&gt;
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;6.&amp;nbsp;&amp;nbsp;&amp;nbsp;Click on Ok button. You see the newly added Work Items policy is showing in the list. You can also “Edit”, “Remove”, “Enable” and “Disable” a policy with a single button click on this dialog:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG src="http://jiange_sun.members.winisp.net/images/CheckinPolicy.JPG"&gt; 
&lt;P class=MsoNormal&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7.&amp;nbsp;&amp;nbsp;&amp;nbsp;Click on Ok and that’s it. You’ve just finished configuring the Work Items checkin policy for your team project. Next let’s see how this policy is enforced automatically when your developers try to do a checkin without associating a work item.&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;SPAN&gt;Checkin policy Evaluation&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Checkin policy evaluation process occurs during checkin process with the checkin dialog (both command line and VS). Let’s pretend that John Doe is a developer in your team and he is curious to see how the checkin policy you configured works:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;a.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;John starts VS and opens the solution. He makes some changes in his code and is ready to check in. He right clicks on his solution in solution explorer and selects “Check in…” context menu.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;b.&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;John clicks on the “Check in” button and a “Policy Failure” dialog is presented since the Work Items checkin policy has not been satisfied:&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG src="http://jiange_sun.members.winisp.net/images/PolicyFailure.JPG"&gt; &lt;BR&gt;Note: John really should’ve clicked on “Policy Warning” channel on the checkin dialog to see if all checkin policies are currently satisfied before he clicks on check in button. If John checks “Override policy failure and continue checkin”, the reason text box will be enabled and he can provide additional information about why he is checking in despite the policy failure.&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;The Ok button is then enabled and the checkin will succeed if he clicks on it. &lt;o:p&gt;&lt;/o:p&gt;
&lt;P class=MsoNormal&gt;c. &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;John clicks on the Cancel button on the “Policy Failure” dialog and he noticed that the checkin dialog has automatically switched to “Policy Warnings” channel for him. He sees the reason of the policy failure: “You must associate this checkin with one or more work items.”&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;IMG src="http://jiange_sun.members.winisp.net/images/PolicyWarning.JPG"&gt; 
&lt;P class=MsoNormal&gt;d. &lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;John clicks on the “Work Items” channel on the “Check in” dialog and checks a work item. He then switches back to the Policy Warnings channel and now he sees a description that reads “All checkin policies are currently satisfied.”&lt;/P&gt;
&lt;P class=MsoNormal&gt;e.&amp;nbsp;&amp;nbsp; John clicks on “Check in” button and this time it succeeds.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;In this post, we looked at how to configure checkin policies, when checkin polices are evaluated and how to override a checkin policy failure. As you’ve seen, it’s pretty straightforward to use the new checkin policy feature in Visual Studio. Please let use know if you have any feedback on the checkin policy. &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=408700" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/team_foundation/archive/tags/Source+Control/default.aspx">Source Control</category></item><item><title>Overview of Branching, Merging, and Shelving</title><link>http://blogs.msdn.com/team_foundation/archive/2005/02/23/379179.aspx</link><pubDate>Thu, 24 Feb 2005 00:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:379179</guid><dc:creator>Team Foundation</dc:creator><slash:comments>32</slash:comments><comments>http://blogs.msdn.com/team_foundation/comments/379179.aspx</comments><wfw:commentRss>http://blogs.msdn.com/team_foundation/commentrss.aspx?PostID=379179</wfw:commentRss><description>&lt;p&gt;I'm Buck Hodges, a software developer on Team Foundation working on Source Control.&amp;nbsp; I work on the client portion of Source Control, focusing primarily on the client object model and command line.&amp;nbsp; With this post, I'll provide an overview of what we offer for branching, merging, and shelving, which is a feature unique to Team Foundation Source Control.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Branching&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Branching plays a key role in software configuration management (SCM) for producing builds and releases that can be maintained in an orderly manner.&amp;nbsp; In Team Foundation Source Control, we branch in "path space," which means that it is very much like copying items in that it creates new copies of the items.&amp;nbsp; However, branching, unlike copying, maintains the history relating the source to the target to allow merging future changes.&lt;/p&gt; &lt;p&gt;By having branching create new copies, branches are easy to navigate.&amp;nbsp; They appear in the Source Control Explorer just like the source items.&amp;nbsp; It also makes it very easy to simultaneously work on as many branches of the same code base as you need -- just get it as you would any other folder.&lt;/p&gt; &lt;p&gt;When it comes to maintaining permissions for branches, it's as easy as setting permissions on any folder in the server, because branches are regular paths and use the same path-based permission access control.&amp;nbsp; Open Source Control Explorer, navigate to the folder, right click on it, choose Properties from the popup menu, and click on the Security tab.&amp;nbsp; From the command line, you can use the permissions command.&lt;/p&gt; &lt;p&gt;Creating branches uses very little additional storage space.&amp;nbsp; The server minimizes the storage required by only keeping one copy of content no matter how many different files contain it.&amp;nbsp; So, if you have 100 copies of a 1 MB file and all of the files are identical, the server will only store only 1 MB, not 100 MB.&amp;nbsp; So, when you create a new branch and commit, all of the files in the new branch that are identical to the files in the branch source reference the same content.&amp;nbsp; The result is that a branch consumes very little additional storage space, and that storage space expands only when the branched file becomes different than the source.&lt;/p&gt; &lt;p&gt;To create a branch, you can choose to branch by date, label, workspace version (i.e., the versions you last retrieved into your workspace), or latest server version.&amp;nbsp; Furthermore, you can mix and match as you need.&amp;nbsp; For example, you can branch based one folder based on a date and another folder based on the latest version of its items.&amp;nbsp; &lt;/p&gt; &lt;p&gt;As with all changes in Team Foundation Source Control, changes exist only within the local workspace until they are committed to the server.&amp;nbsp; This means that after branching if you need to edit files before checking them in, you can.&amp;nbsp; You can also build and test the code in the branch to make sure it works properly.&amp;nbsp; Once you are satisfied with it, you commit the entire set of changes to the server as a single changeset.&lt;/p&gt; &lt;table id="table2" cellspacing="0" cellpadding="5" width="100%" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Creating a Branch of the Latest Version of the Code&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/branch-dialog-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/branch-dialog-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;Merging&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Once you have created a branch, moving changes from the branch source to the branch target or from the branch target back to the branch source is very easy.&amp;nbsp; Team Foundation Source Control maintains the relationships of branched items and the merge history.&lt;/p&gt; &lt;p&gt;Merging across branches is more than just three-way file content merge.&amp;nbsp; All the changes that have been made are merged, including additions, deletions, undeletions, and moves (renames).&amp;nbsp; For example, if an item has been renamed from A to B, merging that change to another branch will also rename the corresponding item, using the branch and merge history, in the other branch.&lt;/p&gt; &lt;p&gt;For files where you have made changes to both the source and the target, merging the changes will result in conflicts.&amp;nbsp; These conflicts are maintained by the server, and the client provides a dialog, both from the command line and Visual Studio, that shows the conflicts and leads you through resolving them.&amp;nbsp; For each conflict, you choose whether to accept the source or target changes or a combination of them.&amp;nbsp; If there are edits to the file, you can choose to have the changes merged for you automatically.&amp;nbsp; If the edit changes cannot be merged automatically or you would like to manually merge the files, the conflict resolution dialog will launch a graphical three-way merge tool.&lt;/p&gt; &lt;p&gt;As I mentioned with branching, your merge becomes a set of pending changes that are contained within your workspace.&amp;nbsp; You can make additional changes to the result of the merge, such as changing or moving files or fixing build issues, before committing the merged changes.&amp;nbsp; The entire set of merged changes is committed atomically as a single changeset.&lt;/p&gt; &lt;p&gt;Once a merge has been committed to the server, it becomes part of the merge history of the items involved.&amp;nbsp; The next time you need to merge a set of changes, Source Control will tell you what changes have not yet been merged.&amp;nbsp; You don't have to keep track of the merges -- the system takes care of this for you.&amp;nbsp; At any time, you can get this information from either the command line or from the Source Control Explorer in Visual Studio.&lt;/p&gt; &lt;p&gt;You can choose what changes you want to merge.&amp;nbsp; You can choose to merge only a subset of the changes, so that, for example, you can merge a single bug fix without merging all of the changes that occurred before it.&amp;nbsp; Knowing what change fixed a particular bug becomes simple with the integrated Work Item Tracking.&amp;nbsp; When a developer checks in changes, he or she can associate or resolve work items.&amp;nbsp; When the changes are checked in, a link is created between the work items and the changeset.&amp;nbsp; So finding what changes need to be merged to propagate a bug fix simply requires clicking on the Links tab of the work item to find the changeset to merge.&lt;/p&gt; &lt;p&gt;We've made merging a painless process.&amp;nbsp; Within Visual Studio, the Merge Wizard leads you through choosing what changes to merge, allowing you to merge every change since the last merge or to pick only particular changes.&amp;nbsp; In the Source Control Explorer, simply go to the folder from which you want to merge changes (the source of a branch) and right click.&amp;nbsp; Clicking the Merge item on the popup menu will bring up the merge wizard.&amp;nbsp; The Merge Wizard knows what the possible targets are, so you simply select the target from a list (there's only one entry if you've only branched the folder once).&amp;nbsp; Choose either to merge all changes or selected changes.&amp;nbsp; If you choose selected changes, you will get a list of changes that haven't been merged.&amp;nbsp; After selecting the changes to merge, click finish, and you will have merges pending for each file involved.&amp;nbsp; Check in the merge when you are satisfied that it builds correctly.&amp;nbsp; That's all it takes to merge changes.&lt;/p&gt; &lt;table id="table2" cellspacing="0" cellpadding="5" width="100%" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Merging Specific Changes&lt;/td&gt; &lt;td&gt;Selecting Changes not yet Merged&lt;/td&gt; &lt;td&gt;Finishing the Merge&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/merge-wizard-1-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/merge-wizard-1-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/merge-wizard-2-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/merge-wizard-2-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/merge-wizard-3-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/merge-wizard-3-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;Shelving&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Shelving is a really useful feature that was included for the first time with the Dec. CTP. Shelving allows you to bundle your pending changes and store them on the server without checking them in, resulting in what we call a &lt;i&gt;shelveset&lt;/i&gt;. The shelveset consists of the same kind of information that a changeset does.&amp;nbsp; Shelving creates a space, the shelveset, on the server that is your own, containing your pending changes, comment, and associated work items.&amp;nbsp; Creating shelvesets is fast and efficient.&lt;/p&gt; &lt;p&gt;When you shelve, you can choose to move your changes out of your workspace or you can keep your pending changes. Moving your changes to the server is great when you need to stop working on your current changes, make a targeted fix, check in that fix, and then unshelve what you were working on before being interrupted. Keeping your changes in your workspace is very useful when you want share a change (perhaps a fix for another developer prior to checkin) or have another person review your code changes.&amp;nbsp; Finally, it's a great way to back up or checkpoint your changes.&lt;/p&gt; &lt;p&gt;Each developer can have as many shelvesets as needed.&amp;nbsp; Other developers can see what shelvesets exist in the system.&amp;nbsp; However, permissions for shelved changes are enforced according to the permissions for the items involved, so developers only have access to see the changes to the items to which they have permission.&lt;/p&gt; &lt;p&gt;To shelve your changes from Visual Studio, click on the Shelve button beside the Checkin button in the Pending Checkin tool window.&amp;nbsp; To Unshelve, click on the Unshelve button beside the Shelve button in the same window.&amp;nbsp; Clicking on Unshelve brings up a dialog that lists the available changesets and also allows you to specify a different user to his or her shelvesets.&amp;nbsp; Double-clicking on a shelveset brings up a dialog that shows each change and allows you to compare the changes by right-clicking on a change (unfortunately, there is a bug in the Dec. CTP release that prevents this from working properly).&lt;/p&gt; &lt;table id="table2" cellspacing="0" cellpadding="5" width="50%" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt;Shelving and Unshelving in the Pending Checkin Tool Window&lt;/td&gt; &lt;td&gt;Shelving Changes&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/shelving-1-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/shelving-1-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/shelving-2-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/shelving-2-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Unshelving a Shelveset&lt;/td&gt; &lt;td&gt;Viewing the Contents of a Shelveset&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/shelving-3-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/shelving-3-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://s3bhatia.members.winisp.net/images/shelving-4-full.jpg"&gt;&lt;img src="http://s3bhatia.members.winisp.net/images/shelving-4-small.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&lt;b&gt;Going Further&lt;/b&gt;&lt;/p&gt; &lt;p&gt;With the upcoming release of Beta 2, there will be more documentation and presentations on these features.&amp;nbsp; &lt;/p&gt; &lt;p&gt;For examples and more discussion on branching and merging, see &lt;A href="http://blogs.msdn.com/buckh/archive/2005/01/24/359472.aspx"&gt;Branching and Merging in the Dec. CTP&lt;/a&gt; on my blog and &lt;A href="http://blogs.msdn.com/crathjen/archive/2005/01/27/361923.aspx"&gt;Some More Merge Examples&lt;/a&gt; by &lt;A href="http://blogs.msdn.com/crathjen"&gt;Chris Rathjen&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;For examples of using shelving from the command line, see &lt;A href="http://blogs.msdn.com/buckh/archive/2005/01/19/356024.aspx"&gt;How to use shelving from the command line&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Command line documentation is available online at &lt;A href="http://blogs.msdn.com/buckh/category/9194.aspx"&gt;http://blogs.msdn.com/buckh/category/9194.aspx&lt;/a&gt;.&amp;nbsp; There you find the &lt;A href="http://blogs.msdn.com/buckh/articles/CommandRef.aspx"&gt;Command Line Reference&lt;/a&gt; and &lt;A href="http://blogs.msdn.com/buckh/articles/CommandLineSummary.aspx"&gt;Command Line Summary&lt;/a&gt; documents.&lt;/p&gt; &lt;p&gt;&lt;A href="http://blogs.msdn.com/buckh"&gt;Buck Hodges&lt;/a&gt;, software developer, Team Foundation&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=379179" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/team_foundation/archive/tags/Source+Control/default.aspx">Source Control</category></item><item><title>Highlights from the Dec. CTP</title><link>http://blogs.msdn.com/team_foundation/archive/2005/02/16/374825.aspx</link><pubDate>Thu, 17 Feb 2005 01:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:374825</guid><dc:creator>Team Foundation</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/team_foundation/comments/374825.aspx</comments><wfw:commentRss>http://blogs.msdn.com/team_foundation/commentrss.aspx?PostID=374825</wfw:commentRss><description>&lt;p class="MsoNormal"&gt;&lt;font face="Tahoma" size="2"&gt;Hi,&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 12pt"&gt;&lt;font face="Tahoma" size="2"&gt;My name is Doug Neumann and I too am a PM from Team Foundation.&amp;nbsp; My primary focus is the source control features, but I'm not going to dwell on that stuff in this post.&amp;nbsp; Perhaps we'll go deep on source control in a future post, or you might check out the personal blogs from many members of our dev and test team like &lt;/font&gt;&lt;a title="http" href="/buckh"&gt;&lt;font face="Tahoma" size="2"&gt;Buck&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/jimpresto"&gt;&lt;font face="Tahoma" size="2"&gt;Jim&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/korbyp/"&gt;&lt;font face="Tahoma" size="2"&gt;Korby&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/jasonba/"&gt;&lt;font face="Tahoma" size="2"&gt;Jason&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/jmanning/"&gt;&lt;font face="Tahoma" size="2"&gt;James&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/crathjen"&gt;&lt;font face="Tahoma" size="2"&gt;Chris&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/akashmaheshwari"&gt;&lt;font face="Tahoma" size="2"&gt;Akash&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/adamsinger"&gt;&lt;font face="Tahoma" size="2"&gt;Adam&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/jefflu/"&gt;&lt;font face="Tahoma" size="2"&gt;Jeff&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="/sammu/"&gt;&lt;font face="Tahoma" size="2"&gt;Sam&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, or &lt;/font&gt;&lt;a title="http" href="/hippietim"&gt;&lt;font face="Tahoma" size="2"&gt;Tim&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 12pt"&gt;&lt;font face="Tahoma" size="2"&gt;In this post, we're going to hit some highlights of cool new integrations in Visual Studio that showed up in the &lt;/font&gt;&lt;a title="http" href="http://lab.msdn.microsoft.com/vs2005/get/default.aspx#vsts"&gt;&lt;font face="Tahoma" size="2"&gt;Dec. CTP&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; and some additional we're working on for &lt;/font&gt;&lt;a title="http" href="http://msdn.microsoft.com/vstudio/whidbey/default.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;Beta 2&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;.&amp;nbsp; You'll be getting some more in-depth coverage of a few of these features in the next few weeks, so do check back often.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;b&gt;Source Control Explorer.&lt;/b&gt;&amp;nbsp; For those of you who have had a chance to play with the Beta 1 Refresh, you may have noticed the need to bring up the command line to do anything substantive with source control.&amp;nbsp; If you're used to VSS, you probably missed the rich GUI of the SourceSafe Explorer.&amp;nbsp; New in the December CTP is the Source Control Explorer which brings you a VSS-style GUI for Team Foundation right inside of Visual Studio.&amp;nbsp; To check it out, just go to View-&amp;gt;Other Windows-&amp;gt;Source Control Explorer.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma"&gt;&lt;font size="2"&gt;&lt;b&gt;Go To Work Item.&lt;/b&gt; &amp;nbsp;If you've had a chance to really use the Beta 1 Refresh, you've probably found yourself at least once looking to open a work item using it's unique ID.&amp;nbsp; We spent several months using the Beta 1 Refresh for our own development, and this happened to me several times daily.&amp;nbsp; In order to find a work item given its ID, you had to write a query which involves a dozen mouse clicks an additional open document.&amp;nbsp; I must say I was a bit annoyed every time I had to do it myself.&amp;nbsp; With the Dec. CTP, the process is simple -- right-click on the Currituck (Work Items) node in the Team Explorer and choose "Go To."&amp;nbsp; This brings up a simple dialog where you type the ID, press OK, and the work item opens.&amp;nbsp; If you really hate the mouse, try using ctrl-G to do the same thing.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt"&gt;&lt;a title="http" href="/buckh/archive/2005/01/19/356024.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;Shelving&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp; The Dec CTP is the first public build with our much heralded "shelving" feature.&amp;nbsp; If you aren't familiar with shelving, think of it as a simple way to set aside your work-in-progress without having to check it in.&amp;nbsp; It's great if you need a backup, you want to share some work with a co-worker, your boss has other things she'd like you to focus on, etc.&amp;nbsp; To play with it, open a source controlled solution, check out some files, and then hit the "shelve" button on the pending checkin tool window.&amp;nbsp; When your changes have disappeared, hit the "unshelve" button and select the shelveset you just put aside.&amp;nbsp; This will restore your changes to your local machine.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="FONT-WEIGHT: bold; FONT-SIZE: 12pt"&gt;&lt;a title="http" href="/buckh/archive/2005/01/24/359472.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;Branching and Merging&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font face="Tahoma" size="2"&gt;&amp;nbsp; Now that the Source Control Explorer is available, the launch point for branching and merging from the GUI is online.&amp;nbsp; Branching is pretty simple to figure out.&amp;nbsp; Right-click, choose "Branch," and fill out the details.&amp;nbsp; Merging is only slightly more complicated as you have to run through a quick wizard.&amp;nbsp; Check out the "merge selected changes" option to perform a "cherry-pick" merge.&amp;nbsp; By selecting this, you get to pick exactly which checkins you want merged from the source branch to the target.&amp;nbsp; It's pretty cool.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font face="Tahoma" size="2"&gt;Coming in the Beta 2 release are 2 more great features: Team Build and Reporting.&amp;nbsp; Team Build is the out-of-the-box automated build process that does much more than compile code.&amp;nbsp; With Team Build, you get a reproducible build, your tests are run, your code is analyzed, and your completed work items are updated with a build number.&amp;nbsp; Reporting leverages a data warehouse that underlies everything in Team Foundation to give you some great views of what's happening on your development project.&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="FONT-SIZE: 12pt"&gt;&lt;font face="Tahoma" size="2"&gt;To close, I want to encourage you to find some time to play with the Dec. CTP or the upcoming Beta and get us your thoughts. &amp;nbsp;We monitor the &lt;/font&gt;&lt;a title="http" href="http://lab.msdn.microsoft.com/teamsystem/community/blogs/default.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;blogs&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, &lt;/font&gt;&lt;a title="http" href="http://lab.msdn.microsoft.com/teamsystem/community/newsgroups/default.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;newsgroups&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, and &lt;/font&gt;&lt;a title="http" href="http://lab.msdn.microsoft.com/productfeedback/"&gt;&lt;font face="Tahoma" size="2"&gt;customer feedback&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;, and we consider every suggestion closely. &amp;nbsp;Team System has some great new features in it, but we need your help to make sure we get it perfect.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=374825" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/team_foundation/archive/tags/Source+Control/default.aspx">Source Control</category></item></channel></rss>