Commit Briefs
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.
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.
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@
allow deletion of refs/remotes/ branches with got branch -d
Also, make requirements for branch name arguments more flexible. Absolute reference names are now accepted. ok naddy@
tweak the man page section about 'got send'
In particular, attempt to describe the -f option better.
fix the output of 'got send -d' upon success
Previous output was: Already up-to-date New output is: Server has deleted refs/heads/branch Check this behavour in the related regression test.
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.
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.
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.
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@
Expose got_ref_name_is_valid() for general purpose use.
This will be needed for a future 'got send' command.
expose got_ref_resolve_symbolic() at the public library API
This will be needed by a future 'got send' command.