Commit Briefs

Stefan Sperling

significantly reduce the amount of code linked into gitwrapper

By moving got_serve_parse_command() from lib/serve.c into lib/dial.c as got_dial_parse_command(), we can significantly reduce the amount of symbols gitwrapper depends on indirectly. As a downside, gotsh now needs to link to dial.c. But it only uses the same parsing routine, and any other routines in dial.c would likely cause pledge violations in gotsh if used. No functional change.


Stefan Sperling

fix an off-by-one in got_serve_parse_command() canonpath allocation

ok op@, tracey@


Stefan Sperling

fix gotd sending too large pack files in some cases

Make gotsh pass all have-lines sent by clients onwards to gotd, reducing size of pack files generated by the repo_read process. Problem reported by naddy@ ok jamsek


Omar Polo

provide functions to parse/serialize different hashes

it abstracts over the hash type and ensures that object ids are zero'ed before their sha1 digest is written. Needed by the incoming sha256 support. ok stsp@


Omar Polo

rename lib/sha1.c to lib/hash.c

It will soon grow functions to deal with sha256 too. stsp@ agrees.


Omar Polo

include sha2.h too where sha1.h is included

In preparation for wide sha256 support; stsp@ agrees. Change done mechanically with find . -iname \*.[cy] -exec sam {} + X ,x/<sha1\.h>/i/\n#include <sha2.h>


Omar Polo

tweak send_zero_refs; use GOT_SHA1_STRING_ZERO

ok stsp@


Omar Polo

gotd: implement the delete-refs capability

Allow clients to run "got send -d" against gotd. Clients will send a zero-id as new id for a reference and, in the special but more common case of just deleting and not updating, no pack file will be sent. ok and tweaks by stsp@


Omar Polo

delete trailing whitespaces



Omar Polo

gotsh: validate with parse_command before connecting

Export parse_command (now got_serve_parse_command) from lib/serve.c and use it to validate the command line in gotsh instead of just checking that the -c argument starts with 'git-receive-pack' or 'git-upload-pack'. Invalid usage now always fails before opening the socket, while before it wasn't always the case. This also means that invalid usage doesn't count towards the limits. ok jamsek, stsp


Omar Polo

fmt; fold long line


Stefan Sperling

make read errors in gotsh serve_read() fatal and adjust tests accordingly

ok jamsek


Stefan Sperling

only "forward" implicit flush packets in serve_read() if they are expected

ok jamsek