<?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 : Conflict</title><link>http://blogs.msdn.com/tfsvcs/archive/tags/Conflict/default.aspx</link><description>Tags: Conflict</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>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></channel></rss>