Commit Graph

1068 Commits

Author SHA1 Message Date
Kovid Goyal
2a5a89e01c Speed up write performance to loop
20x speed for large numbers of queued writes by avoiding pinging between
the writer and main goroutines
2023-08-05 13:53:32 +05:30
Kovid Goyal
a3369465dc Remove unused code 2023-08-05 10:11:15 +05:30
Kovid Goyal
ec77d051df Replace another deprecated function 2023-08-04 23:02:55 +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
ffd997c338 Detect prompt lines in code blocks 2023-07-30 19:49:47 +05:30
Kovid Goyal
ce593dbb5f lp.Println() should act live fmt.Println()
also use a dedicated error type for signalining perm denied
2023-07-30 19:49:47 +05:30
Kovid Goyal
a55a918d4f Improve stack trace formatting 2023-07-30 19:49:47 +05:30
Kovid Goyal
2cae0ab695 Dont wait for cancel response when user denies permission 2023-07-30 19:49:46 +05:30
Kovid Goyal
ca485cc0f7 Make getting function name a utility function 2023-07-30 19:49:46 +05:30
Kovid Goyal
5881041fcd Ensure shortduration is no more than 8 chars 2023-07-30 19:49:46 +05:30
Kovid Goyal
b60d15fe75 Make short duration formatter re-useable 2023-07-30 19:49:46 +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
b3819d3226 Ensure output.Write is not called outside of the stream decompressor function 2023-07-30 19:49:45 +05:30
Kovid Goyal
301f309444 ... 2023-07-30 19:49:45 +05:30
Kovid Goyal
42c9f30618 Change receive code to use new streaming decomp infra 2023-07-30 19:49:45 +05:30
Kovid Goyal
b4d8eaa0fe ... 2023-07-30 19:49:45 +05:30
Kovid Goyal
a210e0c977 Simplify stream decompressor 2023-07-30 19:49:45 +05:30
Kovid Goyal
c8f35019f0 Fix debugprintln to forwarded stdio implementation 2023-07-30 19:49:45 +05:30
Kovid Goyal
d46590c2e6 Fix fd leak in debugprintln 2023-07-30 19:49:45 +05:30
Kovid Goyal
6b5520f07a More work on porting the receive kitten 2023-07-30 19:49:45 +05:30
Kovid Goyal
3d5fdad029 More work on porting receive kitten 2023-07-30 19:49:44 +05:30
Kovid Goyal
73ee5b32c9 A better way to wrap go's zlib into a streaming decompressor 2023-07-30 19:49:44 +05:30
Kovid Goyal
59b47a3a8f A facility to easily have child programs print to kitty stdout
Works better than the kitty-print DCS escape code as that tends to get
interleaved with other writes to the tty since the loop infrastructure
writes in a separate I/O thread.
2023-07-30 19:49:44 +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
c84874ca8d Add tests for the xxhash based hashers 2023-07-30 19:49:42 +05:30
Kovid Goyal
08e3dbb8e7 Patcher signature generation implemented 2023-07-30 19:49:42 +05:30
Kovid Goyal
fabb6bd8cc Start work on porting Go rsync implementation to C 2023-07-30 19:49:42 +05:30
Kovid Goyal
85df15bfc3 Add a test that the last op is hash 2023-07-30 19:49:42 +05:30
Kovid Goyal
f64c4f34ac Also use io.Writer for signature iterator 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
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