Какой смысл иметь копию только для чтения вашего хранилища через svnsync?
Я читал svnsync, чтобы создать копию нашего репозитория только для чтения, но я не совсем понимаю, в чем смысл наличия копии репозитория только для чтения. Если мастер по какой-то причине выходит из строя, может ли копия только для чтения стать доступной для чтения / записи, чтобы люди могли выполнить ее? Если нет, то какой смысл только для чтения?
4 ответа
Репозитории только для чтения, поддерживаемые svnsync, обычно настраиваются для обеспечения резервного копирования главного репозитория в режиме реального времени. Копия считается доступной только для чтения, потому что внесение изменений в нее с помощью средств, отличных от svnsync, помешает правильной работе svnsync.
В случае, если ваш основной репозиторий потерян, ваш резервный репозиторий может стать новым главным. Для всех практических целей копия идентична исходному мастеру на момент последнего запуска svnsync. Вы можете восстановить исходное хранилище, скопировав файлы из резервного хранилища и продолжив, как и прежде.
В качестве альтернативы, клиенты с рабочими каталогами на основе оригинального мастера могут выполнить svn switch --relocate
операция по обновлению URL сервера, чтобы он указывал на копию и продолжал работать без проблем. Конечно, когда клиенты начинают использовать резервную копию для фиксации, она больше не может быть целью команд svnsync и фактически становится новым главным хранилищем, и вы захотите создать новую резервную копию.
Предполагая, что вы говорите о своем собственном частном репозитории, две причины для чего-либо доступного только для чтения - базы данных, репозитория исходного кода или xyz - состоят в том, чтобы уменьшить нагрузку и повысить производительность.
Если вы используете аналитику в своем репозитории, скажем, процесс, который затрагивает каждую ревизию, это может привести к высокой нагрузке на ваш основной репозиторий, что приведет к снижению производительности для разработчиков. Синхронизация копии только для чтения - это способ уменьшить эту нагрузку, позволяя выполнить работу, не вызывая деградации для ключевых пользователей.
Аналогичный аргумент может быть сделан в отношении задержки - легче извлечь из локальной копии только для чтения (по существу, из кэша), чем извлечь из другого офиса через VPN или подобную ссылку.
Я не знаю, можете ли вы заставить вас синхронизировать чтение / запись, но во многих случаях вы хотите проверить содержимое репозитория, даже не разрешив использовать его. Ниже приведены два случая, очень похожих на то, что мы делаем на месте, где я работаю:
Представьте, что это общедоступный проект с открытым исходным кодом, вы можете разрешить извлечение для любого, но ожидать внесения изменений только через исправления или отчеты об ошибках (копия также помещается на общедоступный сервер, а основной хранится в защищенной частной сети).
Возможно, вы захотите использовать содержимое svn через экспорт svn в автоматизированной системе сборки (или каком-либо инструменте анализа), но выберите синхронизацию не все время, а только тогда, когда основной svn находится в стабильном состоянии (представьте, что некоторые промежуточные коммиты могут оставьте код в нестабильном состоянии, когда код не компилируется).
Сделайте резервную копию ваших любимых исходных программ с открытым исходным кодом:).