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

StackOverflow https://stackoverflow.com/questions/1826901

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

*.vcxproj.filters merge=union

в ваш файл .gitattributes.

Видеть Использование .gitattributes во избежание конфликтов слияния Больше подробностей.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top