Для чего это стоит, мы используем вариант B.
Мы также используем Tortoise SVN, а не Ankh SVN, потому что у нас есть немного лучшая гибкость со структурой нашего репозитория, если он не привязан к той же структуре каталогов, которую ожидает Visual Studio.
Первоначально я был категорически против этого, потому что мне понравилась интеграция IDE, которая была у меня с TFS, но после работы с ней в течение всего нескольких дней меня продали, что обмен большей гибкостью в тысячи раз важнее, чем интеграция с IDE.
Редактировать - Добавлено
Стоит также отметить, что перед тем, как перейти к нашим текущим процессам, мы наметили, как именно мы хотим выложить ВСЕ наши системы контроля версий. Нам потребовалось несколько недель, чтобы точно спланировать это, проанализировав его до смерти, прежде чем сделать переход, но это окупилось в простоте использования и обслуживания.
У нас есть общая структура, подобная следующей:
\ Внутренние веб-приложения
\ Интернет-веб-приложения
\ Корпоративные приложения WinForms
\ Услуги для корпоративных вдов
\ Местоположение розничной торговли WinForms Apps
\ Розничные услуги определения местоположения
\ Shared
\ Файлы кросс-платформенного решения.
Каждая из основных папок содержит множество различных проектов и решений. Каждый из них имеет свои собственные ветви, теги и стволы. Так, например, если у нас есть искатель интернет-магазина, он может быть в
\Internet\<our company name>.com\Store Finder\Trunk
Важной частью этого является Shared, поскольку он содержит код, который используется во ВСЕХ других ветвях. Причина, по которой интеграция с IDE не работает для нас, заключается в том, что для этого нам понадобится решение на корневом уровне. Вместо этого у нас есть файлы Sln, где это уместно, и, поскольку у нас у всех есть полная копия репозитория, мы можем гарантировать, что относительные пути к любым проектам в каталоге \ Shared одинаковы на всех компьютерах разработчика.
Я предоставил вышеупомянутое, не для того, чтобы рассказать вам, как структурировать ваш код, а просто для того, чтобы дать вам идеи и подчеркнуть, насколько важно тщательно планировать, прежде чем продолжить.
Вам нужно потратить некоторое время, задавая вопросы типа «Если я выложу это как Y, смогу ли я сделать X?». Ваша ситуация будет уникальной для вашей команды и компании.