Commits


portable: release 0.98


portable: remove portably-defined headers These are looked for portably.


portable: gotd libexec logging Include the logging functionality from gotd for the helpers.


got-notify-http: use fatalx since errno is useless here


replace date, strftime %G-%m-%d with %F Use the more predictable %F, aka %Y-%m-%d, instead of %G-%m-%d. %G follows the definition of ISO-8601 week-based year, which is weird. In particular, 2024 is one of such years with weird behaviour: $ date -jf %Y-%m-%d +"%F %G-%m-%d" 2024-12-30 2024-12-30 2025-12-30 Diff from Lucas Gabriel Vuotto (thanks!); stsp agrees


got-notify-email: sort/remove includes we don't need getopt.h; getopt() is in unistd.h. also sort the headers while here. ok stsp@


make 'got fetch' work with URLs which refer to $HOME via a tilde ~ 'got clone' already happens to support such URLs via scp-style syntax: user@127.0.0.1:~/test.git While the clone operation succeded, subsequent fetch operations would raise an error: '/~/test.git' does not appear to be a git repository Make such URLs work when they are read back from got.conf, and also on the clone command line in canonical form: ssh://user@127.0.0.1/~/test.git Not adding a test case because I don't see an easy way to add test coverage for this without spilling test data into home directories or modifying ~/.ssh/ssh_config. Problem found by Jesper Wallin.


bump version number


CHANGES for 0.98


sync dist file list


extend test_patch_empty_file() test coverage Check what happens when patches attempt to edit or delete empty files.


got patch: fix applying on empty files if we've reached EOF without finding a match is fine if and only if the target file is empty, so add this exception. reported by naddy, ok stsp


got-notify-http: use a UNIX timestamp for the date Was suggested by Lucas some time ago. ok stsp@ with a tweak in the manual.


Use got_pkt_readlen() to parse pkt-lens.


rename a function to avoid gramatical ambiguity


ensure that test_unstage_directory calls test_done on success


make test_stage_directory pass and actually hook it up to regress runs


require -R option for staging or unstaging directory contents -R is needed on almost all other commands so this makes things consistent. Patch by Lorenz (xha)


make got-fetch-http pass "done\n" through rather than faking it Without this we exit the loop early and got-fetch-pack sees unexpected end-of-file on stdout trying to write its final "done\n" message. ok op@


show path of got-fetch-http in execv error message


make got-notify-email log warnings and errors to syslog


Move pkt-len parsing to a separate got_pkt_readlen() function so we can reuse it in other places like got-fetch-http later. ok op@ stsp@


got-notify-http: fix I/O with TLS tls_write() may return TLS_WANT_READ. In that case, we're stuck trying to read while we have the request still in the buffer. So, we have to retry bufio_write() regardless of the POLLIN/POLLOUT state. We'd need this only in the TLS case, but in practice it doesn't harm for the plaintext case too. In fact, we're either waiting to flush the request or we're only reading the server reply. ok stsp


sort includes in got-notify-http; suggested by op@


send got-http-notify error output to syslog ok op@