Обновление нескольких проектов с использованием svn: externals - PullRequest
1 голос
/ 06 октября 2010

Обзор

Я использую VisualSVN в Visual Studio, VisualSVN Server в Windows и, конечно, TortoiseSVN.Я хотел знать, каков был лучший способ совместного использования нескольких проектов с несколькими решениями, и если бы был лучший метод.

Макет

Мой тип репозитория выглядит такэто (не их настоящие имена):

Library.Common
Library.Web
Library.DB
Library.CMS
Customer1.Site
Customer2.Site

Процесс

Чтобы создать новый сайт, содержащий общие проекты:

  1. Создание репозитория на SVN-сервере, например, «Customer3.Site»

  2. Создание веб-сайта с использованием Visual Studio 2008 с именем «Customer3.Site», VisualSVN используется для фиксации в созданном репозиториина шаге (1).

  3. Измените свойства Customer3.Site и укажите необходимые проекты как svn: externals, например, «Library.Common», «Library.DB» и т. д.

  4. Выполните обновление, чтобы получить эти внешние проекты и добавить их в мое решение в Visual Studio, добавить необходимые ссылки на веб-проект Customer3.Site и нажать кнопку build.

Пока все хорошо.

Проблема

Все это прекрасно работает, я рад, что если мне придется изменить какой-либо из основных проектов Библиотеки, я могу сделать это прямо в той же среде и зафиксировать их в хранилище.По мере того, как будет создаваться все больше и больше сайтов клиентов, мне придется следить за тем, что я сделал, и не забывать обновлять SVN и перестраивать те сайты, которые кажутся довольно сложными.

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

1 Ответ

0 голосов
/ 11 сентября 2011

Я столкнулся с похожей проблемой ... Я устанавливаю пакет базовой установки для WordPress, который мы бы использовали для быстрой настройки сайта, он содержит ядро ​​wordpress + набор базовых плагинов, обасторонние и пользовательские, которые мы создали.Все в значительной степени исходит от SVN.

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

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

Что касается вашей проблемы, а также в моем случае:Вероятно, я бы написал скрипт коммита для автоматического обновления всех проектов при обновлении чего-либо в ветке поставщика.

...