можно создать резервное копирование репозитория ( дамп ) с svnadmin dump
.
можно тогда импортировать его в использовании svnadmin load
.
Подробная ссылка в SVNBook: "Миграция данных репозитория с помощью svnadmin"
Я делаю это в проекте, который использует SVN (отправка в публичный репозиторий на github). У меня нет хука фиксации SVN, но это в задании cron:
#!/bin/bash
repo=/path/to/my-mirror.git
lockfile="$repo/cron-lock"
if ! lockfile -r1 "$lockfile";then
exit 1
fi
export GIT_DIR=$repo
# update refs/remotes/git-svn:
git svn fetch -q
# make 'master' match the git-svn branch:
git fetch "$repo" refs/remotes/git-svn:refs/heads/master
# publish to github
git push github master
rm -f "$lockfile"
Если вы запускаете это из хука фиксации SVN вместо задания cron, он должен работать.
Конечно, вам нужно настроить удаленный под названием github
с использованием git remote add github [...]
. Репозиторий git, который я использую, представляет собой "чистый" репозиторий (см. git init --bare
).