Я использую размещенный сервис подверсии для многих персональных и работаю проекты разработки. В то время как они сохраняют резервные копии как любая хостинговая компания, должен я хотеть смочь создать свои собственные локальные резервные копии также на всякий случай. Этот сервис позволяет Вам запрашивать и загружать резервное копирование, но они заряжают деньги, чтобы сделать это. Есть ли так или иначе, я могу генерировать резервное копирование/дамп своего размещенного репозитория путем соединения с ним как клиент через HTTPS?
Можно использовать команду svnsync
. Она, по сути, получит каждую ревизию исходной SVN базы данных и зафиксирует их в вашей резервной базе данных. Она может быть медленной при первом запуске, так как получает все изменения по одному, но после первой синхронизации это хорошее решение.
Теоретически "нет", так как дамп может быть выполнен только командой svnadmin
. Однако есть нетривиальное решение, чтобы обойти это.
Есть два способа, простой и трудный. Простой - это утилита под названием rsvndump (удаленный дамп SVN), вы можете найти ее здесь: http://rsvndump.sourceforge.net/
Если более простой не работает (у rsvnadmin есть ограничения, как написано на странице manpage), то есть сложный:
Второй более сложный метод требует установки SVK, клиента для распределенного управления версиями, собранного с помощью svn, в качестве расширенного клиента. К сожалению, процедура установки нетривиальна, но вот руководство для помощи .
Теперь перечислите удаленный репозиторий, используя SVK:
svk ls URL-to-SVN
Следуйте инструкциям. Вуаля, у вас есть локальная копия репозитория :). Первые две ревизии связаны с SVK, так что чтобы сделать дамп сейчас, вы выполняете:
svnadmin dump -r2:HEAD ~/.svk/local > repository.dump
И вот она у вас.
SVK также имеет преимущество быть предварительно собранным для windows (вот ссылка).