2010-08-12 3 views
5

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

ответ

4

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

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

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

1

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

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

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

2

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

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

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

0

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

Смежные вопросы