【问题标题】:How to merge a CSProj file in TFS, when auto merge fails自动合并失败时如何在 TFS 中合并 CSProj 文件
【发布时间】:2014-04-22 21:02:50
【问题描述】:

另一个开发人员和我都向 TFS Online 中的同一个项目添加了一个新文件(通过 VS 2013)。 (不同的名字)他检查了他的变化。我做了一个最新的。它没有合并,而是给了我这个错误:

Conflict [project file path].csproj - Unable to perform the get operation because you have a conflicting edit

我这边没有变化。项目文件未更新。他这边的新文件没有被复制到我的文件系统中。

TFS在线我们没有配置任何合并规则,都是默认设置。

在解决方案资源管理器中右键单击项目不会显示合并选项。在源代码管理资源管理器中,我可以右键单击 CSProj 文件,转到合并,但这会弹出一个窗口,提示您查找要合并的内容,并且只允许您从同一路径中选择,而不是选择版本。它抱怨它不是它自己的一个分支,不能被合并。

这是 CSProj 版本中的冲突行:

签入 CS 项目,第 1390 行:

<Content Include="TextFile2.txt" />

我的 CS 项目,第 1390 行:

<Content Include="TextFile1.txt" />

【问题讨论】:

  • 我不明白; get latest 将要求您合并,它不会因为有远程更改而取消。
  • @Edward:我刚刚更新了更多信息,表明自动合并在这种情况下不起作用
  • 那么,当自动合并失败时,在这种情况下,如何触发手动合并?
  • 您在获取最新版本时将分支合并与自动合并混淆了。有两种完全不同的操作。关于报错,最终还是需要带上冲突解决窗口,解决冲突。

标签: visual-studio-2012 tfs merge visual-studio-2013


【解决方案1】:

从 Visual Studio 获取最新信息会触发合并。 CSPROJ 是一个 XML 文件,因此默认情况下应在获取最新版本时自动合并,除非有 conflicts,Visual Studio 将在其中打开冲突解决对话框,以便您可以根据他们的修改来查看您的编辑。

您可以从Source Control Explorer 获取最新,右键单击解决方案根文件夹并单击Get Latest Version。如果有冲突,Resolve Conflicts 对话框应该会弹出。如果文件是自动合并的,您应该会在Diff 对话框中看到它(右键单击文件并单击Compare)。

如果Resolve Conflicts 窗口没有出现:

  1. 打开Pending Changes 标签。
  2. 如果您有多个工作区,请确保您选择了正确的一个。
  3. 点击Actions菜单->Resolve Conflicts

【讨论】:

  • “冲突 [项目文件的路径].csproj - 无法执行获取操作,因为您有一个冲突的编辑”另一个开发人员我都向项目添加了一个文件(不同的名称)。他登记了。我做了最新的。它没有合并,它给了我那个错误。它也没有得到他们签入的文件。
  • 我在顶部添加了附加信息,显示“获取最新”不会自动合并(至少对于 CSProj 文件,并且在我们的默认系统上)。此外,在源代码管理资源管理器中右键单击文件夹或文件不会显示解决冲突。
  • 响应:“如果有冲突,应该弹出解决冲突对话框”--> 没有发生。我只是通过阅读源代码控制输出得到了错误行,它没有比我上面显示的更多的细节。
  • 1.打开待定更改选项卡。 2. 如果您有多个工作区,请确保您选择了正确的一个。 3. 点击操作菜单 -> 解决冲突。
  • 太棒了!这解决了它。合并csproj文件时也得到了附加文件。 --> 你能编辑你的答案来包含这些信息吗?谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-01-27
  • 2015-11-08
  • 1970-01-01
  • 2014-04-14
  • 1970-01-01
  • 2019-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多