Commit graph

868 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