Commit Briefs

Stefan Sperling

CHANGES for 0.56 (tags/0.56)


Stefan Sperling

sync dist file list




Stefan Sperling

make tog block other keys except Backspace after End/G is pressed

This should avoid unexpected behaviour resulting from unrelated key presses messing with the log view's state variables. Pointed out by tracey, and also discussed with jasper. ok tracey


Jasper Lievisse Adriaanse

sync tog.1 after fb280deb with respect to the Backspace key description

ok stsp



Stefan Sperling

make tog ignore Ctrl+L and B while loading all commits

Otherwise tog gets into a funky non-recoverable state if these keys are pressed instead of Backspace while commits are loading. bug found by + ok tracey


Stefan Sperling

remove the 'ctrl+u' shortcut in favour of just 'g' as alias for 'Home'

Our use of ctrl+u was not consistent with vi(1) after all. Discussed with naddy, tb, and jasper on gameoftrees@



Christian Weisgerber

tweak implementation of separate send {} and fetch {} conf blocks

Tweak man page. Factor out repeated code in if/else branches in send_gotconfig_remotes(). ok stsp@



Jasper Lievisse Adriaanse

tog: add support for navigating to first/last item of log and diff views

The keybindings that we settled on are Home, Ctrl-u and g to go to the first item and End, G to go to the last. This resembles those commonly found elsewhere, eg vi/less. discussed with and ok stsp


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

stop allowing empty send {} or fetch {} blocks; yacc complained about grammar

yacc has been complaining about "shift/reduce conflicts" since commit 16c4be8c1cab9456f9dd0468c27f8ab73235737e Revert that change for now. Not sure how it can be done properly. In any case, allowing empty config blocks is not very important.


Stefan Sperling

reject port number zero




Stefan Sperling

fix seek to incorrect offset in the delta base when creating deltas

The stretchblk() function needs to compare data located after the block which has just been matched. However, upon entry it was resetting the file pointer of the delta base to the beginning(!) of the block. The other file is correctly positioned after the block. In many cases the data won't match and stretchblk() will not stretch the matched block. But when the data did happen to match this resulted in a bogus delta, and wrong file contents when the delta was applied. Fix this by setting the delta base file pointer to end of the block. Problem reported by naddy after our server refused a pack file which was sent by 'got send'. I could reproduce the issue by running the 'gotadmin pack' command on a copy of naddy's repository. ok naddy


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


Christian Weisgerber

add missing "return 1" to failure handling in the regress scripts

ok stsp@


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


Stefan Sperling

Add got(1) command tab-completion for ksh(1) to EXAMPLES section.

Suggested by Clint Pachl, thanks!


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.