2011-02-05 4 views
6

Мы используем сервер DIY SVN в офисе уже около года. Это простая настройка с SVN, установленным на домашнем сервере. Мы используем черепаховый SVN для доступа к нему. Мне просто жаль, что я не узнал о системе версий contol лет назад. В любом случае, конечно, доступ к серверу идеально подходит для офиса в локальной сети 1 Гбит/с, но за пределами его использования, но он ограничен, ограничен Скорость загрузки 50 килобайт/с нашей линии ADSL в Интернет. Думаю, это может улучшить один день с «бесконечностью», но мы можем умереть.Могу ли я создать размещенный репозиторий SVN «параллельно» с моим собственным офисным сервером?

Хотелось бы иметь «параллельный» репозиторий, для которого я понимаю, что заплачу, где доступ намного быстрее. Это также даст нам дополнительную резервную копию. Мой репо находится под 40G, поэтому предел 100G будет в порядке. Есть ли способ сделать это и сделать два в качестве зеркал, которые совершают (по крайней мере, небольшие), видимы почти одновременно? Я уже использую команду Svnbackup для создания параллельного зеркала на нашем сервере, так что это может работать в обоих направлениях?

Любые предложения или альтернативы оценены.

ТИА Brian

ответ

2

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

Если вы хотите совершить сделку из разных мест, посмотрите на распределенный инструмент, такой как hg + hgsubversion или git-svn, которые оба могут использоваться как асинхронные клиенты для svn.

+0

Спасибо. Читайте-пишите пожалуйста. Мое основное использование зеркала www было бы дома (или вне офиса). –

+1

@Brian Вы не можете (легко) настроить кластер серверов svn с несколькими мастерами, поскольку модель данных svn не позволяет этого. Вы можете разместить центральный сервер в Интернете, что приводит к потере производительности в вашем офисе. Вам нужно решить, подходит ли вам потеря производительности. Альтернативой является использование mercurial или git as svn client, поскольку эти инструменты позволяют работать в автономном режиме. Но подход DVCS работает только тогда, когда вам не нужны такие функции, как блокировка файлов или частичная проверка дерева. – Rudi

0

Стандартный сервер Linux SVN имеет перехватчики, позволяющие запускать собственные сценарии событий. Вы можете использовать hook post-commit (просто поместите скрипт с именем post-commit в каталог «hooks»).

Теперь вы можете либо просто запустить hotcopy всего репозитория, который довольно легко настроить (svnadmin hotcopy from to), и скопировать репозиторий на другой хост в Интернете с помощью ssh или тому подобного. Вы можете сделать это на обеих машинах, и вы хороши.

Недостатки:

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

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

1

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

В Интернете много tutorials, но все они требуют, чтобы вы выполняли подрывную деятельность, используя http access (not svnserve). Ведомое устройство обновляется с помощью превосходного svnsync и крюка после фиксации.

+0

@gbjbaand: Это умная идея, спасибо. –

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

  • Нет связанных вопросов^_^