Creating a read-only mirror of a repository from a HTTPS which is in sync helps to maintain an local repo which is in sync with the global and is much faster and reliable for a group working locally.
Achieving this is pretty simple,svnsync - Subversion repository synchronization tool which makes the job easier.
The idea is pretty simple, the steps followed are :
1.Setting up a mirror repository.
2.Initialize (init) the sync.
3.Synchronizing the data.
4.Making a sync job.
Setting up a mirror repository:
#Create a mirror repository
$ svnadmin create ~/test-mirror
# add a commit hook
$ cat <<'EOF' > ~/test-mirror/hooks/pre-revprop-change
#!/bin/sh
USER="$3"
if [ "$USER" = "user-name" ]; then exit 0; fi
echo "Permission denied"
exit 1
EOF
# user-name is the desired user name
# Set permissions
$ chmod +x ~/test-mirror/hooks/pre-revprop-change
Initialize (init) the sync:
$ svnsync init --username $USER file://$HOME/test-mirror
Synchronizing the data:
svnsync --non-interactive sync file://$HOME/test-mirror
Making a sync job:
# Cron
0 2 * * * * svnsync --non-interactive sync file://$HOME/test-mirror
# immediate synchronization whenever a commit is made
Add the below lines to master-repo/hooks/post-commit
svnsync --non-interactive sync mirror-url &
# for log messages, append the following to master-repo/hooks/post-revprop-change
svnsync --non-interactive copy-revprops mirror-url ${REV} &
