Должен ли я добавлять файлы .vcxproj.filter в исходный элемент управления?

При оценке Visual Studio 2010 Beta 2 я вижу, что в преобразованном каталоге файлы vcproj стали vcxproj. Существуют также файлы vcxproj.filter вместе с каждым проектом, который, как представляется, содержит описание структуры папок (\ Source Files,\Header Files и т.д.).

Считаете ли вы, что эти файлы фильтров должны храниться для каждого пользователя или должны быть разделены по всей группе разработчиков и проверены в SCC?

Мое настоящее мышление - проверить их, но мне интересно, есть ли какие-то причины не делать этого, или, может быть, веские причины, по которым я должен их обязательно проверить.

Очевидным преимуществом является то, что структуры папок будут соответствовать, если я смотрю на кого-то еще на машине, но, возможно, они хотели бы логически реорганизовать вещи?

Ответ 1

Предыдущие версии Visual Studio (по крайней мере, версии 6.0 и 2008) хранят эту информацию в собственном файле проекта (файлы .dsp и .vcproj соответственно), что, конечно, полезно добавить в SCC.

Я не могу придумать никаких причин не включать эти файлы .filter в SCC

Ответ 2

Мы намеренно вытащили фильтр. файл из .vcproj, когда мы переводим в формат .vcxproj MSBuild. Одна из причин заключается именно в том, что вы указали, что фильтры являются чисто логическим видом, и разные члены команды могут захотеть разных взглядов. Другое заключается в том, что иногда сборка настроена для проверки временной метки файла проекта и запускает перестройку, если она была изменена, потому что это может означать, что есть разные исходные файлы для сборки или разные настройки и т.д. Я не напомним, если мы фактически отправили с помощью триггера сборки таким образом, но идея заключалась в том, что мы не хотели запускать перестройку просто потому, что фильтры были изменены, так как они не влияют на сборку.

Ответ 3

Я просто обнаружил, что если вы используете Git, вы можете пометить файлы .filter, которые будут рассматриваться как объединение для слияния, чтобы сделать его более простым. Просто добавьте строку:

*.vcxproj.filters merge=union

в файл .gitattributes.

См. Использование .gitattributes, чтобы избежать конфликтов слияния для более подробной информации.