首页 文章

我应该将.vcxproj.filter文件添加到源代码管理中吗?

提问于
浏览
149

在评估Visual Studio 2010 Beta 2时,我看到在转换后的目录中,我的 vcproj 文件变成了 vcxproj 文件 . 每个项目旁边还有 vcxproj.filter 文件,这些文件似乎包含文件夹结构的描述(\ Source Files,\ Header Files等) .

您是否认为这些过滤器文件应该按用户保留,还是应该在整个开发组中共享并检入SCC?

我目前的想法是检查它们,但我想知道是否有任何理由不这样做,或者也许是我应该检查它们的好理由 .

显而易见的好处是,如果我正在查看其他人的机器,文件夹结构将匹配,但也许他们想要逻辑地重新组织事物?

4 回答

  • 54

    以前版本的Visual Studio(至少版本6.0和2008)将这些信息存储在它们自己的项目文件中(分别是.dsp和.vcproj文件),这当然很适合添加到SCC .

    我想不出任何理由不在SCC中包含这个.filter文件

  • 4

    我们故意拉了.filter . 当我们转换为.vcxproj MSBuild格式时,文件信息来自.vcproj . 一个原因正是您所指出的,过滤器纯粹是一种逻辑视图,不同的团队成员可能需要不同的视图 . 另一个是有时构建被设置为检查项目文件的时间戳,并且如果它已经改变则触发重建 - 因为这可能意味着要构建不同的源文件,或者不同的设置等 . 我不回想一下,如果我们实际上发布了构建触发方式,但我们的想法是我们不想仅仅因为过滤器发生变化而触发重建,因为它们不会影响构建 .

  • 98

    我刚刚发现,如果你使用Git,你可以将.filter文件标记为合并的联合,以使其更简单 . 只需添加以下行:

    *.vcxproj.filters merge=union
    

    到您的.gitattributes文件 .

    有关详细信息,请参阅Using .gitattributes to avoid merge conflicts .

  • 0

    如果您使用 CMake (或类似的构建工具)生成 *.sln*.vcxproj*.vcxproj.filters 等文件,则不应添加它,因为此文件可能包含项目文件夹的完整路径以及其他仅计算机的特定文件夹 .

相关问题