Mirror subversion repositories

by

There are different ways to generate mirrors of subversion repositories like `svnadmin dump`, `svnadmin hotcopy` or `svk` but you need more privileges to do it or will not create a "perfect" copy. Since subversion 1.4 exists a new alternative svnsync. It is really easy to create a private mirror with only some steps (you should check user in pre-revprop-change before make it public accessible).

REPO_TITLE="batman"
REPO_URL="https://dev.open-mesh.org/svn/batman/"
svnadmin create "${REPO_TITLE}"
cat > "${REPO_TITLE}"/hooks/pre-revprop-change << 'EOF'
#! /bin/sh
exit 0
EOF
chmod +x "${REPO_TITLE}"/hooks/pre-revprop-change
svnsync init "file://`pwd`/${REPO_TITLE}" "${REPO_URL}"

A good idea is to check the UUID of the master repository by using `svn info "${REPO_URL}"` and change it with `svnadmin setuuid "${REPO_TITLE}" 45894c77-fb22-0410-b583-ff6e7d5dbf6c`.

You should do your syncs regularly (for example with cron) with

svnsync sync "file://`pwd`/${REPO_TITLE}"