Commit Graph

12483 Commits

Author SHA1 Message Date
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
1adaafbbb9 Forgot to update FTCSerialization test for new behavior 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
d676886ab8 Update safe string pat in go code to match updated spec 2023-07-30 19:49:41 +05:30
Kovid Goyal
039e17840a Allow users to customize buffer growth strategy 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
579ab8551e Add some API docs 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
7268513332 More tests 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
83d97c515c Use the iterator design for bytes based API as well 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
35bfdbd926 ... 2023-07-30 19:49:40 +05:30
Kovid Goyal
3db2c4fe5d Make the test non-random 2023-07-30 19:49:40 +05:30
Kovid Goyal
74e0fa3f1d Show invocation line for failing test 2023-07-30 19:49:40 +05:30
Kovid Goyal
ed6e3dfe2c Speedup Memset for single val 2023-07-30 19:49:40 +05:30
Kovid Goyal
678ad627b2 Improve testing infra for rsync roundtrip 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
4dc409ff5d Increase MaxBlockSize 2023-07-30 19:49:40 +05:30
Kovid Goyal
6a7c194d8f In the tests check that too much data is not being transmitted 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
278a3986e5 Simplify API a bit 2023-07-30 19:49:40 +05:30
Kovid Goyal
2801b934fb Split up API into two structs one for diffing and one for patching 2023-07-30 19:49:40 +05:30
Kovid Goyal
a5c62da265 Dont use JSON for signature header 2023-07-30 19:49:39 +05:30
Kovid Goyal
c28f6a7bf4 Make CreateSignature byte oriented 2023-07-30 19:49:39 +05:30
Kovid Goyal
71a1050b9f Make loading of external signature data also streaming 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
Kovid Goyal
10362c3121 DRYer 2023-07-30 19:49:39 +05:30
Kovid Goyal
d4127229b6 More misc send fixes 2023-07-30 19:49:39 +05:30
Kovid Goyal
4341599ac3 Fix a couple of infinite loops 2023-07-30 19:49:39 +05:30
Kovid Goyal
eabebbc932 Fix incorrect remote file existence detection 2023-07-30 19:49:39 +05:30
Kovid Goyal
dee6210de5 Utility function to initialize struct based on default tags 2023-07-30 19:49:39 +05:30
Kovid Goyal
471263b778 Fix various println invocations since println does not add spaces between arguments 2023-07-30 19:49:39 +05:30
Kovid Goyal
38666f978b More work on porting transfer kitten 2023-07-30 19:49:39 +05:30
Kovid Goyal
2e8479a77c ... 2023-07-30 19:49:39 +05:30
Kovid Goyal
d01da39dfb Speed up base64 decode even more 2023-07-30 19:49:39 +05:30
Kovid Goyal
aa86b98eee Use encryption for bypass 2023-07-30 19:49:39 +05:30
Kovid Goyal
6d1dd50546 Fix encode_bypass 2023-07-30 19:49:39 +05:30