Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: jschroedlОтветов: 4

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

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

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

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

c++visual-studiovisual-studio-2010version-controlvisual-c++-2010

Ответы

Ответ 1 · рейтинг 62 · jrbjazz

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

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

Ответ 2 · рейтинг 115 · dan moseley

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

Ответ 3 · рейтинг 6 · parsley72

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

*.vcxproj.filters merge=union

в ваш файл .gitattributes.

Дополнительные сведения см. В разделе Использование .gitattributes для предотвращения конфликтов слияния.

Ответ 4 · рейтинг 5 · V. Panchenko

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы