<?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 - Version Control Server Team</title><link>http://blogs.msdn.com/tfsvcs/default.aspx</link><description>Version Control - Team Foundation Server - Visual Studio North Carolina</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Orcas Merge Enhancements</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/05/22/orcas-merge-enhancements.aspx</link><pubDate>Tue, 22 May 2007 15:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2792252</guid><dc:creator>tfsvcs</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/2792252.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=2792252</wfw:commentRss><description>&lt;P&gt;&lt;BR&gt;Based upon customer feedback(both external and internal), we have made a number of improvements to the merging experience in Orcas. Below are some of the most significant changes:&lt;/P&gt;
&lt;P&gt;1. I described how to handle namespace conflicts while merging in my previous blog (&lt;A class="" href="http://blogs.msdn.com/tfsvcs/archive/2007/04/03/namespace-conflicts-while-merging.aspx" target=_blank mce_href="http://blogs.msdn.com/tfsvcs/archive/2007/04/03/namespace-conflicts-while-merging.aspx"&gt;Namespace conflicts while Merging&lt;/A&gt;). We have changed the default behavior to automatically perform a baseless merge between items with the same relative name in the trees, which have no merge relationship with any other items in the 2 trees. Therefore in my previous example, 1.txt in trunk will be merged to 1.txt in branch.&lt;/P&gt;
&lt;P&gt;merge: $/proj/trunk/1.txt;C13 -&amp;gt; $/proj/branch/1.txt&lt;/P&gt;
&lt;P&gt;There will be no conflict during checkin and no need to perform baseless merges at a file level.&lt;/P&gt;
&lt;P&gt;2. No conflicts will be filed for baseless merges where the files in the source and the target are the same. We detect this on the server using the file hash, therefore unfortunately for clients which have FIPS enabled this will not work. This should help in reducing the overall number of conflicts filed in baseless merges.&lt;/P&gt;
&lt;P&gt;3. Improved the conflict detection algorithm to file conflicts in cases where edits are merged after merging recursive changes (renames, deletes, undeletes) on a parent folder. &lt;/P&gt;
&lt;P&gt;4. Enabled merging from a deleted source root item to a related target using the deletionId e.g. The following will be an example for merging a deletion of a file from source to target. &lt;/P&gt;
&lt;P&gt;tf merge $/proj/source/a.txt;X20 $/proj/target/a.txt &lt;/P&gt;
&lt;P&gt;5. Ability to execute a merge on a child folder and then execute a merge on a parent folder with the merge on the child folder still pending. The server will simply not attempt to remerge the items which have already been merged e.g. &lt;/P&gt;
&lt;P&gt;tf merge $/proj/src/folder $/proj/tgt/folder /r /version:C1~C500&lt;BR&gt;.&lt;BR&gt;.&lt;BR&gt;.&lt;/P&gt;
&lt;P&gt;tf merge $/proj/src $/proj/tgt /r /version:C1~C500&lt;/P&gt;
&lt;P&gt;This will work seamlessly if you have the version range pinned down for botrh merges.&lt;/P&gt;
&lt;P&gt;6. Fixed merge bugs, the most notable being:&lt;/P&gt;
&lt;P&gt;a. AcceptTheirs does download file at end range of merge when a later changeset has already been merged previously. This occurs when a user merges an edit e.g. changeset 100 (tip) without merging over a previous edit changeset 90. If the user runs a catch up merge to tip and then tries to resolve a conflict as AcceptTheirs it will download the file as of changeset 90 as opposed to changeset 100.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;b. User is unable to merge changes to the target branch if there is another deleted branch with the same name and a rename of a file has ocurred in the target. The TF14087: Cannot undelete “insert your file name here” because not all of the deletion is being undeleted error :).&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Chandru&lt;/P&gt;
&lt;P&gt;&amp;nbsp;P.S. The usual disclaimer applies that this might change before Orcas ships.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2792252" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Conflict/default.aspx">Conflict</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Version+Control/default.aspx">Version Control</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Merging/default.aspx">Merging</category></item><item><title>New CommandLine Option for Branch in Orcas</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/05/10/new-commandline-option-for-branch-in-orcas.aspx</link><pubDate>Thu, 10 May 2007 17:09:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2523937</guid><dc:creator>tfsvcs</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/2523937.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=2523937</wfw:commentRss><description>&lt;P&gt;In Orcas we have added an additional option to the branch command which gives the user a fast way to create a branch without having to download any of the files or get operations locally. The option is /silent and instructs the server to not send back any get operations. Ofcourse this means you will not see the scrolling list of files and there will be no status until the command completes. &lt;/P&gt;
&lt;P&gt;To use it:&lt;/P&gt;
&lt;P&gt;D:\temp_dd\ws&amp;gt;tf branch src tgt /silent&lt;/P&gt;
&lt;P&gt;D:\temp_dd\ws&amp;gt;tf status&lt;BR&gt;File name Change Local path&lt;BR&gt;--------- ------ --------------------------------------------------------------&lt;BR&gt;$/proj&lt;BR&gt;tgt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; branch D:\temp_dd\ws\tgt&lt;/P&gt;
&lt;P&gt;$/proj/tgt&lt;BR&gt;1.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; branch D:\temp_dd\ws\tgt\1.txt&lt;/P&gt;
&lt;P&gt;2 change(s)&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;We have found it very useful for our large devdiv branch creations.&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Chandru&lt;/P&gt;
&lt;P&gt;P.S. The usual caveat applies that this might change before Orcas ships.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2523937" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Version+Control/default.aspx">Version Control</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/branch/default.aspx">branch</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/large+operations/default.aspx">large operations</category></item><item><title>Compatibility of Check-in Policies between Whidbey and Orcas</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/05/07/compatibility-of-check-in-policies-between-whidbey-and-orcas.aspx</link><pubDate>Mon, 07 May 2007 16:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2463434</guid><dc:creator>tfsvcs</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/2463434.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=2463434</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;Team Foundation Version Control provides an extensible check-in policy framework to configure and run validation rules before checking in source code. There are many posts that explain how to configure built-in policies as well as install custom ones (refer, for example, &lt;/FONT&gt;&lt;A href="http://www.edwardbakker.nl/PermaLink,guid,8600ae36-f9c9-4e1f-b91e-63a469b6346e.aspx"&gt;&lt;FONT face="Times New Roman" size=3&gt;http://www.edwardbakker.nl/PermaLink,guid,8600ae36-f9c9-4e1f-b91e-63a469b6346e.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt; and &lt;/FONT&gt;&lt;A href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20create%20a%20custom%20check-in%20policy&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;FONT face="Times New Roman" size=3&gt;http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20create%20a%20custom%20check-in%20policy&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Times New Roman" size=3&gt;).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;I recently helped an internal user with policy compatibility issues between Whidbey and Orcas, and felt that this information may be of interest to others. Check-in policies configured on a Team Project having a mix of Whidbey and Orcas Visual Studio (VS) projects will work cleanly with Whidbey and Orcas clients. The complete information is presented below. A quick recap of how check-in policies function will aid in understanding what follows. Check-in policies are configured on a Team Project basis on the server. The configuration information stored on the server includes the policy type and name of the assembly that implements the policy. But it does not include the path to this assembly on the client machine, which is client specific information. This is obtained from the registry. The Whidbey client locates the assembly path from the 8.0 registry hive (Software\Microsoft\Visual Studio\8.0\Team Foundation\Source Control\Checkin Policies), while the Orcas client locates it from the 9.0 hive.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;Check-in policies are source compatible but not binary compatible. Hence for Orcas they will have to be recompiled against the 9.0 version of Team Foundation Client (TFC) assemblies. The 8.0 version will only work with Whidbey and the 9.0 version with Orcas. Installing an 8.0 compiled policy with Orcas and trying to load it will result in the error Unable to cast object of type ‘XXXX’ to type ‘Microsoft.TeamFoundation.VersionControl.Client.IPolicyDefinition’. There are several blogs about this VS error, which occurs when an assembly that is being loaded is linked to an older version of a dependent assembly than what VS is linked to.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;At the same time, even though the policy has to be recompiled with the 9.0 TFC assemblies and installed on the client, it does not have to be configured again on the same Team Project. As stated earlier, the policy configuration information stored on the server includes the policy type and assembly name which must match. But the path to the assemblies on the client will be obtained from the registry. The Whidbey client will locate the 8.0 policy from the 8.0 registry path, while the Orcas client will locate the 9.0 policy from the 9.0 hive.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman" size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face="Times New Roman" size=3&gt;So in summary, (i) recompile Whidbey policies for Orcas, making sure that the assembly name is the same, (ii) install the assembly by copying it to a location different from the 8.0 version and setting the 9.0 registry accordingly.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2463434" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Check-in+policy+compatibility+whidbey+orcas/default.aspx">Check-in policy compatibility whidbey orcas</category></item><item><title>Using Team Foundation Server Proxy for extranet deployment</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/05/02/using-team-foundation-server-proxy-for-extranet-deployment.aspx</link><pubDate>Wed, 02 May 2007 22:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2379123</guid><dc:creator>tfsvcs</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/2379123.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=2379123</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Team Foundation Server utilizes a Proxy to improve performance by caching copies of source control files. The Proxy is situated in a remote location, local to the developer needing the files but away from the main server. The remote office is typically connected to the main server through a slow link. The Proxy helps each user avoid a costly download of the files to their workspace across the slower connection by caching files. When a requested file is not in the local cache, the file is downloaded by the proxy to its local cache from Team Foundation Server, before returning the files to the client. Refer to &lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/library/ms252490(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms252490(VS.80).aspx"&gt;&lt;FONT face=Calibri color=#800080 size=3&gt;http://msdn2.microsoft.com/en-us/library/ms252490(VS.80).aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;for a more detailed description of the Proxy operation.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In this blog I will describe an improvement that has been implemented in the Orcas Beta 1 release for authenticating users with the proxy in the extranet scenario, where clients and proxy are located in one user domain, while the main server is in a different, non-trusted domain.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Team Foundation Server Proxy uses a pre-authenticated ticket scheme for determining whether a requesting user is authorized to access the requested file. In this scheme, the user’s client contacts the main source control server and if the user is authorized, the client is provided a digitally signed ticket that contains the details of the file being requested. The client then presents this download ticket to the proxy server. The only requirement for clients to receive files from the Proxy is IIS authentication (using NTLM). The proxy treats a valid download ticket from the client as evidence in itself that the client is authorized to receive the file(s).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;From the perspective of authentication there are essentially 4 deployment scenarios, tabulated below (we do not distinguish here between multiple trusted domains in the intranet).&lt;/FONT&gt;&lt;/P&gt;
&lt;TABLE class=MsoTableGrid style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="MsoTableGrid"&gt;
&lt;TBODY&gt;
&lt;TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Scenario&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Domain A&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: black 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Domain B (non-trusted)&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 1"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;I&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Client, proxy, server&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 2"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;II&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Client&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Proxy, server&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 3"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;III&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Client, proxy &lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Server&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR style="mso-yfti-irow: 4; mso-yfti-lastrow: yes"&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: black 1pt solid; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;IV&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Client, server&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD class="" style="BORDER-RIGHT: black 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: #d4d0c8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #d4d0c8; PADDING-TOP: 0in; BORDER-BOTTOM: black 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; mso-border-bottom-themecolor: text1; mso-border-right-themecolor: text1" vAlign=top&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; LINE-HEIGHT: normal"&gt;&lt;FONT face=Calibri size=3&gt;Proxy&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;The proxy adds little value in Scenario IV and this scenario will not be discussed further. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;The key restriction until now was that the client used the same credentials to connect to the main server and to the proxy.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This can either be the user’s logon credentials (referred to as default credentials), or alternate credentials supplied in the command line or through the UI prompt when connecting to the main server (referred to as TFS credentials). This works well for scenarios I and II, but not with scenario III. The workaround required until now was to create local accounts on Proxy that matches the alternate TFS credentials. This is a feasible workaround for small shops (say 5-10 users), but introduces maintenance overhead if there are many users at the remote site.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 14pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;DCR Implementation in Orcas release&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;A possible fix for scenario III is to use the original, default credentials instead of alternate TFS credentials when connecting from TFS client(s) to Proxy.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This has been implemented in Orcas Beta 1. The exact sequence is as follows. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Version Control client file downloader attempts to connect to proxy server with same credentials used to connect to the main server (TFS credentials).&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;Upon receiving an authentication failure, the proxy download will be retried once with default credentials. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-fareast-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri size=3&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri size=3&gt;If this succeeds, the session will subsequently always use default credentials when connecting to the proxy.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;This exchange happens only once per session, which is the running lifetime for Visual Studio. For command line, it is each invocation of tf.exe. Thus the overhead is minimal for VS or even for large sync operations using command line. We should note that this fix introduces no penalty with scenarios I or II. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;As a point of clarification for scenario III, we still require a local account on the main server that matches Proxy service account credentials, for the main server to authenticate the proxy when the latter connects to download files during a cache miss. This workaround is much less annoying than the one described earlier per user.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;Vasu&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2379123" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Team+Foundation+Server+Proxy+extranet/default.aspx">Team Foundation Server Proxy extranet</category></item><item><title>Namespace conflicts while Merging</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/04/03/namespace-conflicts-while-merging.aspx</link><pubDate>Wed, 04 Apr 2007 01:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2021471</guid><dc:creator>tfsvcs</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/2021471.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=2021471</wfw:commentRss><description>&lt;P&gt;I thought I would talk about namespace conflicts while merging. A namespace conflict occurs when 2 items try to occupy the same slot in the tree. The main reasons for namespace conflicts during merge are:&lt;/P&gt;
&lt;P&gt;- Items with the same name are created in 2 branches without a merge relationship established between them, below is an example which involves a baseless merge.&lt;BR&gt;tf merge /baseless branch branch2 /r (if file.txt was added in branch, it gets branched to branch2)&lt;BR&gt;tf checkin /i&lt;BR&gt;tf merge branch trunk /r (file.text gets branched up to trunk)&lt;BR&gt;tf checkin /i&lt;BR&gt;tf merge branch2 trunk /r (since there is no merge relationship for file.txt in trunk, it gets branched to trunk)&lt;/P&gt;
&lt;P&gt;- Another example would be if the same file was added and checked into 2 related branches.&lt;/P&gt;
&lt;P&gt;Now that this has occurred how would you go about resolving a namespace conflict:&lt;/P&gt;
&lt;P&gt;(assume 1.txt was added and checked in both to trunk and branch):&lt;/P&gt;
&lt;P&gt;D:\temp_Dd\ws113&amp;gt;tf merge trunk branch /r&amp;nbsp; &lt;BR&gt;merge, branch: $/proj/trunk/1.txt;C13 -&amp;gt; $/proj/branch/1.txt&lt;/P&gt;
&lt;P&gt;D:\temp_Dd\ws113&amp;gt;tf checkin /i&lt;BR&gt;branch:&lt;BR&gt;Checking in merge, branch: 1.txt&lt;BR&gt;Conflict: The item $/proj/branch/1.txt already exists.&lt;/P&gt;
&lt;P&gt;TF10141: No files checked in: resolve the conflicts and try again.&lt;/P&gt;
&lt;P&gt;1. If the 2 items are not related, you have the option to keep your changes and rename the file in the branch out of the way. This basically moves the existing item out of the way:&lt;/P&gt;
&lt;P&gt;D:\temp_Dd\ws113&amp;gt;tf resolve branch\1.txt /auto:AcceptYoursRenameTheirs /newname:branch\2.txt&lt;BR&gt;Resolved D:\temp_Dd\ws113\branch\1.txt as AcceptYoursRenameTheirs&lt;BR&gt;D:\temp_Dd\ws113\branch:&lt;BR&gt;Getting 2.txt&lt;/P&gt;
&lt;P&gt;D:\temp_Dd\ws113&amp;gt;tf status&lt;BR&gt;File name Change&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Local path&lt;BR&gt;--------- ------------- -------------------------------------------------------&lt;BR&gt;$/proj/branch&lt;BR&gt;1.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge, branch D:\temp_Dd\ws113\branch\1.txt&lt;BR&gt;2.txt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rename&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D:\temp_Dd\ws113\branch\2.txt&lt;/P&gt;
&lt;P&gt;2 change(s)&lt;/P&gt;
&lt;P&gt;2. If the 2 items are related - your best option would be to undo the change and establish a relationship using /baseless. This will ensure that future merges will proceed smoothly:&lt;/P&gt;
&lt;P&gt;D:\temp_Dd\ws113&amp;gt;tf merge trunk branch /r /baseless&lt;/P&gt;
&lt;P&gt;I hope to blog soon about some improvements we have made in Orcas to improve the experience around this case.&lt;/P&gt;
&lt;P&gt;Chandru&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2021471" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Conflict/default.aspx">Conflict</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Version+Control/default.aspx">Version Control</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Merging/default.aspx">Merging</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Namespace/default.aspx">Namespace</category></item><item><title>Destroy: A new feature for Orcas</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/03/23/destroy-a-new-feature-for-orcas.aspx</link><pubDate>Fri, 23 Mar 2007 21:53:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1939189</guid><dc:creator>tfsvcs</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/1939189.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=1939189</wfw:commentRss><description>&lt;P&gt;Brian Harry mentioned the new Destroy feature in his &lt;A class="" href="http://blogs.msdn.com/bharry/archive/2006/11/30/team-foundation-server-roadmap.aspx" target=_blank mce_href="http://blogs.msdn.com/bharry/archive/2006/11/30/team-foundation-server-roadmap.aspx"&gt;&lt;FONT color=#ff9900&gt;TFS roadmap&lt;/FONT&gt;&lt;/A&gt; post. I thought I would go into a little bit more detail on how destroy works in Orcas. Please do keep in mind that any of this might change / be removed before Orcas ships - so there are no guarantees.&lt;/P&gt;
&lt;P&gt;Destroy gives you the ability to permanently delete version control files/folders from TFS.&amp;nbsp; It can also be used to destroy the file contents while preserving the change set history. Destroy can only be invoked from the command line and here is the syntax for the command line:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;tf destroy [/keephistory] &amp;lt;filespec1&amp;gt;[;&amp;lt;VersionSpec&amp;gt;]&amp;nbsp; &amp;lt;filespec2 ... filespec3&amp;gt; [/stopat:&amp;lt;VersionSpec&amp;gt;] [/preview] [/StartCleanup] [/i]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'"&gt;All filespecs must be server paths. Local file paths aren’t allowed. Destroy is a very dangerous operation, so removing all possible ambiguity about which items will be destroyed is a good idea.&lt;/SPAN&gt;&amp;nbsp;Additionally, the user must posess the AdminProjectRights permission in order to destroy items.&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'"&gt;If /keephistory is specified then /stopat becomes optional. /stopat is not allowed if /keephistory is not specified. /stopat is the version including and after that destroy will preserve the file contents for. /stopat defaults to tip (the latest version checked in of an item). The command line does not support version ranges and does support DeletionId version specs (‘X’). When /preview is specified the destroy is not actually committed but the output is displayed any way. /stopat is not allowed to take label or workspace version specs.&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-bidi-font-size: 11.0pt"&gt;TFS stores versioned file content&amp;nbsp;orthogonally from the&amp;nbsp;versioned item histories. Destroy removes all of the non-content data when it is invoked. If you immediately want to have the content garbage collected then you should use the /StartCleanup option to destroy. &lt;/SPAN&gt;&lt;SPAN style="mso-bidi-font-size: 11.0pt"&gt;If /StartCleanup is not specified then the content garbage collection will occur when the TFS database maintenance job runs. The job is scheduled to run one once per day by default.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-bidi-font-size: 11.0pt"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="mso-bidi-font-size: 11.0pt"&gt;If you have any additional questions about Destroy, feel free to ask.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Bill&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1939189" width="1" height="1"&gt;</description></item><item><title>The Deceptive Allure of Merging with Labels</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/03/22/the-deceptive-allure-of-merging-with-labels.aspx</link><pubDate>Thu, 22 Mar 2007 21:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1933584</guid><dc:creator>tfsvcs</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/1933584.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=1933584</wfw:commentRss><description>&lt;P&gt;Labels are&amp;nbsp;an interesting part of version control system. In version&amp;nbsp;1 of TFS Version Control, labels do not contain deleted items.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here's an example sequence of&amp;nbsp;commands that shows this behavior:&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;mkdir dir&lt;BR&gt;echo dir\a.cs &amp;gt; dir\a.cs&lt;BR&gt;echo dir\b.cs &amp;gt; dir\b.cs&lt;BR&gt;tf add&amp;nbsp;dir /r&lt;BR&gt;tf checkin /i&lt;BR&gt;tf delete dir\a.cs&lt;BR&gt;tf checkin /i&lt;BR&gt;&lt;STRONG&gt;tf label label1 $/;T /r&lt;/STRONG&gt;&lt;BR&gt;tf lables label1 /format:detailed&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The labels command returns this data:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Label&amp;nbsp; : label1&lt;BR&gt;Scope&amp;nbsp; : $/&lt;BR&gt;Owner&amp;nbsp; : bill&lt;BR&gt;Date&amp;nbsp;&amp;nbsp; : Thursday, March 22, 2007 4:04:34 PM&lt;BR&gt;Comment:&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Changeset Item&lt;BR&gt;---------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;------------------&lt;BR&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $/&lt;BR&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $/1&lt;BR&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $/1/dir&lt;BR&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $/1/dir/b.cs&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;As you can see $/1/dir/a.cs;X1 is not returned from the label.&amp;nbsp;There is an ambiguity when&amp;nbsp;you compare the items in a label against another version specification&amp;nbsp;(changeset, label, etc...) When you do the comparison it is not possible to determine if an item is missing from the label because it was deleted, or&amp;nbsp;because the item was &lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;deliberately&lt;/SPAN&gt; excluded. &lt;/P&gt;
&lt;P&gt;Merging with a&amp;nbsp;label will not merge file/folder deletes into the target tree.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Here is an example that shows you what I mean:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;mkdir src&lt;BR&gt;echo src\a.cs &amp;gt; src\a.cs&lt;BR&gt;echo src\b.cs &amp;gt; src\b.cs&lt;BR&gt;tf add src /r&lt;BR&gt;tf checkin /i&lt;BR&gt;tf branch src tgt&lt;BR&gt;tf checkin /i&lt;BR&gt;tf delete src\a.cs&lt;BR&gt;tf checkin /i&lt;BR&gt;tf label label2 $/;T /r&lt;BR&gt;&lt;STRONG&gt;tf merge src tgt /r /version:Llabel2&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The merge command will report correctly that there is&amp;nbsp;nothing to merge because src\a.cs&amp;nbsp;does not exist in label2.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Team Build runs into the same issue&amp;nbsp;when it computes the changesets that are new with the current build. In order to do this&amp;nbsp;Team Build&amp;nbsp;compares the label for the last successful build and the label&amp;nbsp;for the current buld.&amp;nbsp;A heuristic is used to determine what it&amp;nbsp;treats as deletes when comparing two labels. If an item is in the first label&amp;nbsp;and not in the second label then the version control server is asked if the item's path exists at the latest changeset&amp;nbsp;in a non-deleted state. (VersionControlServer.ServerItemExists)&amp;nbsp;If&amp;nbsp;the item&amp;nbsp;doesn't exist then&amp;nbsp;it is reported as deleted. If&amp;nbsp;the item&amp;nbsp;does exist then it isn't reported as a difference at all. If you currently merge using labels you could implement the same &lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;heuristic&lt;/SPAN&gt; in order to ensure that deletes get merged. You would probably want to review the suggested deletes manually before checking in the merge.&lt;/P&gt;
&lt;P&gt;Bill&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1933584" width="1" height="1"&gt;</description></item><item><title>Subscribing to TFS notifications using SOAP without a web service</title><link>http://blogs.msdn.com/tfsvcs/archive/2007/01/26/subscribing-to-tfs-notifications-using-soap-without-a-web-service.aspx</link><pubDate>Fri, 26 Jan 2007 22:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1537950</guid><dc:creator>tfsvcs</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/1537950.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=1537950</wfw:commentRss><description>&lt;P&gt;Team Foundation Server provides an event notification mechanism via&amp;nbsp;SOAP or email delivery. My post below discusses a SOAP subscription that uses just a TCP socket listener and does not require a web service implementation. This is convenient for client applications such as test automation.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/mrod/archive/2006/09/18/761174.aspx"&gt;http://blogs.msdn.com/mrod/archive/2006/09/18/761174.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Vasu Sankaran&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1537950" width="1" height="1"&gt;</description></item><item><title>Orcas Workspace Mapping Improvements</title><link>http://blogs.msdn.com/tfsvcs/archive/2006/12/28/orcas-workspace-mapping-improvements.aspx</link><pubDate>Thu, 28 Dec 2006 23:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1376240</guid><dc:creator>tfsvcs</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/tfsvcs/comments/1376240.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tfsvcs/commentrss.aspx?PostID=1376240</wfw:commentRss><description>&lt;P&gt;I thought I would give you an overview of the workspace mapping improvements which Brian Harry mentioned in his &lt;A class="" href="http://blogs.msdn.com/bharry/archive/2006/11/30/team-foundation-server-roadmap.aspx" target=_blank mce_href="http://blogs.msdn.com/bharry/archive/2006/11/30/team-foundation-server-roadmap.aspx"&gt;TFS roadmap&lt;/A&gt; post. Please do keep in mind that any of this might change / be removed before Orcas ships - so there are no guarantees.&lt;/P&gt;
&lt;P&gt;History: In DevDiv our branches are &lt;A class="" href="http://blogs.msdn.com/bharry/archive/2006/11/21/november-devdiv-dogfood-statistics.aspx" target=_blank mce_href="http://blogs.msdn.com/bharry/archive/2006/11/21/november-devdiv-dogfood-statistics.aspx"&gt;enormous&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&amp;nbsp;a developer typically maps only portions of the tree they need to work on. Upon analysis we determined an average workspace had 100+ mappings. To reduce the performance and&amp;nbsp;maintenance overhead of a large number of mappings we&amp;nbsp;are introducing&amp;nbsp;the following features.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;1. Mappings under Cloaks&lt;/P&gt;
&lt;P&gt;This will allow you to cloak a top level folder and map individual folders beneath it. &lt;/P&gt;
&lt;P&gt;e.g. Cloak $/proj/privatedirs&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Map&amp;nbsp;&amp;nbsp; $/proj/privatedirs/johndoe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d:\dd\privatedirs\johndoe&lt;/P&gt;
&lt;P&gt;2. One Level Mappings&lt;/P&gt;
&lt;P&gt;This will allow you to map all immediate child items of a folder (any sub folders &amp;amp; items will not be mapped locally)&lt;/P&gt;
&lt;P&gt;e.g. &lt;/P&gt;
&lt;P&gt;$/proj/dir/&lt;/P&gt;
&lt;P&gt;$/proj/dir/file1.txt&lt;/P&gt;
&lt;P&gt;$/proj/dir/file2.txt&lt;/P&gt;
&lt;P&gt;$/proj/dir/dir2&lt;/P&gt;
&lt;P&gt;$/proj/dir/dir2/file2.txt&lt;/P&gt;
&lt;P&gt;A one level mapping, will end up getting only the items under $/proj/dir (i.e. file1.txt, file2.txt, dir2 will be created - but no items below it will be downloaded)&lt;/P&gt;
&lt;P&gt;Map $/proj/dir/*&amp;nbsp;&amp;nbsp;&amp;nbsp; d:\dd\dir&lt;/P&gt;
&lt;P&gt;These features will allow for&amp;nbsp;more complex workspace definition, and allow users to cloak out larger portions of the tree they do not need (improving get performance)&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Chandru&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1376240" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://blogs.msdn.com/tfsvcs/archive/tags/Workspace+Mappings/default.aspx">Workspace Mappings</category></item></channel></rss>