Оценивая Visual Studio 2010 Beta 2, я вижу, что в преобразованном каталоге мои файлы vcproj стали файлами vcxproj . Кроме того, в каждом проекте есть файлы vcxproj.filter, которые содержат описание структуры папок (\ Source Files, \ Header Files и т. Д.).
Как вы думаете, эти файлы фильтров должны храниться для каждого пользователя, или они должны быть общими для всей группы разработчиков и проверены в SCC?
В настоящее время я думаю о том, чтобы проверить их, но мне интересно, есть ли причины не делать этого, или, может быть, есть веские причины, по которым я должен обязательно их проверить.
Очевидное преимущество заключается в том, что структуры папок будут совпадать, если я смотрю на чужую машину, но, возможно, они хотели бы логически реорганизовать вещи?
Мы намеренно вытащили .фильтр. файл информации из .vcproj при переводе в формат .vcxproj MSBuild. Одна из причин - именно то, на что вы указали, что фильтры являются чисто логическим представлением, и разные члены команды могут хотеть разных представлений. Другое заключается в том, что иногда сборка настраивается для проверки метки времени файла проекта и запускает пересборку, если она изменилась - потому что это может означать, что для сборки нужны разные исходные файлы или другие настройки, и т. Д. Я не Напомним, если мы действительно поставляли сборку таким способом, но идея заключалась в том, что мы не хотели запускать перестройку просто потому, что фильтры изменились, поскольку они не влияют на сборку.
источник
Я только что обнаружил, что если вы используете Git, вы можете пометить файлы .filter, которые будут рассматриваться как объединение, для упрощения слияния. Просто добавьте строку:
в ваш файл .gitattributes.
См. Использование .gitattributes, чтобы избежать конфликтов слияния для получения дополнительной информации.
источник
merge=union
делает - больше ничего не было обещано. Имея это знание и очень широкое представление о том, как выглядят * .filter-файлы, легко понять, почемуmerge=union
это хорошая идея для этих файлов.Его не следует добавлять в случае, если вы используете
CMake
(или аналогичные инструменты сборки) для создания таких файлов, как*.sln
,*.vcxproj
и*.vcxproj.filters
т. Д., Поскольку эти файлы могут содержать полный путь к папке проекта и другие только для определенных папок вашего компьютера .источник