Передовой опыт обмена проектами между деревьями решений (MSVS 2008 и MSVS 2010)

У нас более 50 проектов, разделенных на 2 дерева решений, управляемых TFS (версия: Visual Studio 2008 / TFS RTM (9.0.21022.8)).

Более 30 проектов - это проекты Visual Studio 2008, а другие - Visual Studio 2010.

В новых проектах используются некоторые старые сборки через ссылки на двоичные файлы.

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

Есть ли способ поделиться компилируемыми источниками с TFS между двумя разными деревьями решений студий? Или мы можем обновить дерево решений с 2008 года до 2010 года? Поддерживает ли TFS 2008 общие проекты (или, возможно, ее тоже нужно обновить)?

Заранее спасибо!


person Andrew Florko    schedule 02.08.2010    source источник


Ответы (1)


Андрей:

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

Что мы делаем:

  1. Все двоичные файлы регистрируются в TFS в папке LocalBin, которая объединяет все наши двоичные файлы.
  2. Все общие сборки находятся в папке LocalBin / SharedBin.
  3. Папка SharedBin ответвляется на папку SharedBin верхнего уровня в потребляющих командных проектах.
  4. При успешной основной сборке LocalBin / Sharedbin объединяется с папками SharedBin проекта.

В итоге получается что-то вроде этого:

$/ProjectA/Main/Localbin/SharedBin разветвляется на $/ProjectB/Main/SharedBin и $/ProjectB/Dev/Sharedbin (а также на эквивалентные папки в $/ProjectC, $/ProjectD и так далее).

Мы делаем это совместное использование только тогда, когда у нас есть успешная сборка MAIN, и сборка отвечает за слияние не только с другими проектами ветви MAIN, но и с проектами ветви DEV, поэтому они актуальны.

Мы играли с идеей скопировать двоичные файлы в общую сетевую папку после успешной сборки и иметь соглашение, чтобы ссылаться на эти двоичные файлы в этом сетевом ресурсе, но этот процесс хорошо работает для нас сегодня, и мы ненавидим внесите в него изменения на этом этапе (сейчас происходят более важные вещи).

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

Кстати, наше решение было создано и работает под TFS2008 с тысячами файлов проекта и, вероятно, миллионами строк кода. Это увеличивает время сборки из-за слияния и увеличивает объем пространства, используемого в вашем репозитории, но до сих пор и то и другое было управляемым.

person Robaticus    schedule 02.08.2010
comment
Спасибо за решение. Мне понадобится время, чтобы разобраться! - person Andrew Florko; 03.08.2010