Лучший способ организовать зависимые проекты? - PullRequest
5 голосов
/ 15 марта 2009

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

P.S:

Мы используем MS Source Safe 2005, и я не хочу, чтобы мои коллеги каждый раз брали исходный код и собирали его на своих машинах, поскольку им нужен только двоичный код, а не код.

Ответы [ 3 ]

3 голосов
/ 15 марта 2009

Если вы используете Subversion в качестве системы контроля версий, вы можете использовать SVN Externals для этого. Таким образом, они будут автоматически извлекать новые версии ваших утилит, когда они будут выполнять обновление корневой папки там. Вы также можете предоставить им управление исходным кодом только для чтения, чтобы они могли просматривать код утилиты, но не имеют права вносить изменения.

Мы используем это на работе, и она отлично работает. Но имейте в виду, что иногда вы не хотите обновлять свои утилиты каждый раз, когда вы делаете обновление, так как вы можете что-то сломать, используя новую версию. Это то, что ваша компания должна иметь способ справиться. У нас есть ветки SVN (или теги) для версий служебных программ для мэров, поэтому, если мы что-то изменим, мы создадим новую версию, и тогда людям придется вручную изменить свой внешний SVN, чтобы указать на новую версию, если они захотят. 1005 *

2 голосов
/ 15 марта 2009

Они действительно нуждаются в утилитах немедленно, в тот момент, когда вы их меняете? Обычно это не так.

Обычно лучше позволить коллегам «извлекать» последний код в следующий удобный момент, когда они объединяются в своих собственных изменениях.

Вы используете систему управления версиями, верно?

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

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

1 голос
/ 15 марта 2009

Когда у нас есть общие сборки во многих командах, мы продвигаем их в каталог bin, таким образом, другие разработчики могут ссылаться на современные сборки / использовать их без необходимости повторной сборки из исходного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...