lib/pack.c


Log

Author Commit Date CI Message
Stefan Sperling d582f26c 2020-03-18T16:13:48 write large objects to disk when resolving deltas; raise in-mem delta threshold
Stefan Sperling 4788f1ce 2020-03-18T16:13:46 extract large objects to a temporary file in got-index-pack
Stefan Sperling 2e5a6fad 2020-03-18T16:13:44 add mmap support to got-index-pack
Stefan Sperling 55fdd257 2020-03-18T16:13:43 do not buffer more data than necessary in got_inflate_to_mem_fd()
Stefan Sperling 1e87a3c3 2020-03-18T16:13:42 avoid re-reading the entirety of an object's data to calculate the CRC
Stefan Sperling 3ab5e33c 2020-03-18T16:13:41 add optional 'consumed' output parameter to got_inflate_to_mem_fd()
Stefan Sperling 668a20f6 2020-03-18T16:13:41 rewritten got-index-pack; sorry about the monster commit
Stefan Sperling afbfc7fb 2020-03-15T16:15:58 remove unneeded memory allocations from ref delta parser which were leaking
Stefan Sperling ca6e02ac 2020-01-07T11:14:52 add support for first-parent history traversal to got-read-pack
Stefan Sperling 5aa81393 2020-01-06T19:38:23 add copyright year for files already touched in 2020
Stefan Sperling e40b19ed 2020-01-06T16:16:51 fix reading ref deltas with GOT_PACK_NO_MMAP builds
Stefan Sperling 5f25cc85 2019-11-26T22:43:12 remove obj->path_packfile which is unused nowadays; saves a few free() calls
Stefan Sperling ab2f42e7 2019-11-10T15:51:05 cache delta data buffers in an LRU cache
Stefan Sperling 42c69117 2019-11-10T15:51:05 stop storing decompressed delta data in struct got_delta; fetch it on demand
Stefan Sperling 6dd1ece6 2019-11-10T11:32:03 when an object id string is bad, include the bad string in the error message
Stefan Sperling 5e6be232 2019-11-08T21:55:41 fix reading pack files larger than 2GB; ok tb@; problem found by mpi@
Stefan Sperling c6368c2e 2019-10-11T09:10:54 properly handle read errors in got_packidx_init_hdr (found by jj@ scan-build)
Stefan Sperling b1317e77 2019-09-22T10:51:10 plug error leak in got_packidx_init_hdr(); found by jj@ with scan-build
Hiltjo Posthuma 6772cf22 2019-08-27T19:01:04 got_packidx_open: free packidx object when open(2) fails
Stefan Sperling de30857e 2019-08-23T16:40:51 fix reading pack index files with large offsets (patch by Hiltjo Posthuma)
Stefan Sperling a0de39f3 2019-08-09T11:56:24 fix build on OpenBSD/sparc64 (gcc)
Stefan Sperling 0adc7bcc 2019-06-29T23:28:23 call got_object_id_queue_free() instead of implementing it inline
Stefan Sperling dd88155e 2019-06-29T23:26:36 disambiguate abbreviated object IDs based on object type
Stefan Sperling 4277420a 2019-06-29T12:58:30 speed up matching of abbreviated commit IDs in pack files
Stefan Sperling e09a504c 2019-06-28T20:59:14 introduce support for abbreviated object IDs
Stefan Sperling ff563a3d 2019-05-23T21:04:23 replace got_pack_get_packfile_size() with simple fstat()
Stefan Sperling 57377f07 2019-05-23T14:50:57 stat .idx file to determine its size, not the .pack file
Stefan Sperling 1a35c1bc 2019-05-22T11:48:27 fix double-frees in error path when resolving deltas fails
Stefan Sperling 638f9024 2019-05-13T12:40:57 rename got_error_prefix_errno() to got_error_from_errno()
joshua stein 230a42bd 2019-05-11T13:04:38 got_error_from_errno -> got_error_prefix_errno also add got_error_prefix_errno2 and got_error_prefix_errno3 which should hopefully all be merged into a single function with variadic args (but can't alloc mem)
Stefan Sperling 324d37e7 2019-05-11T09:14:30 make got path APIs available to library consumers
Stefan Sperling 0dd5271b 2019-05-10T19:57:25 plug fd leak in got_pack_stop_privsep_child()
Stefan Sperling a5b57ccf 2019-04-11T13:37:50 omit unused mode argument to open(2)
Stefan Sperling 3a11398b 2019-02-21T14:15:33 more specific mmap(2) failure checks
Stefan Sperling 5ea74b5a 2019-02-11T14:20:09 don't close input files in dump_delta_chain_to_file(); caller does it
Stefan Sperling 3a6ce05a 2019-02-11T12:32:53 check for errors from close(2)
Stefan Sperling fb43ecf1 2019-02-11T11:59:09 check for errors from fclose()
Stefan Sperling 5d56da81 2019-01-13T17:15:53 happy new copyright year
Stefan Sperling 85a703fa 2019-01-13T17:04:03 got_pack_get_object_size() -> got_pack_get_max_delta_object_size()
Stefan Sperling ac544f8c 2019-01-13T15:58:39 pass smallish blobs directly via imsg buffer
Stefan Sperling 15a94983 2018-12-23T14:48:47 remove struct got_object from public library API
Stefan Sperling 96732e0b 2018-11-11T15:05:43 fix error handling in got_pack_stop_privsep_child()
Stefan Sperling 34fca9c3 2018-11-11T11:10:11 bounds checks before memcpy in got_delta_apply_in_mem()
Stefan Sperling 106807b4 2018-09-15T20:57:10 make object caching actually work in got-read-pack
Stefan Sperling faaa1c0f 2018-09-15T20:05:47 handle errors from read(2) better while reading pack files
Stefan Sperling 3840f4c9 2018-09-13T00:06:12 fix "rpath" pledge violation in got-read-pack
Stefan Sperling c59b3346 2018-09-11T12:29:46 stop sending deltas in imsg; cache deltas in got-read-pack
Stefan Sperling 876c234b 2018-09-10T12:30:47 start reading pack files with privsep; still WIP
Stefan Sperling 40cf7208 2018-09-09T17:26:34 remove unused includes from pack.c
Stefan Sperling 7e212e3d 2018-09-09T17:24:46 make got_packfile_extract_object_to_mem() accept pack instead of repo
Stefan Sperling 24140570 2018-09-09T17:19:27 make got_packfile_extract_object() accept a pack instead of a repo
Stefan Sperling 2090a03d 2018-09-09T17:00:33 make got_packfile_open_object() accept a pack instead of a repo
Stefan Sperling 1510f469 2018-09-09T16:33:32 move pack caching code from pack.c to repository.c
Stefan Sperling 35c73765 2018-09-09T16:14:11 make open_packed_object() expect a pack instead of a repo
Stefan Sperling a98c62b1 2018-09-09T16:09:01 remove unused parameter of open_delta_object()
Stefan Sperling 2ce68b2f 2018-09-09T16:07:11 don't redundantly open pack file in dump_delta_chain_to_file()
Stefan Sperling 48095039 2018-09-09T16:03:39 don't open pack redundantly in dump_delta_chain_to_mem()
Stefan Sperling c8ecd499 2018-09-09T16:00:41 remove unused parameter from functions resolving packfile deltas
Stefan Sperling 4fb0d740 2018-09-09T15:57:26 remove unused parameter of open_packfile()
Stefan Sperling 4a9c75d9 2018-09-09T15:56:38 remove unused parameter of get_packfile_path()
Stefan Sperling 3413160a 2018-09-09T15:55:40 remove unused parameter of get_object_idx()
Stefan Sperling 817c5a18 2018-09-09T15:50:02 move packidx header initialization to a separate function
Stefan Sperling c336f889 2018-07-23T10:53:49 don't store copies of packfile paths in each delta
Stefan Sperling 673702af 2018-07-23T10:37:54 fix leak in dump_delta_chain_to_file()
Stefan Sperling ab3ad429 2018-07-23T10:34:33 fix leaks in resolve_offset_delta()
Stefan Sperling 3efa19e7 2018-07-13T10:51:34 fix more memleaks
Stefan Sperling e8f89a81 2018-07-13T10:38:31 only unmap map if non-NULL in got_pack_close()
Stefan Sperling 45202a8f 2018-07-11T20:57:44 fix reading ref deltas
Stefan Sperling 63581804 2018-07-09T22:23:00 rename zbuf to inflate
Stefan Sperling fc79a48d 2018-07-09T17:00:51 add a compile time switch to read pack index with read(2)
Stefan Sperling af9b7fee 2018-07-09T16:32:39 add compile-time switch which disables mmap for pack files
Stefan Sperling 57363308 2018-07-09T16:20:48 fall back to read() as intended if mapping packfile fails
Stefan Sperling d7464085 2018-07-09T15:30:16 read pack files with mmap
Stefan Sperling 0cb74cf4 2018-07-08T19:08:12 don't verify pack index SHA1 upon regular access
Stefan Sperling b0e2201a 2018-06-22T21:15:24 simplify more code which assumed deltas could span mulitple packs
Stefan Sperling 49847196 2018-06-22T20:56:40 wrap overlong lines
Stefan Sperling 652b2703 2018-06-22T20:43:22 only search one pack file while resolving deltas
Stefan Sperling 57b35b75 2018-06-22T20:12:26 access pack index files with mmap()
Stefan Sperling 49c99f91 2018-06-22T20:09:05 don't needlessly copy packidx when caching it
Stefan Sperling 40aeb19c 2018-06-22T13:03:45 use binary search to find objects in pack index
Stefan Sperling 56cca8e5 2018-06-04T20:54:13 use macro instead of literal ".pack"
Stefan Sperling 72fb0363 2018-06-04T20:53:30 use macro instead of literal ".idx"
Stefan Sperling d475dd0d 2018-06-04T20:52:43 use strlcpy instead of strncpy
Stefan Sperling 4738e5f4 2018-06-04T20:46:09 remove unnecessary forward declaration
Stefan Sperling c8262310 2018-06-04T18:11:39 use local variable to save screen estate in got_packidx_open()
Stefan Sperling 0b48ab23 2018-06-04T18:06:47 wrap overlong lines
Stefan Sperling 6fd11751 2018-06-04T18:02:06 turns out on-disk path of pack file may not match its hash Fixes reading a repo with a pack idx and file dated June 2011, where the filename does not contain the actual packfile SHA1.
Stefan Sperling f5feadcc 2018-06-04T16:22:01 fix bogus free() in error path of cache_pack()
Stefan Sperling 511a516b 2018-05-19T16:57:12 move got_opentmp* functions to public API; used from tog
Stefan Sperling 0c048b15 2018-04-27T11:25:46 offsets in pack files should not make us seek beyond EOF
Stefan Sperling 8b2180d4 2018-04-26T19:47:10 store fd instead of FILE in struct got_pack to prepare privsep
Stefan Sperling 2178c42e 2018-04-22T14:51:49 read object headers with privsep
Stefan Sperling 5b7e13a7 2018-04-02T12:46:33 put a limit on delta chain recursion
Stefan Sperling dfb54902 2018-04-02T11:45:31 wrap long lines
Stefan Sperling 97128b57 2018-04-02T10:09:22 in get_packfile_size(), get errno from stat() and init output early
Stefan Sperling 1c7e24f1 2018-04-02T10:05:35 avoid unnecessary string copies and allocations in get_packfile_size()
Stefan Sperling 4810de4a 2018-04-01T23:16:35 we have implemented all object types, switch to better error code
Stefan Sperling 16dcbf91 2018-04-01T15:59:36 remove debug code accidentally committed
Stefan Sperling 72eb3431 2018-04-01T15:57:43 look up deltas in the correct pack file
Stefan Sperling 040bf4a1 2018-04-01T14:43:53 stop using fmemopen(); that code path didn't work correctly