Python-based file synchronizer (like Unison)?

Gandalf gandalf at geochemsource.com
Tue Jan 20 04:00:58 EST 2004


>
>
>I've been using Unison
>	http://www.cis.upenn.edu/~bcpierce/unison/
>for awhile and it causes me a lot of grief.  I'd love to have a
>Python version which would be vastly easier to modify.
>
>Anyone know of anything like this?  It doesn't seem like it
>should take a lot to sit on top of rsync and resolve conflicts.
>
>I see that someone implemented rsync in Python and that there's
>a SWIG wrapper for librsync.
>	http://minkirri.apana.org.au/~abo/projects/pysync/README
>I might have to take a whack at this on my own, but I'd prefer
>to use something better that someone has already crafted.
>
Well, I have something for you called PySynchro.  I wrote a simple 
client/server application
entriely in Python. Personally I use it for synchronize source codes 
between various computers.
It uses secure connections, authentication (OTP variant). It is plaform 
independent (I tried it
on FreeBSD, Linux and Windows. I don't know how it works on Macs.) It is 
not a hyperspeed
syncronizer (although it transfers the files in compressed chunks).  It 
requires some popular libraries
to be  present but the main point was independency. It does not require 
any external programs /
database servers etc. On the client side, there is a class representing 
the client interface
and I have a wxPython UI that uses this interface to synchronize files.

There are some problems, though. I would like to implement persistent 
file locking and auto-locking
but it is not written yet.. It would be also possible to store 
'versions' but it is done yet. From other
aspects, the UI interface is similar to Borland's TeamSource (with some 
major differences in the
background). If you only want to compare and merge directories, you 
 will find some useful classes
inside.

The code is fairly well documented (with epydoc) but the whole idea of 
the program is not.
Let me know if you are interested. I have been using it for months 
without problems but you can be
the first beta tester. :-)

   G






More information about the Python-list mailing list