Могу ли я создать размещенный SVN-репозиторий «параллельно» своему собственному на моем офисном сервере? - PullRequest
6 голосов
/ 05 февраля 2011

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

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

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

TIA Brian

Ответы [ 3 ]

2 голосов
/ 05 февраля 2011

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

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

1 голос
/ 26 февраля 2011

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

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

0 голосов
/ 05 февраля 2011

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

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

Недостатки:

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

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

...