Commit Briefs
CHANGES for 0.86 (tags/0.86)
gotwebd: provide gotweb_render_page() entrypoint for all pages
simplify gotweb_process_request more, handling all the pages inside the big switch. There's only one entrypoint for rendering the templates gotweb_render_page() that takes the page' content as argument. The only real difference is that gotweb_render_index() now skips directory entries which fails to handle. ok tracey@
handle files changing into directories during 'got update'
problem found by naddy@
gotwebd: handle short reads and timeouts
If a short read happens, or if all the fastcgi record to read don't fit in the buffer, gotwebd fails to continue reading and hits the timeout. If this happens before gotweb_process_request is called, it will crash in gotweb_free_transport since c->t will be NULL. This register the event with EV_PERSIST so fcgi_request is called again when there's more to read and guards gotweb_free_transport. It also makes spaces for the records as soon as they're successfully parsed. With lots of help from stsp ok stsp@
dial: fix quoting for git-shell
Escape the path to the repository when connecting via SSH. This is needed if the path contains spaces, quotes or other "funny" characters, but also by git-shell which requires the argument to be surrounded by single-quote characters. Issue with git-shell reported by James Cook, fix based on an initial diff by stsp@. ok stsp@
make diffing files which changed into dirs and vice-versa possible
Problem marked with a TODO comment by me ages ago and rediscovered by naddy@ ok op@
clone.sh: fix copy-paste error
`got log' is ran twice against $testroot/repo so log-repo and log-repo-clone are identical. Instead, run `got log' on the clone repo the second time. ok stsp@
support histedit fold operations which delete a file and then add it again
problem found by naddy@ ok op@
fix gotd sending too large pack files in some cases
Make gotsh pass all have-lines sent by clients onwards to gotd, reducing size of pack files generated by the repo_read process. Problem reported by naddy@ ok jamsek
Close the message template file before calling edit_logmsg().
Fixes a race condition on NFS where the file's modify time may change while the file is being edited, causing the editor to complain. OK stsp
CHANGES for 0.85 (tags/0.85)
fix gotd sometimes reading reused deltas from wrong pack file
The reuse-pack is pinned but may change its cache slot while objects are being deltified. Refresh the pointer to the pinned reuse-pack before writing out the pack file, ensuring that reused deltas will in fact be read from the reuse-pack and not some other pack. Otherwise gotd may send a broken pack file, or hit an ERR_RANGE condition if the pack file which now occupies the pinned-pack's old cache slot is shorter. Which can trigger attempts to read beyond end-of-file which show up in the logs like this: gotd[37311]: repo_read /var/git/got.git: sending packfile: value out of range gotd[43877]: uid 1002: value out of range gotd[43877]: uid 1002: disconnecting
add xfail test for histedit folding of delete followed by add
If a file is deleted, then in modified form added again, folding should restore the file with its new contents. ok stsp
regress: replace "sed -i" with ed(1) for portable in-place editing
"sed -i" is fundamentally unportable. GNU and OpenBSD sed(1) treat the extension for the backup file as an optional argument and use "sed -i" for no backup file. FreeBSD sed(1) treats the extension as an obligatory argument and uses "sed -i ''" for no backup file. There is no single syntax that works for both. ok stsp op
regress/commit.sh: tweak editor.sh for test_commit_prepared_logmsg
no need for sed (which doesn't change anything anyway), a no-op editor script is enough; the test ensures that the prepared log message is used. ok naddy@ stsp@
don't pass -d to yacc
Patch from Josiah Frentsos, thanks!
gotd: Fix more double process names
Patch by Josiah Frentsos, thanks!
template: sync usage() with man page
`-o' was missing. Patch from Josiah Frentsos, thank you!