lib/object_parse.c

Branch


Log

Author Commit Date CI Message
Stefan Sperling 9985f404 2022-05-19T06:40:09 parse tree entries into an array instead of a pathlist Avoids some extra malloc/free in a performance-critical path. ok op@
Stefan Sperling d7b5a0e8 2022-04-20T14:00:12 inline struct got_object_id in struct got_object_qid Saves us from doing a malloc/free call for every item on the list. ok op@
Stefan Sperling c7b17232 2022-01-28T18:07:47 fix loose object file header parser for zero-length headers ok millert tracey
Stefan Sperling 64a8571e 2022-01-07T23:32:27 map raw object files into memory while packing if possible
Stefan Sperling 94dac27c 2021-10-15T09:24:56 raw object blocksize and read buffer were unused; remove them
Stefan Sperling d3c116bf 2021-10-15T09:10:14 cache raw objects in order to speed up gotadmin pack
Stefan Sperling f8b19efd 2021-10-13T11:09:15 use RB_TREE instead of STAILQ to manage packindex bloom filters; much faster
Christian Weisgerber 31e61ec1 2021-09-28T19:21:33 match the unsigned char type used by the zlib interface ok stsp
Stefan Sperling b9c41b54 2021-08-03T08:08:03 use less memory allocations when formatting log messages Rewrite got_object_commit_get_logmsg() such that only one memory allocation is made when creating a pretty version of a log message. ok naddy@
Christian Weisgerber dbdddfee 2021-06-23T20:48:35 switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp
Stefan Sperling 74a2356f 2021-06-18T13:34:45 add a user data pointer to struct got_object_qid This will be required by a future 'gotadmin pack' command.
Stefan Sperling 9dbd8627 2021-02-04T11:11:25 tolerate tag objects which lack tagger timestamp information Fixes interop with repos such as git://github.com/steveicarus/iverilog.git Found by + ok naddy
Stefan Sperling 5a8b373c 2020-12-18T15:55:18 fix parsing of tag objects which lack a tag message This problem could be triggered with the u-boot repository: $ git clone --bare https://gitlab.denx.de/u-boot/u-boot.git $ got log -r u-boot.git got-read-pack: bad object data got: bad object data $
Stefan Sperling 16aeacf7 2020-11-26T12:54:19 use size_t for loop indices to avoid signedness warnings; from emaste@freebsd
Christian Weisgerber 23c57b28 2020-09-11T19:44:18 Stop including <sys/syslimits.h> directly. POSIX says the limits defined there are available from <limits.h>, which almost all affected source files already included anyway. ok millert stsp
Stefan Sperling ef744db3 2020-08-27T10:18:21 in got_object_commit_get_logmsg(), handle log messages which lack '\n' found by tracey's scan-build
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 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 b87b4170 2020-01-06T14:10:36 rename to parsed_tree_entries_free for clarity (don't use with got_tree_object)
Stefan Sperling b64b1f95 2020-01-06T13:10:00 plug a memory leak; parsed tree entries were not freed
Stefan Sperling 56e0773d 2019-11-28T02:32:58 convert tree entries from SIMPLEQ to an array
Stefan Sperling 5f25cc85 2019-11-26T22:43:12 remove obj->path_packfile which is unused nowadays; saves a few free() calls
Stefan Sperling 3022d272 2019-11-14T17:12:32 reduce the amount of memcpy() and strdup() while parsing tree entries
Stefan Sperling 42c69117 2019-11-10T15:51:05 stop storing decompressed delta data in struct got_delta; fetch it on demand
Stefan Sperling db1d3576 2019-10-04T13:13:22 handle empty trees during 'import' and 'checkout'; spotted by sthen@
Sebastien Marie 13555e04 2019-09-28T12:26:47 Show only whitelisted commit headers in 'got log' Generic way to deal with gpgsig header or extra headers added by some tools. All headers still available via 'got cat' ok stsp@
Stefan Sperling 4793d91b 2019-09-22T15:16:33 have got_object_parse_* check for zero-length input
Stefan Sperling 24ea5512 2019-08-22T14:26:00 make 'got cat' show raw log messages, i.e. leaving PGP sigs intact
Stefan Sperling 09867e48 2019-08-13T17:01:23 properly parse timestamps in commit objects as UTC (patch by Hiltjo Posthuma)
Stefan Sperling 5943eee2 2019-08-13T16:58:34 strip Git GPG signatures from log messages
Stefan Sperling ca0d469c 2019-08-13T10:20:42 don't forget to do refcounting in got_object_tag_close()
Stefan Sperling a0de39f3 2019-08-09T11:56:24 fix build on OpenBSD/sparc64 (gcc)
Stefan Sperling 00eb6a1f 2019-07-15T15:20:45 get rid of an inline implementation of got_object_qid_free()
Stefan Sperling 2256993b 2019-07-15T12:50:29 avoid dependency on delta.o in binaries which don't need it
Stefan Sperling dd88155e 2019-06-29T23:26:36 disambiguate abbreviated object IDs based on object type
Stefan Sperling 638f9024 2019-05-13T12:40:57 rename got_error_prefix_errno() to got_error_from_errno()
joshua stein 656b1f76 2019-05-11T14:26:12 while (1) -> for (;;)
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 ed175427 2019-05-07T19:53:44 more progress on generating new tree entries
Stefan Sperling 8914529d 2019-04-13T18:55:07 make parse_tree_entry() require a mode field
Stefan Sperling fae40e36 2019-04-13T18:47:15 bump copyright year in object_parse.c
Stefan Sperling dedbbd9d 2019-04-13T18:43:31 fix more unbound string searches in object_parse.c
Stefan Sperling c7c59d3c 2019-04-13T18:38:29 remove unused variable in got_object_parse_header()
Stefan Sperling 9ef4ac16 2019-04-13T18:35:06 don't use unbound strlen() while parsing objects
Stefan Sperling 23bc48a9 2019-03-19T12:55:28 rename got_zstream_* to got_inflate_*
Stefan Sperling e02fc99f 2019-03-19T12:40:44 move declaration of object labels to got_lib_object.h
Stefan Sperling ff2a4428 2019-03-19T12:34:28 rename "object tags" to "labels" to avoid confusion with tag objects
Stefan Sperling f5d3d7af 2019-02-05T15:19:24 use path lists to sort dirent, tree object, and file index entries
Stefan Sperling e0e55b50 2019-02-01T22:46:32 Support tags in Linux git repo which do not carry name of tagger.
Stefan Sperling 5e0b25c4 2018-12-24T14:37:19 wrap another long line
Stefan Sperling 6e72e6a3 2018-12-23T23:21:35 there's no point in embedding the object header in commits
Stefan Sperling 1785f84a 2018-12-23T23:15:42 eliminate got_object_open() round-trip when opening commits
Stefan Sperling 15a94983 2018-12-23T14:48:47 remove struct got_object from public library API
Stefan Sperling 45d799e2 2018-12-23T12:10:27 make commit objects opaque in the library's API
Stefan Sperling f4a881ce 2018-11-17T16:04:05 more support for tag objects; new code is not yet reachable
Stefan Sperling 13f977b4 2018-11-17T13:14:21 Set output to NULL if got_object_parse_tree() fails.
Stefan Sperling 6f3efa55 2018-11-16T09:49:09 remove unused declarations
Stefan Sperling 68bf1b1e 2018-11-07T08:43:13 unnecessary repeated strlen() in parse_tree_entry()
Stefan Sperling f054b67a 2018-11-05T22:28:03 remove object_idcache; use object_idset instead
Stefan Sperling 6dfaee02 2018-11-05T19:09:07 initialize te->mode in parse_tree_entry()
Stefan Sperling acf0c7c6 2018-11-05T18:56:36 no need to zero commit's tree ID during allocation
Stefan Sperling 5df4932d 2018-11-05T18:25:15 improve handling of struct got_object_qid allocations
Stefan Sperling 32ac459c 2018-11-05T18:12:25 there's no need to zero tree entries during allocation
Stefan Sperling ccb26ccd 2018-11-05T16:16:35 avoid a call to mktime() in commit graph's add_node()
Stefan Sperling 41fa1437 2018-11-05T15:30:15 back out mini-commits; no significant performance difference
Stefan Sperling 05e1230b 2018-11-05T12:42:03 rename got_commit_object_mini to got_mini_commit_object
Stefan Sperling e32baab7 2018-11-05T12:39:49 add an object cache for mini commits
Stefan Sperling 7762fe12 2018-11-05T11:46:30 add a mini-commit object for use by commit graph
Stefan Sperling 77880158 2018-11-04T13:09:52 move code not used by libexec tools out of object_parse.c
Stefan Sperling 106807b4 2018-09-15T20:57:10 make object caching actually work in got-read-pack
Stefan Sperling 2ff12563 2018-09-15T12:39:48 fix 'make PROFILE=1' build
Stefan Sperling 3840f4c9 2018-09-13T00:06:12 fix "rpath" pledge violation in got-read-pack
Stefan Sperling 6bef87be 2018-09-11T11:23:44 move object cache out of repository.c to its own file
Stefan Sperling 55da3778 2018-09-10T18:39:31 read packed blobs with privsep
Stefan Sperling e7885405 2018-09-10T17:26:06 read packed trees with privsep
Stefan Sperling cfd633c2 2018-09-10T17:07:59 read packed commits with privsep
Stefan Sperling 876c234b 2018-09-10T12:30:47 start reading pack files with privsep; still WIP
Stefan Sperling 3cab8b4d 2018-09-08T17:55:19 put repository path into privsep children's argv
Stefan Sperling 3516b818 2018-09-08T17:42:23 init ibuf only once for the lifetime of a privsep child
Stefan Sperling ad242220 2018-09-08T16:40:28 implement fork+exec (and by the way, fix the build...)
Stefan Sperling 03fa71c8 2018-09-06T17:42:46 move some more functions from object.c to object_parse.c
Stefan Sperling a440fac0 2018-09-06T17:33:13 move object parsing code into a separate file