[e-lang] Mirroring synchrona.org E repository

Kevin Reid kpreid at mac.com
Wed Jan 20 18:21:14 PST 2010


We ought to have backups of the main E repository. I have just added  
it to my personal svn-mirror setup, so that I have a personal copy. I  
recommend that MarkM and anyone else interested do so as well.

Here are the steps I took to do it (adjust paths as appropriate):

cwd for me was: /External/Repositories/public-mirrors/

$ svnadmin create erights-e
$ cd erights-e/hooks
$ ln -s ../../_common/{pre-revprop-change,start-commit} ./
$ svnsync initialize \
   file:///External/Repositories/public-mirrors/erights-e/ \
   svn://svn.synchrona.org/erights/ \
   --sync-username svnsync
$ svnadmin setuuid \
   /External/Repositories/public-mirrors/erights-e/ \
   `svn info svn://svn.synchrona.org/erights/ \
     | perl -ne 'print $1 if /^Repository UUID: (.*)$/'`

The pre-revprop-change and start-commit hooks installed are:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pre-revprop-change
Type: application/octet-stream
Size: 138 bytes
Desc: not available
Url : http://www.eros-os.org/pipermail/e-lang/attachments/20100120/3677124c/attachment.obj 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: start-commit
Type: application/octet-stream
Size: 132 bytes
Desc: not available
Url : http://www.eros-os.org/pipermail/e-lang/attachments/20100120/3677124c/attachment-0001.obj 
-------------- next part --------------

The start-commit hook helps ensure the mirror is not accidentally  
committed to, which invalidates it as a mirror for all time; the pre- 
revprop-change hook permits svnsync to copy the revision properties  
(e.g. commit author, commit time) which may not be controlled by an  
ordinary commit.

The mirror may then be updated by:

$ svnsync synchronize \
   file:///External/Repositories/public-mirrors/erights-e/ \
   --sync-username svnsync

On a longer schedule, this command should be run, or revprops copied  
on an as-needed basis in the event that we announce a change (revprops  
are unversioned and so svnsync can't automatically detect changes  
anywhere in the repository; this command just scans everything, i.e.  
is O(n)).

$ svnsync copy-revprops \
   file:///External/Repositories/public-mirrors/erights-e/ \
   1:HEAD --sync-username svnsync

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>






More information about the e-lang mailing list