[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[ANN] SVN::Pusher version 0.01

From: Shlomi Fish <shlomif_at_iglu.org.il>
Date: 2005-08-04 15:43:48 CEST

SVN::Pusher version 0.01 was released:


SVN::Pusher is a Perl module and an accompanying command line program
(svn-pusher) that can propagate changesets between two (possibly remote) URLs
of Subversion repositories.

Grab it from a CPAN mirror near you.

That's it for the announcement.


Now for some long and boring history:

SVN::Pusher has quite a long history. After asking clkao a while ago whether
one can propagate changesets from one repository to another, and he gave me
some general guidelines, I started writing it as a Perl command line program
called "svn-push". However, I encountered some problems and since the C API
was more documented, and the people on #svn were most familiar with it, I
eventually implemented it in C. It then worked, with one glaring bug of
merging several consecutive changesets into one. I then neglected working on

While I wasn't watching someone published a module SVN::Push on CPAN:


However, this module (which has a command line program called "svnpush") acted
as a Repository-Access-layer replacement for SVN::Mirror, and as such had
several other side-effects than just propagating changesets.

I decided to convert SVN::Push into a module called SVN::Pusher which will do
the same thing as the C-based svn-push only being written in Perl, allow for
more flexibility in the code and possible future extensions. I started doing
the conversion some months ago (can't remember exactly when) but encountered
some problem, and neglected it.

A few days ago, I returned to it, was able to resolve the initial problem and
encountered some new ones. By the aid of perl -d, gdb, the good people on the
IRC, and the Subversion documentation, I was able to resolve all remaining
problems. Part of the problem was that SVN::Push did many things differently.

The code was working, but its internals were still ill-adapted to the task.
Two days ago, I cleaned up the code, adapted everything to be
SVN::Pusher-centric instead of SVN::Push-centric and uploaded it to CPAN.

So now we have:

* svn-push (the old C program)
* SVN::Push or SVN-Push (the Perl module that emulated SVN::Mirror)
* svnpush (its command line client)
* SVN::Pusher or SVN-Pusher (the Perl module that implements svn-push in Perl)
* svn-pusher (its command line client)
* svk push (a sub-command of svk)
* svn push (maybe - in the distant future, when distributed repositories will
be implemented in the Subversion core. )

Now I should try conveying this text to someone on the phone, and see if we
get back the same result. We can use Subversion (or one of its "push"
clients) to check...


        Shlomi Fish

Shlomi Fish shlomif@iglu.org.il
Homepage: http://www.shlomifish.org/

Tcl is LISP on drugs. Using strings instead of S-expressions for closures
is Evil with one of those gigantic E's you can find at the beginning of

To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Aug 4 15:48:41 2005

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.