Должен ли я добавить файлы .vcxproj.filter в систему контроля версий? - PullRequest
157 голосов
/ 01 декабря 2009

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

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

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

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

Ответы [ 4 ]

103 голосов
/ 16 мая 2010

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

55 голосов
/ 02 декабря 2009

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

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

4 голосов
/ 10 января 2017

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

*.vcxproj.filters merge=union

в ваш файл .gitattributes.

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

0 голосов
/ 17 ноября 2018

Его не следует добавлять, если вы используете CMake (или аналогичные инструменты сборки) для создания файлов, таких как *.sln, *.vcxproj, *.vcxproj.filters и т. Д., Поскольку эти файлы могут содержать полный путь к папке проекта. и другие только определенные папки вашего компьютера .

...