如何使用Visual Studio 2013在TFS中正确合并两个分支?

时间:2017-05-10 18:01:11

标签: c# visual-studio visual-studio-2013 tfs merge

我正在使用TFS来源控制我的c#ASP.NET MVC项目。我有一个名为ProjectA的项目,它有两个分支(即ProjectAProjectA-Dev。)ProjectA是我的生产分支,ProjectA-Dev是我的开发分支。 ProjectA-Dev包含许多用于我的项目即将发布的新代码。

我正处于一个阶段,我需要获得从生产到开发的任何变化。当我在ProjectA-Dev中处理我的下一个版本时,我的生产版本几乎没有修复错误。我想在我的ProjectA-Dev分支中获得添加的错误修复。

要将ProjectA合并到ProjectA-dev,我打开了“解决方案控制资源管理器”,右键单击ProjectA然后点击“分支和合并”,然后点击“合并”。

在源代码控制合并向导上,我在源分支中选择了$/TFS/ProjectA。然后在目标分支中选择$/TFS/ProjectA-Dev。然后我点击“下一步”,选择“最新版本”并点击“完成”。

该过程运行了10秒钟,然后它给了我这个错误enter image description here

错误使完整场景。然而,让我感到困惑的是node_modules在任何一个分支上都不存在。另外,我从本地项目中删除了文件夹node_modules

我还应该注意node_modules用于TFS,但几周后我使用changeset 20000将其从TFS中删除。但是,今天“在最新版本中”文件夹node_modules执行了在TFS上不存在。我也通过门户网站验证了同样的事情。

我尝试通过删除此文件夹%localappdata%\Microsoft\Team Foundation\5.0\Cache的内容来本地删除TFS缓存,但问题仍然存在。

如何绕过此错误并正确合并这些更改?

2 个答案:

答案 0 :(得分:2)

我跑完后终于开始工作了 tf destroy "$/MyPath/To/Project/node_module"

答案 1 :(得分:1)

TFS可能不知道您更改了什么(删除了node_modules文件),以及在分支项目A中的长更改集期间更改是否与分支相关。

您可以找到首先删除node_modules文件的特定变更集。然后只需使用/discard选项{。}}。

  

/ discard 不执行合并操作,但会更新合并   跟踪合并发生的历史记录。这会丢弃变更集   从用于特定的合并。

示例命令:

tf merge $/Project/SourceBranch $/Project/TargetBranch /discard /recursive /version:C56693~C56693

它丢弃变更集56693.版本是从〜到,因此您可以一次丢弃多个变更集。在您的情况下,丢弃变更集,直到删除特定变更集node_modules文件。命令完成后,您仍然需要签入合并

之后再次执行正常的合并操作。