MacPython Logo from __future__ import *

buy music albums Silver Apples buy mp3 albums Tarrus Riley buy tracks mp3 Kravits buy Reaper albums mp3 buy Kravits albums music buy music Evita CD online albums mp3 Silver Apples download Madonna CD music buy tracks music Kravits download music albums Silver Apples

2006-09-14

svnsync: mirror your svn repository

Filed under: FreeBSD, macosx, subversion, universal binaries — bob @ 12:15 pm

Since the svnsync tool in Subversion 1.4 still lacks documentation, here's a quick example to get you started with it:

$ svnadmin create svn.mochikit.com
$ echo '#!/bin/sh' > svn.mochikit.com/hooks/pre-revprop-change
$ chmod +x svn.mochikit.com/hooks/pre-revprop-change
$ svnsync init file://$PWD/svn.mochikit.com http://svn.mochikit.com/
$ svnsync sync file://$PWD/svn.mochikit.com

The example performs the following tasks:

  • Creates a new local repository named svn.mochikit.com
  • Adds a trivial pre-revprop-change hook to the repository (required for svnsync)
  • Initializes the svn.mochikit.com repository to be a mirror of http://svn.mochikit.com/
  • Synchronizes the svn.mochikit.com repository with its initialized source

Note that this is point-in-time synchronization. To keep an up to date mirror you'll have to run svnsync sync on a regular basis (e.g. by cron job or post-commit hook).

If you're looking for an especially easy to install set of svn binaries for Mac OS X, I recommend Martin Ott's (of SubEthaEdit fame) build. I've been using it on all of my Macs for quite some time with no issues. Much less hassle than building it myself or using MacPorts (previously known as DarwinPorts).

2004-10-05

SVN::Mirror

Filed under: perl, subversion — bob @ 12:08 am

Mirroring of Subversion repositories isn't very well supported at this point. It seems that the only way to do it without filesystem access to the server is with a perl package, SVN::Mirror.

Installing SVN::Mirror was a bit troublesome. Basically you need to:

After that, you should have a svm utility, which you can mirror your repository with. There is a documentation bug in the current version where it says that that init takes a skip_to argument. It does not. sync does, however.

In order to get the mirror going, you need to do something like this

$ setenv SVMREPOS ~/svm
$ svm init mirror/bob http://svn.red-bean.com/bob
$ svm sync mirror/bob 2

The 2 is important, because it's the skip_to argument that allows your mirror's revisions to match your repository. Don't ask. In an earlier version of svm, this number used to be 3.

To check it out, you do:

$ svn co file://$SVMREPOS/mirror/bob bob

And to update the mirror:

$ svm sync mirror/bob

2004-02-24

Trac

Filed under: python, subversion — bob @ 5:19 am

Trac is a "minimal" Subversion Frontend/Wiki/Issue Tracker/Task Manager/etc. written in Python that revolves around a Subversion repository and a SQLite database. I've taken a quick glance (at the website and source code), and here are my thoughts:

Pros:

  • Verison Control!
  • Far, far, far less ugly than almost all of the others
  • It's not sitting on top of some monster like Zope/Plone/etc.

Cons:

  • The source code mixes tabs and spaces (what the hell are they thinking)?
  • Lots of inline SQL code, no abstraction on top of SQLite.
  • It is based on CGIs, with no fcgi/asyncore/Twisted/etc integration that I can see, so it's not likely to scale and may have database locking issues (either corruption, or not scaling because the database is locked per-process).
  • The Wiki engine is based on MoinMoin syntax not reStructuredText, and it has no hooks to docutils.
  • When they say minimal, they were probably comparing themselves with Plone. It certainly doesn't sound minimal from the description!

That said, I think something like this is sorely needed, but it doesn't sound appealing enough just yet to compell me to dump roundup, MoinMoin, viewsvn, etc.

Powered by WordPress