kolosy / rsync.net

port of rsync to .net
53 stars 32 forks source link

rsync.net diff algorithm #1

Open mglaser opened 14 years ago

mglaser commented 14 years ago

I have been learning the source and doing some testing, am I correct in thinking the rsync diff algorithm is not working? The daemon is running with the command:

NetSync.exe --daemon --port 873 -vvvv

Then I sync a 1.2Mb text file using the following command: NetSync.exe -r -c "C:\Work\RPCv4\RPCDlls\rpclog.txt" localhost::qc

Number of files: 1 Number of files transferred: 1 Total file size: 1223943 Total transferred file size: 1223943 Literal data: 1223943 Matched data: 0 File list size: 67 Total bytes written: 1224250 Total bytes received: 62

When the file is unchanged, there is a match and only a few bytes are transferred. If it is changed by one byte the whole file is retransmitted. Is there a away to make it only send the changes? I have also tried the rsync:// protocol format for the destination and set --no-whole-file (this option doesn't appear implemented in the code so far)

Thanks, this is a very cool project and I'm keen to help make it work.

kolosy commented 14 years ago

the algorithm does work, but the original intent was to have a windows box be able to push data to a unix server. as a result, the only syntax that was fully tested is

NetSync.exe -r -c c:\path\to\file rsync://user:pass@server/module

the issue with this project is going to be unraveling all the switches and options rsync swallows. the core algorithm is correct and tested.