Commit graph

33 commits

Author SHA1 Message Date
Kovid Goyal
405f5ce148
Use stdlib maps/slices 2024-06-24 07:54:13 +05:30
Kovid Goyal
1a32e62ebf
More linter fixes 2023-09-18 21:07:39 +05:30
Kovid Goyal
341d845b9a
Port calls to slices.Sort functions since they now need a cmp() function rather than a less() function
Also rename os.SEEK_* to io.Seek* as the former has been deprecated
2023-08-04 22:50:13 +05:30
Kovid Goyal
4d686b2f47
Nicer string repr for operations 2023-07-30 19:49:46 +05:30
Kovid Goyal
d0490672e1
Fix block range coalescing not working in algorithm.c 2023-07-30 19:49:46 +05:30
Kovid Goyal
aff7f19580
DRYer 2023-07-30 19:49:46 +05:30
Kovid Goyal
6b5520f07a
More work on porting the receive kitten 2023-07-30 19:49:45 +05:30
Kovid Goyal
063c39ea12
Wire up the rsync code in the send kitten 2023-07-30 19:49:43 +05:30
Kovid Goyal
edc1669ced
Ported tests all pass 2023-07-30 19:49:43 +05:30
Kovid Goyal
b5498090df
Finish the port of the rsync algorithm to C 2023-07-30 19:49:43 +05:30
Kovid Goyal
fabb6bd8cc
Start work on porting Go rsync implementation to C 2023-07-30 19:49:42 +05:30
Kovid Goyal
4b5216adcf
Change delta creation API to use io.Writer
Simplifies logic and avoids an extra copy if the writer doesnt need to
make its own copy
2023-07-30 19:49:41 +05:30
Kovid Goyal
94b5bedfa5
Add overall file checksum verification to the rsync protocol 2023-07-30 19:49:41 +05:30
Kovid Goyal
e125f803b3
Work on adding overall checksum support 2023-07-30 19:49:41 +05:30
Kovid Goyal
c2ad662bed
Use the append paradigm for the delta iterator as well 2023-07-30 19:49:41 +05:30
Kovid Goyal
77d5fe1be5
Change signature generation API to allow caller to provide storage and control iteration 2023-07-30 19:49:41 +05:30
Kovid Goyal
bbb6a4ae35
Micro-optimization: store strong hash as a uint64 instead of a byte slice 2023-07-30 19:49:41 +05:30
Kovid Goyal
55f9359e1b
Make the rsync struct private 2023-07-30 19:49:41 +05:30
Kovid Goyal
6c10528cbd
Make the hasher var private in the rsync API 2023-07-30 19:49:41 +05:30
Kovid Goyal
ca835cd80d
... 2023-07-30 19:49:41 +05:30
Kovid Goyal
71c7c4b285
Clean up delta generation algorithm implementation 2023-07-30 19:49:41 +05:30
Kovid Goyal
e7d02b79d7
Make diff internals private 2023-07-30 19:49:41 +05:30
Kovid Goyal
6bc0fc7615
Make serializing data ops avoid a double copy 2023-07-30 19:49:40 +05:30
Kovid Goyal
f7723a65fa
Removal original delta operation implementation
Mine is nicer and much more amenable to debugging
2023-07-30 19:49:40 +05:30
Kovid Goyal
26c93af565
... 2023-07-30 19:49:40 +05:30
Kovid Goyal
f27bb2103f
Work on cleaning up the checksum searching algorithm 2023-07-30 19:49:40 +05:30
Kovid Goyal
79fd0b19cf
Fix a bug in upstream CreateDelta that could ignore trailing data if a matching hash is not found for it 2023-07-30 19:49:40 +05:30
Kovid Goyal
82721ef053
Check for error during seek() 2023-07-30 19:49:40 +05:30
Kovid Goyal
6d614a98ac
Get the test to pass 2023-07-30 19:49:40 +05:30
Kovid Goyal
26c22f0086
Work on creating tests for rsync api 2023-07-30 19:49:40 +05:30
Kovid Goyal
c28f6a7bf4
Make CreateSignature byte oriented 2023-07-30 19:49:39 +05:30
Kovid Goyal
7e12972414
Wrap the rsync Go API to use with byte streams and arbitrary hash functions 2023-07-30 19:49:39 +05:30
Kovid Goyal
d539620c9d
Import Go implementation of rsync algorithm
From https://github.com/jbreiding/rsync-go/blob/master/rsync.go
2023-07-30 19:49:39 +05:30