VS2010 .filter文件和SVN

Edw*_*nge 6 svn visual-studio-2010

由于我们已经切换到VS2010,我们注意到一个新的.filters文件显然包含项目的过滤器结构.我们也使用subversion作为源代码控制.

不幸的是,每次我们签入时,如果有人向项目添加了文件或过滤器,我们最终会遇到合并冲突.SVN似乎绝对无法正确合并此文件类型,即使它是基于文本的.它变得相当令人沮丧.

还有其他人在处理这个问题吗?有没有人找到解决方案?

示例冲突,编码器'a'添加whatever.txt并检入,编码器'b'添加过滤器和新的.cpp文件和更新.得到这个:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Filter Include="filter_1">
      <UniqueIdentifier>{065f6d5d-81b2-4c98-b313-dceb16c24bf2}</UniqueIdentifier>
    </Filter>
    <Filter Include="filter_2">
      <UniqueIdentifier>{85ef5151-d045-4b20-b1bf-e65d380a3cf3}</UniqueIdentifier>
    </Filter>
    <Filter Include="filter_2\sub_filter_1">
      <UniqueIdentifier>{90efdbe3-b53a-41fc-9dfb-147df5e7d7f3}</UniqueIdentifier>
    </Filter>
    <Filter Include="NewFilter1">
      <UniqueIdentifier>{8162b584-12a0-4a05-8cc5-ede4ced07ba3}</UniqueIdentifier>
    </Filter>
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="filter_2\file_3.hpp">
      <Filter>filter_2</Filter>
    </ClInclude>
    <ClInclude Include="filter_2\sub_filter_1\file_4.hpp">
      <Filter>filter_2\sub_filter_1</Filter>
    </ClInclude>
    <ClInclude Include="filter_1\file_1.hpp">
      <Filter>filter_1</Filter>
    </ClInclude>
    <ClInclude Include="filter_1\file_2.hpp">
      <Filter>filter_1</Filter>
    </ClInclude>
  </ItemGroup>
<<<<<<< .mine
  <ItemGroup>
    <ClCompile Include="whatnot.cpp">
      <Filter>NewFilter1</Filter>
    </ClCompile>
  </ItemGroup>
=======
  <ItemGroup>
    <None Include="whatever.txt" />
  </ItemGroup>
>>>>>>> .r12513
</Project>
Run Code Online (Sandbox Code Playgroud)

Eam*_*nne 1

它们是普通的 xml 文件,就像 Visual Studio 的其他项目文件一样 - 我不明白为什么它们比其他项目文件容易发生冲突。

这些文件是否可能被视为二进制文件而不是文本文件?合并二进制文件不起作用 - 检查 svn 属性以查看它们设置的 mime 类型(如果没有设置 mime 类型,应该没问题)。如果设置了 mime 类型,则您可能正在处理配置错误的自动属性

最后,人们可能会不断地添加和删除文件 - 如果是这样,您可能只需要更频繁地提交和更新,直到项目稳定下来。

你绝对不应该使用svn:ignore这些文件。