Commit Briefs

903d5f7475 Thomas Adam

portable: include utf8d.h in dist tarball (tags/0.98.1)

Make sure we include this header in the release tarball


27f33c456e Thomas Adam

portable: set next version


0eb6f93719 Thomas Adam

portable: release 0.98 (tags/0.98)


d4810a9d16 Thomas Adam

portable: remove portably-defined headers

These are looked for portably.


2632ba010c Thomas Adam

portable: gotd libexec logging

Include the logging functionality from gotd for the helpers.



c24e2d2e71 Thomas Adam

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


07ec47fcdf Thomas Adam

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@


a80e9be6e4 Thomas Adam

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.


3468ff0e6f Thomas Adam

bump version number


7094f37a8a Thomas Adam

CHANGES for 0.98


28ad404e28 Thomas Adam

sync dist file list


ec05a5dec4 Thomas Adam

extend test_patch_empty_file() test coverage

Check what happens when patches attempt to edit or delete empty files.


13b170bf44 Thomas Adam

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


c50aaf5dd0 Thomas Adam

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.


507e51543a Thomas Adam

Use got_pkt_readlen() to parse pkt-lens.


6d1e5fdc3f Thomas Adam

rename a function to avoid gramatical ambiguity




a6dfa7b2fc Thomas Adam

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)


06dc360747 Thomas Adam

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@


a1aebf7f29 Thomas Adam

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



564cf6648a Thomas Adam

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@


520dc23bbf Thomas Adam

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