Периодически копировать ревизии из одного репозитория SVN в другой активный репозиторий SVN. - PullRequest
0 голосов
/ 16 апреля 2009

Моя компания поддерживает два репозитория SVN: Репозиторий 1 и Репозиторий 2:

  1. В этом хранилище есть несколько проектов, и доступ к нему имеют только разработчики в компании. Доступ осуществляется через HTTPS, а аутентификация - через домен Windows.
  2. В этом репозитории есть один проект, и к нему обращаются разработчики из компании и разработчики нашего клиента. Доступ осуществляется через svn: //, а аутентификация - через файл passwd.

У нас есть некоторый код в папке в Repository 1, который мы хотели бы загрузить пользователям Repository 2. Очевидный ответ - использовать SVN Externals, но, насколько я понимаю, для этого потребуются разработчики клиента. есть учетные записи в нашем домене, и нашим ИТ-специалистам это не нравится.

Поэтому единственное решение, которое я вижу, - это какое-то задание cron, которое периодически запускается для копирования необходимых файлов из репозитория 1 в 2. Я нашел инструмент под названием Tailor , который утверждает, что делает Мне нужно, но пока мне не удалось заставить его работать правильно.

Прежде чем тратить больше времени на то, чтобы заставить Tailor работать, есть ли у кого-нибудь предложения о другом подходе? Мое последнее средство - запустить программу, которая сделает это для меня, что не должно быть слишком сложно, но всегда лучше использовать существующее приложение, если оно есть!

Заранее спасибо за любую помощь / указатели!

Rich

Ответы [ 4 ]

2 голосов
/ 16 апреля 2009

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

SVN теперь имеет хорошую поддержку для зеркалирования:

https://www.opends.org/wiki/page/MirroringASubversionRepository

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

Однако вам нужно убедиться, что единственное, что обновляет зеркало, это команда svn sync - пользователи хранилища 2 не смогут зафиксировать изменения обратно в хранилище 1.

На этой странице есть очень полезная информация:

http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt

1 голос
/ 16 апреля 2009

Я вижу, вам нужно внести изменения из обоих репозиториев.

Возможно, вы сможете использовать ту же идею svnsync для создания прокси для сквозной записи .

Используя это, зеркальный репозиторий передает запросы записи обратно главному прокси. Сейчас я не уверен в том, что происходит с аутентификацией, но, вероятно, здесь стоит разобраться.

Можно также посмотреть эту информацию .

0 голосов
/ 16 апреля 2009

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

0 голосов
/ 16 апреля 2009

Вам нужно, чтобы внешние разработчики изменили код в папке в репозитории 2, если нет, то вам вообще может не понадобиться использовать SVN.

В общем, наличие двух репозиториев с SVN с одинаковым кодом может привести к путанице.

Другие опции

  • Если вам нужны внешние разработчики редактировать файлы в хранилище 2, не могли бы вы иметь внешние идти в другую сторону, так что хранилище1 имеет внешнее определение репозиторий.
  • Обойдите своих айтишников поместив весь код в хранилище.
  • Использовать GIT.
...