Commits


make 'got send' detect connections that are unexpectedly closed by the server ok op@


sync files from diff.git b5a9c15f4d68c06ec3bf839529b3ed2def0a6af6 Fixes 'No newline at end of file' message appearing in unexpected places. Problem noticed by op@


fix test_send_config test directory name


gotwebd: move the buffering from the fastcgi layer to the template Reduces the indirection in fcgi.c, starts to make the struct template opaque, simplifies the template usage. All with a net negative :-) reads fine to stsp@ (thanks!)


gotwebd: don't loose track of the file in commit listing When browsing the history of a file, the more button should generate a link containing the file= parameter, otherwise we switch back to the 'global' history. Spotted by stsp@


TODO: gotwebd should reply with 404 on some kind of errors


regress/template: use template_free() rather than free(3)


template: join subsequent tp_puts() calls This greatly reduces the number of tp_puts() calls: gotwebd' pages.tmpl goes from 444 to 190. Otherwise, this doesn't produce other observable changes.


gotweb: style improvements First round of polishing, css simplification and responsiveness for gotwebd. The new HTML is now actually usable on text-only browsers and the fonts are bigger on smaller screens; close to no changes for "normal" desktop usage. A few regressions were spotted by Lucas on IRC, thanks! No objections from stsp@


got_worktree_open: do not skip a locked worktree When trying to open a worktree from a list of metadata directories (.got, .cvg), error out when a worktree is found but is already locked. Skipping it and proceeding would result in a confusing "no git repository found" error from tog and gotadmin. ok stsp


copy remote repo info out of work tree data before closing the work tree Fixes a crash regression introduced when fetch/send were made to close the work tree earlier.


tog: add basic regress for log limit and log search This required minor changes to tog.c to teach tog the new test instructions and feed it search terms when driven by the harness. More is needed for these features but this provides some basic coverage for the & and / log keymaps. ok stsp


make 'got fetch' and 'got send' release the work tree lock earlier This avoids having work tree operations blocked while network transfers are in progress. ok op@


expose out-of-memory errors from zlib inflate() and deflate() calls Previously these were hidden behind a general "compression failed" error. ok kn


bump version number


CHANGES for 0.92


sync files from diff.git dc306c6bd88271ab911e205539974da98be82d17 This restores the traditional diff -p behaviour in Got.


prevent overlapping repo and work tree in 'got checkout' Some people are eager to try to make Got work just like Git by overlaying the repository and work tree. This causes problems with unveil conflicts at run-time. Fail as early as possible during 'got checkout' when users attempt this. cosmetic tweaks + ok op@


add a test case which removes a missing locally-added file Based on a patch by gonzalo@ ok op@


fix deletion of missing locally-added files If a locally added file in A status gets deleted from disk it will move into missing ! status. If the user then decides to delete the file we must remove the file index entry immediately rather than flagging the file for removal during the next commit operation. The file was never committed and lacks a base-blob and base-commit, so it cannot be removed during the next commit. As a result the commit operation was reporting a bogus "out of date" error. Found while diagnosing a related bug reported by gonzalo@ ok op@


prevent a double-free in got_worktree_commit If creating the /tmp display diff for a commitable item failed we would free the commitable item while it was already on the path list. Later on when the path list was freed in got_worktree_commit() a double-free would be detected and the program would be aborted. Found by gonzalo@ ok op@


make gotd flush pending messages before disconnecting the client upon success This prevents gotd from closing the client connection before ref-update status reports have been sent. Seen while testing gotd on Linux, though I see no obvious reason why this race would not trigger on OpenBSD.


plug line_offsets leak in tog blame view; ok op@


tog: don't show the base commit marker in limit view The limit commit queue is invariably filled with different commits to the queue containing all commits, so the index of the work tree's base commit in the real queue corresponds to a different commit in the limit queue. As such, the marker is drawn on an incorrect commit. Rather than fix this to draw the marker on the correct commit if it happens to be in the limit queue, don't draw the marker at all in limit view. As pointed out by Mikhail on the list, this information is not wanted in the limit view. Patch and report by Mikhail.


gotsh: do not set POLLOUT flag when there is no data to send Prevent an endless polling loop on Linux where POLLOUT and POLLHUP can both be reported via pollfd revents.