[e-lang] Mirroring synchrona.org E repository

Thomas Leonard tal at it-innovation.soton.ac.uk
Thu Jan 21 01:51:28 PST 2010


How about setting up a git-svn mirror? Then anyone getting the code
through GIT will get the complete history automatically. For example, my
repository (http://gitorious.org/repo-roscidus/e-core) contains the E
history up to the point where I branched it (but I haven't set it to
update automatically).

You can create a clone from the svn using:

$ git svn clone svn://svn.synchrona.org/erights/e --stdlayout

This clone also includes all branches and tags, although it appears the
E has only one branch besides trunk and no tags.

To update it:

$ git svn fetch

The complete repository clone in GIT is 37M, although it could be shrunk
considerably by removing the large jars from the history.


On Wed, 2010-01-20 at 21:21 -0500, Kevin Reid wrote:
> 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:
> 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
> 
> _______________________________________________
> e-lang mailing list
> e-lang at mail.eros-os.org
> http://www.eros-os.org/mailman/listinfo/e-lang


-- 
Dr Thomas Leonard
IT Innovation Centre
2 Venture Road
Southampton
Hampshire SO16 7NP

Tel: +44 0 23 8076 0834
Fax: +44 0 23 8076 0833
mailto:tal at it-innovation.soton.ac.uk
http://www.it-innovation.soton.ac.uk 



More information about the e-lang mailing list