Рекомендации по проектам Subversion и Visual Studio
недавно я начал работать над различными проектами на C# в Visual Studio в рамках плана крупномасштабной системы, которая будет использоваться для замены нашей текущей системы, построенной из сборки различных программ и сценариев, написанных на C и Perl. Проекты, над которыми я сейчас работаю, достигли критической массы для подрывной деятельности. Мне было интересно, что должно и не должно быть зафиксировано в репозитории для проектов Visual Studio. Я знаю, что это произойдет. создавайте различные файлы, которые являются просто артефактами сборки и не нуждаются в фиксации, и мне было интересно, есть ли у кого-нибудь советы по правильному использованию SVN с Visual Studio. На данный момент я использую сервер SVN 1.6 с бета-версией Visual Studio 2010. Любые советы, мнения приветствуются.
7 ответов
в систему управления версиями Visual Studio можно добавить следующие файлы:
- файлы решения (
*.sln
).- файлы проекта, например,
*.csproj
,*.vbproj
файлы.- файлы конфигурации приложений на основе XML, используемые для управления поведением во время выполнения проекта Visual Studio.
файлы, которые нельзя добавить в систему управления версиями, включают следующий:
- файлы опций пользователя решения (
*.suo
).- файлы параметров пользователя проекта, например,
*.csproj.user
,*.vbproj.user
файлы.- файлы веб-информации, например,
*.csproj.webinfo
,*.vbproj.webinfo
, которые управляют виртуальным корневым расположением веб-проекта.- создать выходные файлы, например,
*.dll
и*.exe
файлы.
Я бы предложил использовать AnkhSVN - плагин управления версиями Subversion для Visual Studio 2008/2010.
вы можете использовать его для выполнения первоначального добавления и фиксации решения, проектов и источников в репозиторий, и он не добавит никаких артефактов сборки. Он не добавит ничего, что генерируется вашей сборкой, только файлы, на которые ссылается ваше решение. Если вам нужны какие-либо другие фрагменты, которых нет в вашем решении, вы можете добавить их впоследствии.
положить следующие файлы в систему управления версиями:
- .фонд (VS6 рабочее место)
- .dsp (проект VS6)
- .sln (VS Solution)
- .* proj (VS файлы проектов различных типов)
- конечно, ваши исходные файлы и другие артефакты создании
Do не положить следующие файлы в систему управления версиями:
- .ncb (что-то делать с просмотром или intellsense)
- .suo (настройки рабочего пространства пользователя, такие как размещение окон и т. д. - Я думаю)
- .пользователь (пользовательские настройки проекта, такие как точки останова и т. д.-Я думаю)
кроме того, не помещайте в объектные файлы, исполняемые файлы, автоматически сгенерированные файлы (например, заголовки, которые могут быть сгенерированы).
что касается исполняемых файлов и других сгенерированных файлов - может быть исключение, если вы хотите иметь возможность архивировать выпуски. Это может быть хорошей идеей, но вы, вероятно, хотите управлять этим немного иначе и, возможно, в другом месте, чем ваш исходный код. Если вы это сделаете, также архивируйте свой .pdb-файлы, чтобы вы могли отлаживать материал позже. вы можете использовать сервер символов для хранения архивированных символов (см. инструменты отладки для Windows для сервера символов и его документации).
вот мой список VS-конкретных файлов, которые я исключаю из SVN:
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
решение уровня:
- добавить
.sln
решение - игнорировать
.suo
файл параметров пользователя решения
проект:
- добавить
.csproj
,.vbproj
(и C++ проектов?) files - игнорировать
.csproj.user
,.vbproj.user
файлы - игнорировать
bin
каталог - игнорировать
obj
каталог - игнорировать любые файлы/каталоги, которые формируются в ходе среда выполнения (т. е. logs)
если вы используете и VS addins, они могут генерировать файлы,которые также нужно игнорировать (т. е. Для ReSharper выдает .resharper
и .resharper.user
файлы).
элементы ignore могут быть явно проигнорированы по имени файла (т. е. MyProject.csproj
) или по шаблону подстановочных знаков(т. е. *.csproj.user
).
как только вы настроите свои игнорирования, проверьте чистую копию вашего источника, а затем здание не должно показывать никаких изменений (т. е. нет новой версии архив.)
Я бы вручную включил все файлы, которые я думаю, что не должен контролировать версию.
мой глобальный шаблон игнорирования:
.файл DLL. распределительная плата. исполняемый.кэш.webinfo по .snk bin obj debug _Resharper .пользователей для ReSharper
Если вы используете список игнорирования, SVN чувствителен к регистру. Поэтому не забудьте игнорировать папки bin и Bin отдельно.
кроме того, у меня был вопрос.. почему для обновления значка состояния требуется много времени? Временами это становится очень запутанным.
посмотреть ртутный .hgignore для проектов Visual Studio 2008 для списка игнорирования Mercurial. Я не знаком с синтаксисом списка игнорирования SVN, но в этом потоке есть несколько хороших списков того, что игнорировать в Visual Studio.