Какой смысл делать копию вашего хранилища только для чтения через svnsync? - PullRequest
5 голосов
/ 13 августа 2010

Я читал svnsync, чтобы создать копию нашего репозитория только для чтения, но я не совсем понимаю, в чем смысл наличия копии репозитория только для чтения. Если мастер по какой-то причине выходит из строя, может ли копия только для чтения стать доступной для чтения / записи, чтобы люди могли выполнить ее? Если нет, то какой смысл в копии только для чтения?

Ответы [ 4 ]

4 голосов
/ 13 августа 2010

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

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

В качестве альтернативы клиенты с рабочими каталогами на основе исходного мастера могут выполнить операцию svn switch --relocate, чтобы обновить URL-адрес сервера, чтобы он указывал на копию, и продолжал работать без помех. Конечно, как только клиенты начнут использовать резервную копию для фиксации, она больше не может быть целью команд svnsync и фактически станет новым главным хранилищем, и вам захочется создать новую резервную копию.

2 голосов
/ 13 августа 2010

Предполагая, что вы говорите о своем собственном частном репозитории, две причины для чего-либо доступного только для чтения - базы данных, репозитория исходного кода или xyz - состоят в том, чтобы уменьшить нагрузку и повысить производительность.

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

Аналогичный аргумент может быть приведен в отношении задержки - его проще вывести из локальной системы.только для чтения / копирования (по сути, кеш), чем для извлечения из другого офиса через VPN или аналогичную ссылку.

1 голос
/ 13 августа 2010

Я не знаю, можете ли вы заставить вас синхронизировать чтение / запись, но во многих случаях вы хотите проверить содержимое репозитория, даже не разрешив использовать его.Ниже приведены два случая, очень похожих на то, что мы делаем в месте, где я работаю:

  • Представьте, что это публичный проект с открытым исходным кодом, вы можете разрешить выезд для всех, но ожидать взносов можно только черезпатчи или отчеты об ошибках (также копия помещается на общедоступный сервер, а основная хранится в защищенной частной сети).

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

0 голосов
/ 18 августа 2010

Сделайте резервную копию ваших любимых программ с открытым исходным кодом:).

...