Quoting Martin Pool <[EMAIL PROTECTED]>:

> On 15 Nov 2000, Rob Russell <[EMAIL PROTECTED]> wrote:
> 
> > At the Ottawa Linux Symposium, I heard talk of a proof-of-concept
> version
> > of diff rewritten to use the rsync algorithms to produce diffs across
> a
> > network.  Does such a beast still/actually exist?

<potentialy boring re-iteration of stuff already posted on this list>

I dunno if this is the same thing you were after, but there is also xdelta;

http://xdelta.sourceforge.net/

xdelta is a bit different to rsync in that it calculates more optimal deltas 
directly from <oldfile> to <newfile> without using an intermediate <sigfile>. 
This means delta calculation requires access to both files, unlike rsync which 
just requires <newfile> and a much smaller <sigfile>. However, it can be used 
to update remote versions providing the version of the remote file can be 
identified and either a copy of that version or a pre-calculated delta for that 
version is available. xdelta was developed as delta compressed storage and 
distribution for a revision control system (like the RCS part of CVS), hence 
the reliance on, and optimisations for, local access to all versions of the 
file.

xdelta is not not suitable for syncronising or calculating deltas for arbitary 
seperated files, but it does have a very clean implementation, fairly good 
documentation, and a nice API. It even has a simple but powerful application 
filesystem API using a database back-end, allowing simple atomic access to any 
version or delta between any pair of versions. I'm sure some applications 
looking at using rsync could use xdelta instead, and hence benefit from more 
optimal deltas and and the powerful API.

<potentialy boring re-iteration of stuff already posted on this list>
 
> It has not yet existed, but I'm working on it.  More specifically, it
> exists in the libhsync CVS tree on http://cvs.samba.org/, but it
> doesn't work very well yet.
>
> I'm changing libhsync to have an API much like zlib/bzlib, in the hope
> that this will make network app integration simpler.
[...]

I am 90% of the way through an "example implementation" of exactly this in pure 
python. I should be finished within a week (it's only a couple of hours work, 
but I dunno when I'll find those hours...) and I'll announce it on this list. I 
can gaurentee that it will not be fast or compatible with other 
implementations, but it will be simple and hence I _should_ be able to get it 
pretty bug free. I'm not intending it to be for real applications, more as an 
academic excercise and tool to help explain the algorithm. Also, its something 
to use in my python app-under-development till something real is ready.

I'm actualy hanging out for a real implementation of this for something I'm 
working on in python. As soon as you get it workable, I'd like to swig a python 
wrapper around it.

--
ABO: finger [EMAIL PROTECTED] for more information.

Reply via email to