libexec


Log

Author Commit Date CI Message
Omar Polo e9ce266e 2022-03-07T22:26:08 add `got patch' command for applying unified diffs
Stefan Sperling bed00385 2022-02-23T12:29:32 apply time-based rate-limiting to got-send-pack upload progress output
Stefan Sperling dcb64fea 2022-02-23T12:24:25 apply time-based rate-limiting to got-fetch-pack download progress output
Stefan Sperling d0f1e2f1 2022-02-23T12:13:03 apply time-based rate-limiting to got-index-pack progress output
Stefan Sperling 67fd6849 2022-02-13T00:10:25 reuse existing deltas when creating pack files tested by thomas, naddy, and myself
Stefan Sperling db696021 2022-01-04T16:11:52 avoid the creation of new temporary files whenever a packed object is read This speeds up the creation of pack files by about 30%.
Stefan Sperling c0df5966 2021-12-31T09:33:01 wrap overlong lines
Stefan Sperling 8347f8e7 2021-10-15T17:17:52 plug memory leak in an error path of read_packed_object()
Stefan Sperling 07965a0d 2021-10-15T17:08:54 fix wrong function names in error messages from got-index-pack.c
Christian Weisgerber 0c82d267 2021-10-15T15:18:30 sync with OpenBSD parse.y Explicitly cast "char" to "unsigned char" when assigned to "int" to prevent sign extension from breaking comparions against EOF or passing invalid arguments to ctype functions.
Stefan Sperling e99d9267 2021-10-07T15:29:27 plug memory leaks in got-fetch-pack and got-send-pack ok naddy
Stefan Sperling dd088d95 2021-10-06T19:49:06 let 'got fetch' send all references to the server to avoid redundant downloads Problem reported by naddy. ok naddy
Christian Weisgerber 5d8cbca3 2021-09-29T19:53:08 pull in a type fix from the OpenBSD parse.y template Original commit message by deraadt: (unsigned) means (unsigned int) which on ptrdiff_t or size_t or other larger types really is a range reduction... Almost any cast to (unsigned) is a bug.
Christian Weisgerber 14af9299 2021-09-28T19:21:34 fix unsigned/signed char mismatch in parse.y ok stsp
Stefan Sperling 474b4982 2021-09-25T10:26:25 whitespace fix from Omar Polo
Stefan Sperling 030daac8 2021-09-25T10:26:13 fix some integers that had a slightly wrong type; patch by Omar Polo
Stefan Sperling 50127d69 2021-09-25T10:24:15 add 'static' qualifier to local functions in got-read-pack; patch by Omar Polo
Stefan Sperling fda3525e 2021-09-25T10:23:12 mark some function parameters as 'const', as they should be; patch by Omar Polo
Stefan Sperling 77d7d3bb 2021-09-05T20:39:50 de-duplicate a constant used by both 'got fetch' and 'got send' Both GOT_FETCH_PKTMAX and GOT_SEND_PKTMAX had the same value. Declare this value as GOT_PKT_MAX in got_lib_pkt.h instead.
Christian Weisgerber abc59930 2021-09-05T19:41:03 indentation fixes
Stefan Sperling bd3d9e54 2021-09-05T14:21:02 move more code used by got-send-pack and got-fetch-pack to a common file Move functions and data structures which implement Git protocol features required for fetching and sending pack files to new files lib/gitproto.c and lib/got_lib_gitproto.h. This code was duplicated in got-fetch-pack and got-send-pack. No functional change.
Stefan Sperling f024663d 2021-09-05T13:50:39 move pkt code used by got-fetch-pack and got-send-pack to a common file The Git protocol uses a simple packet framing format. The got-fetch-pack and got-send-pack programs contained identical copies of functions to support this format. Move related functions to new file lib/pkt.c and link both programs against this common implementation. No functional change.
Stefan Sperling c2d7bc3f 2021-08-31T19:11:16 remove superfluous strdup(3) from parse.y files; Patch by Martin Vahlensieck
Christian Weisgerber 93f8a337 2021-08-30T16:34:04 tweak implementation of separate send {} and fetch {} conf blocks Tweak man page. Factor out repeated code in if/else branches in send_gotconfig_remotes(). ok stsp@
Tracey Emery f08eaca0 2021-08-30T15:59:11 reintroduce allowing empty fetch and send blocks with correct grammar. ok stsp@
Stefan Sperling 6480c871 2021-08-30T15:51:23 provide separate send {} and fetch {} configuration blocks in got.conf Feature requested by naddy. ok naddy, who also suggested some tweaks that will arrive shortly
Stefan Sperling 92952c0e 2021-08-30T12:33:22 stop allowing empty send {} or fetch {} blocks; yacc complained about grammar yacc has been complaining about "shift/reduce conflicts" since commit 16c4be8c1cab9456f9dd0468c27f8ab73235737e Revert that change for now. Not sure how it can be done properly. In any case, allowing empty config blocks is not very important.
Stefan Sperling 7c84ef07 2021-08-29T19:50:57 reject port number zero
Stefan Sperling f1cacac7 2021-08-29T17:07:49 validate non-optional settings in send {} and fetch {} config blocks.
Stefan Sperling aaf30ee7 2021-08-29T17:07:24 rename variables to avoid too much repetition of the term 'repo'
Stefan Sperling 27b75514 2021-08-28T10:46:51 do not send a pack file when 'got send' is only deleting branches The git protocol spec says the client MUST NOT send a pack file if the only command used is 'delete'. Fixes 'got send -d' against Github's server which closed the session upon receiving the empty pack file we sent. This problem wasn't caught by regression tests since git-daemon does accept an empty pack file. Problem reported by jrick.
Stefan Sperling 2ae2891d 2021-08-28T10:23:24 remove github capabilities workaround from got-send-pack, it is not needed This workaround was inherited from git9, which claims that Github did not send capabilities. Protocol traces show that Github's server does in fact advertise its capabilities. Git protocol capabilities are hidden behind a NUL byte in the middle of the first refline sent by the server. This makes them easy to miss when treating a refline as a C string. I guess this is why Ori concluded that Github didn't send any capabilities. Or perhaps Github has been fixed since.
Tracey Emery 26ac815f 2021-08-27T19:48:23 remove unused name variables, noticed by naddy@
Tracey Emery 0ff2bf46 2021-08-27T19:37:15 clean up weird grammar. not sure what i was thinking.
Tracey Emery 16c4be8c 2021-08-27T19:32:56 fix to allow empty send and fetch blocks, ok stsp@
Tracey Emery cfd92333 2021-08-27T16:58:26 add send and fetch plumbing to parser for got.conf This is the beginning of support for naddy's suggestion to break this out similar to git. More code to come from stsp. ok stsp@
Stefan Sperling f8a36e22 2021-08-26T12:30:42 add 'got send' command for sending changes to remote repositories Known to work against git-daemon and github Git server implementations. Tests by abieber, naddy, jrick, and myself. Man page additions reviewed by Lucas.
Stefan Sperling 8991a328 2021-08-26T07:08:48 add a missing bounds-check in got-fetch-pack when parsing server response The tokenize_refline() function could end up reading past the end of the buffer if the refline is not terminated with whitespace or \0.
Stefan Sperling a90356f7 2021-08-26T07:01:34 prevent NULL deref in got-fetch-pack if server does not announce capabilities The my_capabilities pointer may remain NULL. Check for NULL before use.
Stefan Sperling 14d2b281 2021-08-25T21:40:38 fix the error message shown when the server sends a bad ref line Exposed by trying to run got clone -l against shithub.us over git:// found by abieber@
Stefan Sperling 9ca26ac3 2021-08-06T13:31:40 style fix: avoid comparison of pointer variable against 0 in got-fetch-pack
Stefan Sperling c3564dfa 2021-07-15T07:48:40 don't scan pack index offsets for large values if pack file is < 2GB This saves an iteration over the entire h->offsets array when opening a pack index which should not contain large offsets in the first place. ok millert@
Stefan Sperling d5c81d44 2021-07-08T11:03:29 verify object ID checksums while loose objects are being accessed
Stefan Sperling 12f2167a 2021-07-04T16:24:52 add checksum parameters to got_inflate functions which did not provide them yet
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 40e3cb72 2021-06-22T19:01:44 fix raw object size sent by got-read-pack
Stefan Sperling a8591711 2021-06-18T13:52:26 raw object size should not include the length of the object's header This way, the size of a raw object is the same regardless of whether the object was found in a loose object file or in a pack file.
Stefan Sperling 282f42e5 2021-06-05T09:51:24 remove stray debug print which was accidentally committed
Stefan Sperling e5ad7365 2021-05-20T09:51:59 fix file descriptor leak when got-read-object returns a raw object
Stefan Sperling 59d1e4a0 2021-03-10T22:49:22 implement raw object data access; this will be required for packing
Stefan Sperling 08578a35 2021-01-22T11:05:05 make close(2) failure checks consistent; check 'close() == -1' everywhere ok millert, naddy
Stefan Sperling 56b63ca4 2021-01-22T11:04:47 make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy
Stefan Sperling 99495ddb 2021-01-10T23:48:51 add a 'reference' directive to remote repositories in got.conf(5) Make use of this in 'got clone' to persist -R option arguments given on the command line in the cloned repository's got.conf(5) file.
Stefan Sperling 0c8b29c5 2021-01-05T17:22:14 add a 'fetch-all-branches' configuration setting to got.conf(5) Set fetch-all-branches in the got.conf(5) file created by 'got clone -a' in order to make a future 'got fetch' act like 'got fetch -a' by default.
Stefan Sperling 98f64f14 2021-01-05T17:17:58 work around spurious ACK responses from git servers in got-fetch-pack The Git server can apparently send duplicate ACK responses even though we do not enable the multi_ack capability. According to the Git protocol docs the server should only send ACKs after receiving 'done' from the client if multi_ack has been enabled. However, a duplicate ACK response can be triggered by running 'got fetch -a' in our fetch_update_tag test. This resulted in the following error: got-fetch-pack: unknown side-band received from server got: bad packet received
Stefan Sperling 85f4e1e7 2020-12-17T16:17:51 fix the type of variable 'idx' in update_packidx()
Stefan Sperling 6059809a 2020-12-17T15:54:47 use size_t for loop indices to avoid signedness warnings; by emaste@freebsd Same change as 16aeacf7088d, for subdirectories other than lib/
Stefan Sperling 20b7abb3 2020-10-22T20:36:23 detect unknown repository format extensions (such as sha256 format) ok millert
Christian Weisgerber 62d463ca 2020-10-20T22:43:59 indentation fixes
Christian Weisgerber 1367695b 2020-09-26T20:53:13 fix potential type mismatches between format specifiers and arguments Cast printf arguments of type time_t and off_t to long long to match the %lld format specifier on platforms where this might not be the case. In parse.y, switch the number variable to long long because all its interactions are with that type anyway. ok millert stsp
Stefan Sperling b8adfa55 2020-09-25T21:35:10 add "branch" keyword to got.conf which specifies a list of branches to fetch ok tracey
Stefan Sperling 5e082626 2020-09-24T10:51:21 remove redundant leading slashes from repository path parsed from got.conf
Stefan Sperling 6c13dcd2 2020-09-18T18:24:09 send gitconfig imsg string values the same way as gotconfig ones are sent
Stefan Sperling be96c417 2020-09-17T11:51:59 fix got.conf overriding GOT_AUTHOR even if no author is set in got.conf
Christian Weisgerber 8de9818a 2020-09-14T20:12:18 remove unused #includes from the new got-read-gotconfig/parse.y ok tracey
Christian Weisgerber e12e0e21 2020-09-14T17:53:41 do not rely on <zlib.h> to pull in <unistd.h>
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 53dfa00d 2020-09-10T19:54:33 initialize variable in got-read-gotconfig to fix SIGBUS in free(3) on sparc64
Stefan Sperling 3168e5da 2020-09-10T00:10:55 zap trailing tabs
Stefan Sperling 257add31 2020-09-09T23:57:40 add got.conf(5) configuration file ok tracey
Christian Weisgerber 78fb0967 2020-09-09T21:41:22 use the POSIX standard endian functions and explicitly include <endian.h> ok stsp
Christian Weisgerber 81a12da5 2020-09-09T19:35:32 do not rely on <zlib.h> to pull in <unistd.h> ok stsp
Christian Weisgerber 631179de 2020-07-31T14:10:44 Fix missing block grouping. ok tracey stsp
Stefan Sperling 00927983 2020-04-19T09:11:37 remove got_packidx_get_object_idx_sha1(); it is not actually needed
Stefan Sperling ded8fbb8 2020-04-19T08:57:07 include the relevant object ID in NO_OBJ error messages where possible
Stefan Sperling 3abebdc2 2020-03-24T15:24:08 make got-index-pack check the expected pack checksum passed from main process
Stefan Sperling 6ad68bce 2020-03-24T15:15:51 make got-index-pack compute and verify the pack file's SHA1 checksum
Stefan Sperling 1d72a2a0 2020-03-24T14:08:03 represent packfile hash as byte array in the privsep layer, not as object ID
Stefan Sperling dc671e91 2020-03-24T12:07:58 compute pack file's checksum during download and check it in got-fetch-pack Compared to the previous version committed in 520a0c97 this code should compute the checksum correctly for any amount of pack file data bytes read from the socket at a time.
Stefan Sperling 729743d1 2020-03-23T21:34:06 revert 520a0c97f8081e4531fc9c88cda705a92afbddaf for now due to possible bug
Stefan Sperling 520a0c97 2020-03-23T21:08:17 compute pack file's checksum during download and check it in got-fetch-pack
Stefan Sperling e70bf110 2020-03-22T17:20:18 move functions from privsep.c to the helpers which use them where possible
Stefan Sperling 0e4002ca 2020-03-21T21:49:13 add support for fetching arbitrary references to 'got clone' and 'got fetch'
Stefan Sperling 2690194b 2020-03-21T18:17:12 remove GOT_FETCH_DEBUG and toggle fetch debug output with -v option instead
Stefan Sperling 0bec957e 2020-03-21T17:28:23 close fetchfd when we're done in got-fetch-pack
Stefan Sperling 4515a796 2020-03-21T11:24:14 make 'clone -l' and 'fetch -l' list all references, regardless of namespace
Stefan Sperling 41b0de12 2020-03-21T10:18:15 add support for listing remote branches and tags to 'got clone' and 'got fetch'
Stefan Sperling 4ba14133 2020-03-20T20:23:18 add support for fetching specific branches to 'got clone' and 'got fetch'
Stefan Sperling 659e7fbd 2020-03-20T15:55:08 fetch only HEAD branch and tags by default; add -a option to fetch everything
Stefan Sperling 469dd726 2020-03-20T11:44:14 add support for repository mirrors to 'got clone' and 'got fetch'
Stefan Sperling 858b0dfb 2020-03-20T11:01:44 re-add chatty mode to got-fetch-pack; it will be useful to diagnose bugs
Stefan Sperling c20695fb 2020-03-20T10:11:43 fix off-by-one in writepkt() length parameter passed by fetch_pack()
Stefan Sperling 406106ee 2020-03-20T10:09:18 don't skip protocol capabilities advertisement if the first ref isn't wanted
Stefan Sperling f1c6967f 2020-03-19T22:43:44 fix chopped display of git-server's progress output
Stefan Sperling 3c912d14 2020-03-19T17:11:00 remove chattygit mode from got-fetch-pack
Stefan Sperling 7848a0e1 2020-03-19T16:57:27 implement 'got fetch'
Stefan Sperling d582f26c 2020-03-18T16:13:48 write large objects to disk when resolving deltas; raise in-mem delta threshold
Stefan Sperling 18d4da03 2020-03-18T16:13:46 tweak delta cache size in got-index-pack
Stefan Sperling 93bba072 2020-03-18T16:13:46 use qsort(3) instead of mergesort(3) to avoid a large spike in memory usage
Stefan Sperling 97684601 2020-03-18T16:13:46 write CRC info in one chunk rather than calling write(2) once per object