SVN Externals - Оформить заказ на весь проект или его часть - PullRequest
1 голос
/ 19 августа 2011

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

Я пытаюсь добиться следующего:

Я хочу, чтобы в моем проекте было два репозитория: вендор и локальный.

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

Я хочу разделить свои репозитории настолько, насколько я хочу, чтобы иметь возможность просто проверить мое локальное репо и работать над ним, не проверяя весь проект. Хотя иногда весь проект должен быть проверен.

В идеале мне нужно иметь возможность оформить заказ, поработать и выполнить следующее:

  1. Только местный код
  2. Только код поставщика
  3. Сочетание вендора и местного кода

Позволят ли внешние SVN такое поведение? Если нет, как лучше всего этого добиться?

Ответы [ 3 ]

1 голос
/ 20 августа 2011

Не вижу смысла использовать svn:externals для решения вашей проблемы.Если все, что вам нужно сделать, это проверить различные проекты, вы можете просто структурировать свой репозиторий следующим образом:

/
    local/
        branches/
        tags/
        trunk/
    vendor/
        <vendor-specific project structure>

Когда вам нужен локальный код, запустите svn co <server>/local/<branch>, а когда вам нужен код вашего поставщика, вы запускаетеsvn co <server>/vendor/<whichever resource(s) you need>.Я что-то пропустил?

0 голосов
/ 20 августа 2011

Разделяя локальные репозитории и репозитории поставщиков, вы не можете проверить весь проект (локальный + поставщик) простым шагом.Я полагаю, у вас есть только один репозиторий, включая ваш локальный исходный код и исходный код поставщика.Теперь вы можете:

1) Определить внешний для вашего локального каталога, чтобы получить код поставщика при каждой проверке.(пункт 1 удовлетворен)

2) Определите внешний каталог для вашего каталога поставщиков, чтобы получать локальный код всякий раз, когда вы его проверяете.(пункт 2 удовлетворен)

3) Если вы хотите получить как локальный, так и исходный код поставщика, достаточно просто проверить вашу корневую (/ trunk) папку.(пункт 3 удовлетворен)

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

0 голосов
/ 20 августа 2011

Внешние SVN позволят вам 1) и 2).

Для 3) вам придется выполнить несколько команд фиксации - по одной на каждый измененный репозиторий.

Но это довольно легко для сценария (по крайней мере, в Linux).

С другой стороны, я бы порекомендовал вам интегрироваться с вашим поставщиком на другом уровне - например, в Java было бы лучше иметьотдельные репозитории и интеграция через JAR, встроенный в ваш сервер.

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