it-roy-ru.com

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

Оценивая Visual Studio 2010 Beta 2, я вижу, что в преобразованном каталоге мои vcproj files стали vcxproj files. Есть также vcxproj.filter файлы рядом с каждым проектом, которые, как представляется, содержат описание структуры папок (\ Исходные файлы,\Заголовочные файлы и т.д.).

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

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

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

153
jschroedl

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

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

54
jrbjazz

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

101
dan moseley

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

*.vcxproj.filters merge=union

в ваш файл .gitattributes.

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

4
parsley72

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

0
V. Panchenko