Commit Briefs


1eb3899277 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.


53bf0b5419 Omar Polo

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

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


5822e79e39 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>


bd56d7e1de Mark Jamsek

unbreak send.sh regress from recent ref-delta changes

fix argument order typo in flags passed to got_pack_create()


c7a4fcc8be Omar Polo

gotadmin pack: add a -D flag to force using ref-delta

Intended mostly for the regress suite, so we'll be able to test also the ref-delta code paths. ok stsp@


d8bacb9337 Mark Jamsek

got: minor refactor of got_pathlist_free() API

Accept flag parameter to optionally specify which pointers to free. This saves callers looping through the list to free pointers. ok + fix stsp@


6242c45bf7 Omar Polo

got send: show server error

Print the error message reported by the remote server when failing to update a branch (for e.g. because of a server-side check.) Reported by gonzalo@, with help and ok stsp@.


cae60ab8f2 Stefan Sperling

let callers of got_pack_create() configure rate-limiting of progress reporting

Needed by future gotd(8), where progress reports will be sent to a network socket, rather than a local terminal.


a32780aad7 Stefan Sperling

move got_opentempfd() call out of got_pack_create()

Future gotd(8) needs to run got_pack_create() in a chroot environment, so we can no longer open new temporary files inside got_pack_create(). ok op@


894e4711ff Stefan Sperling

make got_pack_create() write to a file descriptor instead of a stdio FILE

The old code required a seekable output file. This conflicts with requirements of future gotd(8), which will write pack file data to network sockets. ok op@


c46eda88bc Florian Obser

Correctly track if we sent more data since the last time we looked.

With the narrow scope of bytes_sent_cur it would always be zero, and we would always update progress. Found by llvm's scan-build (Dead store). OK stsp


b8af7c0693 Stefan Sperling

print additional progress information while packing

ok op@


9241007911 Stefan Sperling

fix regression where 'got send -T' failed if same tag already exists on server

Problem reported and fix tested by Omar Polo.



4e91ef1519 Stefan Sperling

make it possible to merge vendor branches with 'got merge'



d65a88a2f0 Stefan Sperling

move duplicated dial_ssh() and dial_git() functions into a common file

These functions are used by 'got send' and 'got fetch' in order to open network connections to a server. Move them into new file lib/dial.c and declare relevant functions in got_dial.h and lib/got_lib_dial.h. No functional change.


535e07c7d6 Christian Weisgerber

make realloc_ids() malloc-like and do not overallocate

Let realloc_ids() take as argument the number of entries to allocate. Do not allocate an extra chunk. ok stsp


8f2a2f4f1c Christian Weisgerber

drop realloc_ids() initialization calls, one of which had a typo

realloc_ids() is called again in the loops that assign to the ID arrays, before the first assignment. ok stsp


27b75514d9 Stefan Sperling

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.


1bd76734ce Stefan Sperling

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.


f8a36e2210 Stefan Sperling

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.