SVN, синхронизировать 2 репозитория с помощью сценариев запуска после фиксации - PullRequest
0 голосов
/ 06 февраля 2012

Я хочу синхронизировать 2 репозитория SVN в двух направлениях. Файлы, хранящиеся в SVN, представляют собой небольшие XML-файлы, что-то вроде заметок / набросков. Эти два репозитория разделены корпоративным брандмауэром, который ограничивает мой выбор (например, без внешних подключений).

Даже если я знаю, что это не рекомендовано Redbook & co, я думаю о следующем: - реализовать хук после фиксации, который установлен в обоих репо, - экспортирует зафиксированные файлы и фиксирует их в «другом» репозитории (за исключением того, что инициирующая фиксация является самой синхронизацией)

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

Что действительно (:-)) меня беспокоит, так это то, что я не могу найти такое решение онлайн. Это просто потому, что svn говорит: «Не делай этого, это опасно», или я упускаю что-то еще более фундаментальное?

br woecki

1 Ответ

0 голосов
/ 22 февраля 2012

Проблемы двунаправленной записи более сложны, чем кажутся.Представьте себе сценарий, в котором оба сайта находятся на ревизии №1.Фиксация происходит на site1 и site2 одновременно.Сайт1 с помощью триггера пост-фиксации отправит ревизию №2 на сайт2, а на сайт2 тем временем отправит свою версию ревизии №2 через триггер пост-фиксации на сайт1, чтобы создать ревизию №3.

Теперь происходят две очень плохие вещи: сначала вы попадаете в бесконечный цикл, каждый триггер пост-фиксации порождает другой, так как site2 отправляет ревизию № 3, а site1 отправляет ее обратно как ревизию № 4 и так далее.,

Во-вторых, вы попадаете в сценарий с раздвоенным мозгом.Это означает, что у вас есть две очень разные ревизии # 2 на каждом сайте.Таким образом, технология, которая делает это, оказывается очень сложной, поэтому простое решение - это подход главный-подчиненный, когда вы пишете только в одном месте.

Если вам нужно что-то более сложное, которое может выполнять двунаправленную запись (активно-активно, а не активно-пассивно), для этого есть программное обеспечение, попробуйте http://www.wandisco.com.

...