[clc-devel] perl rsync backend

Jukka Heino jukka at karsikkopuu.net
Mon Nov 28 15:11:32 UTC 2005


Johannes Winkelmann wrote:

>Hi there,
>
>I found something which could probably be combined with Jukka's script
>into a cool ports backend:
>  http://perlrsync.sourceforge.net/info.html
>
>It's an rsync-client implementation in Perl; there's a module called
>File::RsyncP::FileList which seems to contain the files to be synced,
>which could be used to generate a client-side .checkout file without any
>special settings/action (rsync-repgen) on the server. If this works, it
>would have really nice properties:
> - efficient (cpu, network load and hd space wise)
> - pure rsyncd on the server
> - output can be adjusted to mimick cvsup's
>
>If anyone has the time to verify my impression, that would be great :-).
>I'd rather delay the switch to a new backend if this proves to be the
>viable solution.
>
>  
>

Looks like this could work although it will require some additional 
work. Coincidentally I have found a way to generate a .checkouts file 
without server side intervention. The updated rsync driver is in the 
same old location:

http://www.karsikkopuu.net/crux/misc/rsync

I've changed it to output cvsup-like messages--it even differentiates 
between updates and initial checkouts, just like cvsup. Here's an 
example from its output:

$ sudo ports -u jheino-test
Updating file list from jh.ton.tut.fi::jheino
Updating collection jheino
 Edit coolmagic/
 Edit coolmagic/.footprint
 Edit coolmagic/.md5sum
 Edit coolmagic/Pkgfile
 Edit sdlquake/Pkgfile
 Delete ngircd/.footprint
 Delete ngircd/.md5sum
 Delete ngircd/Pkgfile
 Delete ngircd/ngircd.conf
 Delete ngircd/ngircd.rc
 Delete ngircd
Finished successfully

It's still plain Perl calling rsync. Although it's still missing some 
things, like proper error reporting in case of an error, I'd say it's 
working pretty nicely. I don't personally see the need for File::RsyncP, 
since it would introduce unnecessary complexity (and it looks like the 
module hasn't been updated in a while, either).

// Jukka



More information about the crux-devel mailing list