Just for archiving. I've got it from somewhere but i'm unable to find it.
In order to create mirror repository of one already available somewhere follow these steps:
$REPO = where you wan't to keep mirror (local path)
$SOMEWHERE = where is your original repo
svnadmin create REPO
Add hook that will disallow of commit by anyone except svnsync fake user:
cat > REPO/hooks/pre-revprop-change
#!/bin/sh
USER="$3"
if [ "$USER" = "svnsync" ]; then exit 0; fi
echo "Only the svnsync user can change revprops" >&2
exit 1
^Z
chmod +x REPO/hooks/pre/revprop-change
Finally initialize mirror:
svnsync --username svnsync initialize file://`pwd`/REPO svn://SOMEWHERE
Now each invocation of:
svnsync sync file://$REPO
synchronizes mirror with master.
Sample crontab:
* * * * * sync-svn-repo $REPO
(which means run sync-svn-repo script with parameter $REPO on start of every minute)
sync-svn-repo is simple shell script:
#!/bin/sh
repo=$1
(
echo "---- synchronizing at `date`"
/usr/bin/svnsync sync file://$repo
echo "---- finished: exitcode($?)"
) 2>&1 >> $repo/synch_log.log
No comments:
Post a Comment