gpt4 book ai didi

visual-studio-2012 - 合并Visual C++ 2012项目过滤器时如何防止系统冲突?

转载 作者:行者123 更新时间:2023-12-04 15:58:38 25 4
gpt4 key购买 nike

将新文件添加到 Visual C++ 项目时,IDE 会将它们添加到两个位置:

  • 主项目文件(例如 myproject.vcxproj)
  • 项目“过滤器”,解决方案资源管理器的虚拟路径存储库(例如 myproject.vcxproj.filters)

  • 合并文件添加对主项目文件来说不是问题,但它通常是过滤器冲突的根源。问题来自这样一个事实,即 IDE 总是在 处添加新元素。非常结束的过滤器列表。

    为了说明这个问题,假设过滤器最初是这样的:

    1 <ClInclude Include="fs\path\oldFile1.h">
    2 <Filter>virtual\path</Filter>
    3 </ClInclude>
    4 <ClInclude Include="fs\path\oldFile2.h">
    5 <Filter>virtual\path</Filter>
    6 </ClInclude>

    然后程序员A加 newFileA.h并提交,过滤器更新如下:

    1 <ClInclude Include="fs\path\oldFile1.h">
    2 <Filter>virtual\path</Filter>
    3 </ClInclude>
    4 <ClInclude Include="fs\path\oldFile2.h">
    5 <Filter>virtual\path</Filter>
    6 </ClInclude>
    7 <ClInclude Include="fs\path\newFileA.h">
    8 <Filter>virtual\path</Filter>
    9 </ClInclude>

    如果程序员B还加了一个 newFileB.h并在头部修订版上同步注释,他的本地过滤器副本将如下所示:

    1 <ClInclude Include="fs\path\oldFile1.h">
    2 <Filter>virtual\path</Filter>
    3 </ClInclude>
    4 <ClInclude Include="fs\path\oldFile2.h">
    5 <Filter>virtual\path</Filter>
    6 </ClInclude>
    7 <ClInclude Include="fs\path\newFileB.h">
    8 <Filter>virtual\path</Filter>
    9 </ClInclude>

    试图与程序员 A 的更改同步将在第 7-8-9 行系统地引发程序员 B 的合并冲突。那是因为更改恰好发生在完全相同的位置。

    有没有办法防止这个问题发生,无论是通过 Visual Studio 中的配置更改、某些合并工具的特殊选项(最好是 Araxis Merge 或 Beyond Compare),还是其他任何东西?

    最佳答案

    基于 this question,听起来筛选器不是 Visual Studio 运行所必需的。您是否尝试过不提交过滤器文件,而是让每个人都有自己的文件?我不使用 VS,所以我不知道这些文件的作用,或者哪些功能不会同步。但是,我通常不建议在 IDE 特定文件中提交,因为它们通常会针对不同的用户而更改,并且无论如何都只是冲突的来源。

    关于visual-studio-2012 - 合并Visual C++ 2012项目过滤器时如何防止系统冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19320808/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com