TFS如何合并?

Ban*_*nny 4 merge tfs manual visual-studio-2010

我们有几个开发人员赞成TFS 2010中的手动合并,当你打开两个可视工作室时,一个是源分支,另一个是目标分支,你手动复制和粘贴你的更改.

他们这样做是因为他们认为自动合并是危险的(因为它会带来其他开发人员的更改,即使你不想这样做).典型的测试案例如下:

来源分公司:

TestFile.cs
Changesets:
1. Line 5 changed
2. Line 13 changed
Run Code Online (Sandbox Code Playgroud)

目标分支:

No changes yet.
Run Code Online (Sandbox Code Playgroud)

现在我想只为testFile.cs合并变更集#2

如果自动合并,则目标分支中的结果TestFile.cs包含哪些行:原始行5和更改的行13或者行5和13都改变了?

事实上,我已经看到了两种变体,我不知道为什么.

任何关于TFS合并如何工作的精彩描述的链接都会很棒.

高级方案: 源分支:

TestFile.cs
Changesets:
#1. Line 5 changed, Line 6 added
#2. Line 13 changed
Run Code Online (Sandbox Code Playgroud)

目标分支:

No changes yet.
Run Code Online (Sandbox Code Playgroud)

如果我只合并变更集#2,我应该在目标分支中得到什么?我是否只根据变更集#2更改第12行.

pan*_*lif 5

如果选择合并,将打开以下对话框:
在此输入图像描述
如果您只是选择"下一步"并保留默认设置="所有更改都达到特定版本",TFS将考虑您的两个更改集(1和2):换句话说,它将Testfile.cs在目标分支中检出并且编辑两个 5号线和13
如果选择"选定变更"(标示在上面的图片),在这里你可以选择该候选人的变更的你居然想参与合并的另一个对话框将会出现.因此,如果您现在选择变更集2,TFS将Testfile.cs在目标分支中检出并仅编辑第13行.

您所描述的"手动"合并,是 - 抱歉是冗长的 - 这是一种可怕的做法.

编辑
您的问题高级场景:源分支:我是否只根据变更集#2更改第13行
答案是肯定的"是".

隔离情况的一种方法是从SourceControl中的Playground文件夹开始,并与同事一起确定发生的情况.TFS-merge非常简单,这篇较旧的帖子可能对您的调查很有用.

我可以同意你的观点"TFS错误在我的优先级列表中非常低",另一方面 - 在你的位置 - 我会调查你组织内的Merge-Practice作为首要问题.在我看来,你描述的内容根本无法继续下去.