TFS 2010 Branch Across Team Projects - Best Practices

  • C - Язык программирования C - Очевидно, я имел для ссылки на K& R, одно из лучшего программирования заказывает там точку.
  • C++ - Ускоренный C++ - Это четкое, правильно написанное введение в C++ переходит прямо к использованию STL и дает хорошие, ясные, практические примеры. Соответствует его имени.
  • C# - Pro C# 2008 и.NET 3.5 Платформы - Бит полного рта, но замечательно записанной и огромной глубины.
  • F# - Опытный F# - Разработанный для взятия опытных программистов от нуля до эксперта в F#. Очень хорошо записанный, один из автора изобрел F#, таким образом, Вы не можете пойти далеко неправильно!
  • Схема - Маленький Интриган - Действительно уникальный подход к обучению языка программирования, сделанного действительно хорошо.
  • Ruby - Ruby Программирования - Нежно известный как 'книга' топора выбора, это - defacto введение в Ruby. Очень хорошо записанный, ясный и подробный.
25
задан Daniel 22 April 2011 в 15:16
поделиться

1 ответ

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

Я знаю, что считается хорошей идеей строить из исходного кода везде, где это возможно, но я не фанат ветвления между командными проектами. Если у вас есть какой-то общий код, и его нужно разветвить между 2 или 3 другими командными проектами, тогда ветвление управляемо, но если у вас есть 20 или 30 (или 100) командных проектов, то управление объединениями становится головной болью. Могут быть и другие проблемы, если разработчики, работающие в командных проектах-потребителях, не имеют одинаковых разрешений в «главном», например, не могут просматривать историю и т. Д. Конечно, если у вас есть код, который необходимо совместно использовать в командных проектах в разных коллекциях проектов, тогда вы все равно не сможете разветвляться.

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

  1. У вас может быть сборка для вашего общего кода, скопирующая двоичные файлы в место отбрасывания вместе с модулем слияния для упаковки (если вы используете MSI). Затем вы создаете двоичную ссылку на место размещения и получаете все, что используете для упаковки, для импорта модуля слияния. В этом сценарии вам необходимо убедиться, что место отбрасывания стабильно (и желательно, чтобы его читали только большинство разработчиков, чтобы предотвратить вмешательство)
  2. Аналогично варианту 1, но используйте инструмент, подобный NuGet чтобы управлять ссылками, это автоматизирует процесс обращения к новым версиям двоичных файлов.
  3. Вы можете просто проверить двоичные файлы в папке $ / Product1 / branch / lib / common в вашей ветке и ссылаться на них, используя относительный путь

Как я уже сказал, я очень интересно услышать, как другие SOer решают проблему общего кода с помощью TFS.

РЕДАКТИРОВАТЬ: После 8 лет размышлений об этом пакеты Nuget - это путь вперед. Я оставил остальную часть ответа на месте, так как он все еще получает мнения и положительные голоса. Встраивание зависимостей в пакеты и их хранение в бинарном хранилище (nuget / Nexus / Artifactory / Azure Artifacts и т. Д.) В значительной степени является стандартным способом решения этой проблемы

13
ответ дан 28 November 2019 в 21:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: