Как решить SVN: внешняя проблема - PullRequest
0 голосов
/ 17 сентября 2011

Я использую SVN для своего проекта. У меня есть два репозитория с именами repo1 и repo2. В каждом репозитории я создал ветку с именем branch1 в обоих репозиториях. Для одного из модулей в Branch1 репо2, называемого module1, определено svn: external, и для Repo1 установлено значение module1 для Branch1 в филиале.

Но теперь я создал еще одну ветку с именем branch2 в repo1 и repo2, которая является копией branch1 обоих репо. Теперь мой module1 в branch2 repo2 по-прежнему указывает на module1 branch1 в repo1. Но он должен ссылаться на module1 из branch2 в repo1.

Есть ли способ, которым мы можем изменить svn: externals автоматически, когда мы делаем копию SVN или ветку svn?

Ответы [ 3 ]

2 голосов
/ 17 сентября 2011

Я не думаю, что это возможно. Я не думаю, что у svn есть способ узнать, хотите ли вы, чтобы внешние svn ссылались на branch2 или branch1.

Обновление : Это обсуждение выглядит полезным.

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

Нет, то, что вам нужно, не может быть выполнено svn автоматически. Создание ветки копирует всю папку в SVN, а также все ее внешние ссылки.

Но вы можете написать свои собственные сценарии, чтобы создать ветку и обновить внешние компоненты.

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

Определенный ресурс на svn: externals показывает некоторые возможности для «относительных» ссылок.Но ни один из них не может пересекать границы хранилища так, как вы хотите.

Это оставляет следующие опции:

  • Поместите связанные проекты в один и тот же репозиторий и в один и тот же каталог филиала и используйте относительные svn: внешние ссылки или
  • Используйте и / или взломайте инструмент, подобный svncopy, целью которого является работа с svn: externals.Этот инструмент находится в дереве исходных текстов Subversion в contrib/client-side/svncopy.
  • Или вы можете добавить разветвление / тегирование в вашу систему сборки.

Ни один из этих параметров не является nobrainer.*

...