Есть ли способ, которым я могу перенаправить коммиты в главную копию SVN, в то время как мой SVN указывает на зеркальную (только для чтения) копию - PullRequest
0 голосов
/ 08 мая 2019

Я настроил зеркало нашего существующего репо, которое синхронизируется.Но, как я понимаю, изменения в зеркальном копировании должны вносить только svnsync.

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

Так есть ли способ, либо на стороне клиента, либо на скрипте подключения на стороне сервера, где я мог бы перенаправить коммитымастер-репо

Репо не обслуживаются с использованием Apache, поэтому я думаю, что SVNMasterURI или эти решения не будут работать, и мы используем протокол SVN, а не http или https

1 Ответ

0 голосов
/ 09 мая 2019

Предисловие

  1. Вы пытаетесь использовать CVCS -систему в DVCS -стиле.Это Плохая идея (тм) в общем, потому что она игнорирует принцип "Создай свой бизнес"
  2. Вы добавили дополнительный уровень сложности (репо-зеркало) без видимого дополнительного уровня полезности(зеркало «просто существует» и вызывает у вас только головную боль)

Лицо

В любом случае, у вас есть какое-то решение s , больше илименее уродливый и | или нативный

Level0: ничего не изменить в инфраструктуре

  • Подготовить, опубликовать, научить конечных пользователей использовать пользовательские команды (с любымимя) вместо простого svn ci.Этот сценарий должен выполнить все переключения за сценой, что-то вроде

    svn relocate $MAINREPO

    svn ci -m $1

    svn relocate $MIRRORREPO

  • Попробуйте перехватить все данные с помощью ловушки предварительной фиксации на стороне сервера (просто идея, без готового к использованию кода)

Level1: изменения на стороне пользователя

Если у вас есть DVCS-задачи, вы можете использовать DVCS-клиенты.Наиболее известными и упомянутыми являются Git и Mercurial, оба могут легко работать с удаленными репозиториями SVN, но HG не может работать (AFAIK) с двумя репозиториями SVN из одного локального репозитория, в то время как Git может.Вы должны установить, настроить, научить пользователей использовать Git и, в конце концов, они будут «извлекать» из $ MIRRORREPO, но «подталкивать» к $ MAINREPO

Level2: полная миграция на DVCS

Замените все на Mercurial (как репозитории, так и инструменты пользователя), добавьте оба пути в конфигурацию ключей, извлеките из $ MIRRORREPO, нажмите на $ MAINREPO

...