Commit Briefs

Christian Weisgerber

indentation fixes


Christian Weisgerber

make "got branch -d" print reference name and value

Also silence output of "got branch -d" in a regression test, from stsp. ok stsp


Christian Weisgerber

sys/param.h is not needed


Stefan Sperling

remove ancestry sanity checks from 'got cherrypick' and 'got backout'

While these checks might catch usage mistakes the performance overhead of scanning the entire history of the current branch is not worth it. Measurements provided by naddy, cherrypicking 5 commits of OpenBSD's src repository in usr.bin/rsync: Before: 5m50.33s real 4m02.36s user 2m04.41s system After: 1m04.92s real 0m28.24s user 0m36.54s system Further performance improvements could be needed but this is a first step.



Stefan Sperling

provide separate send {} and fetch {} configuration blocks in got.conf

Feature requested by naddy. ok naddy, who also suggested some tweaks that will arrive shortly


Stefan Sperling

use gmtime_r(3) instead of localtime_r(3) to display time in UTC as intended

Problem noticed by naddy due to failing regress tests at midnight, and then analyzed with additional help from millert. ok naddy


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.


Stefan Sperling

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@


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.


Stefan Sperling

fix a use-after-free in get_changed_paths() in got and tog

Once the parent commit is closed the tree_id1 pointer is no longer valid, but the pointer was still being used. Make a deep copy to fix this issue.







Stefan Sperling

new -X option for removing backups created by got rebase and got histedit

ok semarie




Christian Weisgerber

switch from SIMPLEQ to equivalent STAILQ macros

The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp



Stefan Sperling

check for close(2) error in got_repo_close() and propagate errors up

ok tracey


Klemens Nanni

diff: reduce duplicate code

Condense error checking to reduce a future diff moving those lines around; this pattern is already used in other parts of the tree. fine stsp ok tracey